SASUnit Examples  Version 1.5.0
inittestcase.sas
Go to the documentation of this file.
1 
34 %MACRO initTestcase(i_object =
35  ,i_desc =
36  ,i_specdoc =
37  );
38 
39  %GLOBAL g_inTestcase;
40  %IF &g_inTestcase EQ 1 %THEN %DO;
41  %endTestcall;
42  %endTestcase;
43  %END;
44  %IF &g_inTestcase EQ 2 %THEN %DO;
45  %endTestcase;
46  %END;
47  %LET g_inTestcase=1;
48 
49  /* handle absolute and relative paths for programs */
50  %LOCAL l_pgm l_auton l_object l_casid;
51  %LET l_object = %lowcase (&i_object.);
52  %IF %index(%sysfunc(translate(&l_object,/,\)),/) %THEN %DO;
53  %LET l_pgm = %_stdPath(&g_root,&i_object);
54  %LET l_auton=.;
55  %END;
56  %ELSE %DO;
57  %LET l_pgm = &i_object;
58  %LET l_auton = %_getAutocallNumber(&l_object);
59  %END;
60 
61  /* determine next test case id */
62  %LET l_casid=0;
63  PROC SQL NOPRINT;
64  SELECT max(cas_id) INTO :l_casid FROM target.cas
65  WHERE cas_scnid = &g_scnid;
66  %IF &l_casid=. %THEN %LET l_casid=1;
67  %ELSE %LET l_casid=%eval(&l_casid+1);
68  /* save metadata for this test case */
69  INSERT INTO target.cas VALUES (
70  &g_scnid
71  ,&l_casid
72  ,&l_auton
73  ,"&l_pgm"
74  ,"&i_desc"
75  ,"%_abspath(&g_doc,&i_specdoc)"
76  ,%sysfunc(datetime())
77  ,.
78  ,.
79  );
80  QUIT;
81 
82  %PUT ========================== test case &l_casid ======================================================;
83 
84  /* reroute SASLOG and SASLIST */
85  %LET g_logfile =&g_log/%sysfunc(putn(&g_scnid,z3.))_%sysfunc(putn(&l_casid,z3.)).log;
86  %LET g_printfile=&g_testout/%sysfunc(putn(&g_scnid,z3.))_%sysfunc(putn(&l_casid,z3.)).lst;
87  PROC PRINTTO
88  NEW
89  LOG="&g_logfile."
90  PRINT="&g_printfile."
91  ;
92  RUN;
93 
94 %MEND initTestcase;