SASUnit Examples  Version 1.2
_sasunit_loadenvironment.sas
Go to the documentation of this file.
1 
19 /* change history
20  31.01.2013 KL new Version 1.2
21  28.08.2012 KL Problems occured resolving paths like ..\.\example\dat later in the project
22  e.g. assertReport couldn't find expected pdfs.
23  Libname is successful, so the idea was to get the resolved path via pathname
24  15.02.2011 KL added support for testcases that need to redirect logfiles
25  Two new macrovariables g_logfile and g_printfile are available
26  10.10.2010 AM new Version 1.001
27  05.10.2010 AM new Version 1.000
28  12.06.2010 AM neue Version 0.910
29  16.07.2009 AM neue Version 0.905
30  14.07.2009 AM neue Version 0.903L
31  19.08.2008 AM neue Version 0.904
32  11.08.2008 AM neue Revision
33  15.02.2008 AM neue Revision
34  10.02.2008 AM neue Revision
35 */
36 
37 %MACRO _sasunit_loadEnvironment(
38  i_withlibrefs = 1
39 );
40 %LOCAL l_macname; %LET l_macname=&sysmacroname;
41 
42 %GLOBAL g_target g_project g_root g_sasunit g_autoexec g_sascfg g_sasuser
43  g_sasautos g_sasautos1 g_sasautos2 g_sasautos3 g_sasautos4 g_sasautos5
44  g_sasautos6 g_sasautos7 g_sasautos8 g_sasautos9
45  g_testdata g_refdata g_doc g_error g_warning
46  g_work g_testout g_log
47  g_logfile g_printfile
48  g_version g_revision;
49 %LOCAL i;
50 
51 %LET g_target = %sysfunc(pathname(target));
52 %LET g_version = 1.2;
53 %LET g_revision = $Revision: 142 $;
54 %LET g_revision = %scan(&g_revision,2,%str( $:));
55 
56 %*** Both macvars are dependent on scenario and testcase, values can only be assigned later ***;
57 %LET g_logfile = ;
58 %LET g_printfile = ;
59 
60 %IF %_sasunit_handleError(&l_macname, InvalidTsu,
61  %_sasunit_nobs(target.tsu) NE 1,
62  invalid test database: target.tsu)
63  %THEN %GOTO errexit;
64 
65 %IF %_sasunit_handleError(&l_macname, MissingCas,
66  NOT %sysfunc(exist(target.cas)),
67  invalid test database: target.cas)
68  %THEN %GOTO errexit;
69 
70 %IF %_sasunit_handleError(&l_macname, MissingScn,
71  NOT %sysfunc(exist(target.scn)),
72  invalid test database: target.scn)
73  %THEN %GOTO errexit;
74 
75 %IF %_sasunit_handleError(&l_macname, MissingTst,
76  NOT %sysfunc(exist(target.tst)),
77  invalid test database: target.tst)
78  %THEN %GOTO errexit;
79 
80 DATA _null_;
81  SET target.tsu;
82  call symput ('g_project' , tsu_project);
83  call symput ('g_root' , tsu_root);
84  call symput ('g_sasunit' , tsu_sasunit);
85  call symput ('g_sasautos' , tsu_sasautos);
86 %DO i=1 %TO 9;
87  call symput ("g_sasautos&i", tsu_sasautos&i);
88 %END;
89  call symput ('g_autoexec' , tsu_autoexec);
90  call symput ('g_sascfg' , tsu_sascfg);
91  call symput ('g_sasuser' , tsu_sasuser);
92  call symput ('g_testdata' , tsu_testdata);
93  call symput ('g_refdata' , tsu_refdata);
94  call symput ('g_doc' , tsu_doc);
95 RUN;
96 
97 %LET g_project = &g_project;
98 %LET g_root = &g_root;
99 %LET g_sasunit = %_sasunit_abspath(&g_root,&g_sasunit);
100 %LET g_sasautos = %_sasunit_abspath(&g_root,&g_sasautos);
101 %DO i=1 %TO 9;
102  %LET g_sasautos&i = %_sasunit_abspath(&g_root,&&g_sasautos&i);
103 %END;
104 %LET g_autoexec = %_sasunit_abspath(&g_root,&g_autoexec);
105 %LET g_sascfg = %_sasunit_abspath(&g_root,&g_sascfg);
106 %LET g_sasuser = %_sasunit_abspath(&g_root,&g_sasuser);
107 %LET g_testdata = %_sasunit_abspath(&g_root,&g_testdata);
108 %LET g_refdata = %_sasunit_abspath(&g_root,&g_refdata);
109 %LET g_doc = %_sasunit_abspath(&g_root,&g_doc);
110 
111 %LET g_work = %sysfunc(pathname(work));
112 %LET g_testout = &g_target/tst;
113 %LET g_log = &g_target/log;
114 
115 %_sasunit_detectSymbols(r_error_symbol=g_error, r_warning_symbol=g_warning)
116 
117 %IF &i_withlibrefs %THEN %DO;
118  LIBNAME testout "&g_testout";
119  FILENAME testout "&g_testout";
120  %IF %length(&g_testdata) %THEN %DO;
121  LIBNAME testdata "&g_testdata";
122  FILENAME testdata "&g_testdata";
123  %LET g_testdata = %sysfunc(pathname(testdata));
124  %END;
125  %IF %length(&g_refdata) %THEN %DO;
126  LIBNAME refdata "&g_refdata";
127  FILENAME refdata "&g_refdata";
128  %LET g_refdata = %sysfunc(pathname(refdata));
129  %END;
130  %IF %length(&g_doc) %THEN %DO;
131  FILENAME doc "&g_doc";
132  %END;
133 %END;
134 
135 %put _global_;
136 
137 %GOTO exit;
138 %errexit:
139 LIBNAME target;
140 %exit:
141 %MEND _sasunit_loadEnvironment;