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