20 %MACRO _loadEnvironment(i_withlibrefs = 1
 
   23    %LOCAL l_macname; %LET l_macname=&sysmacroname;
 
   25    %GLOBAL g_target g_project g_root g_sasunit g_sasunit_os g_autoexec g_sascfg g_sasuser
 
   26            g_sasautos g_sasautos0 g_sasautos1 g_sasautos2 g_sasautos3 g_sasautos4 
 
   27            g_sasautos5 g_sasautos6 g_sasautos7 g_sasautos8 g_sasautos9 
 
   28            g_testdata g_refdata g_doc g_error g_warning g_note
 
   29            g_work g_testout g_log
 
   37    %LET g_target    = %sysfunc(pathname(target));
 
   39    %*** Both macvars are dependent on scenario and testcase, values can only be assigned later ***;
 
   43    %IF %_handleError(&l_macname.
 
   45                     ,%_nobs(target.tsu) NE 1
 
   46                     ,invalid test database: target.tsu
 
   50    %IF %_handleError(&l_macname.
 
   52                     ,NOT %sysfunc(exist(target.cas))
 
   53                     ,invalid test database: target.cas
 
   57    %IF %_handleError(&l_macname.
 
   59                     ,NOT %sysfunc(exist(target.scn))
 
   60                     ,invalid test database: target.scn
 
   64    %IF %_handleError(&l_macname.
 
   66                     ,NOT %sysfunc(exist(target.tst))
 
   67                     ,invalid test database: target.tst
 
   73       call symput (
'g_project'     , tsu_project);
 
   74       call symput (
'g_root'        , tsu_root);
 
   75       call symput (
'g_sasunitroot' , tsu_sasunitroot);
 
   76       call symput (
'g_sasunit'     , tsu_sasunit);
 
   77       call symput (
'g_sasunit_os'  , tsu_sasunit_os);
 
   78       call symput (
'g_sasautos'    , tsu_sasautos);
 
   79       call symput (
'g_sasautos0'   , tsu_sasautos);
 
   81       call symput (
"g_sasautos&i"  , tsu_sasautos&i);
 
   83       call symput (
'g_autoexec'    , tsu_autoexec);
 
   84       call symput (
'g_sascfg'      , tsu_sascfg);
 
   85       call symput (
'g_sasuser'     , tsu_sasuser);
 
   86       call symput (
'g_testdata'    , tsu_testdata);
 
   87       call symput (
'g_refdata'     , tsu_refdata);
 
   88       call symput (
'g_doc'         , tsu_doc);
 
   89       call symput (
'g_testcoverage', put (tsu_testcoverage, z1.));
 
   90       call symput (
'g_verbose'     , put (tsu_verbose, z1.));
 
   93    %LET g_project      = &g_project;
 
   94    %LET g_root         = &g_root;
 
   95    %LET g_sasunitroot  = %_abspath(&g_root,&g_sasunitroot);
 
   96    %LET g_sasunit      = %_abspath(&g_root,&g_sasunit);
 
   97    %LET g_sasunit_os   = %_abspath(&g_root,&g_sasunit_os);
 
   98    %LET g_sasautos     = %_abspath(&g_root,&g_sasautos);
 
  100       %LET g_sasautos&i = %_abspath(&g_root,&&g_sasautos&i);
 
  102    %LET g_autoexec     = %_abspath(&g_root,&g_autoexec);
 
  103    %LET g_sascfg       = %_abspath(&g_root,&g_sascfg);
 
  104    %LET g_sasuser      = %_abspath(&g_root,&g_sasuser);
 
  105    %LET g_testdata     = %_abspath(&g_root,&g_testdata);
 
  106    %LET g_refdata      = %_abspath(&g_root,&g_refdata);
 
  107    %LET g_doc          = %_abspath(&g_root,&g_doc);
 
  108    %LET g_testcoverage = &g_testcoverage.;
 
  110    %LET g_work     = %sysfunc(pathname(work));
 
  111    %LET g_testout  = &g_target/tst;
 
  112    %LET g_log      = &g_target/log;
 
  114    %_detectSymbols(r_error_symbol=g_error, r_warning_symbol=g_warning, r_note_symbol=g_note)
 
  116    %IF &i_withlibrefs %THEN %DO;
 
  117          LIBNAME testout 
"&g_testout";
 
  118          FILENAME testout 
"&g_testout";
 
  119       %IF %length(&g_testdata) %THEN %DO;
 
  120          LIBNAME testdata 
"&g_testdata";
 
  121          FILENAME testdata 
"&g_testdata";
 
  122          %LET g_testdata = %sysfunc(pathname(testdata));
 
  124       %IF %length(&g_refdata) %THEN %DO;
 
  125          LIBNAME refdata 
"&g_refdata";
 
  126          FILENAME refdata 
"&g_refdata";
 
  127          %LET g_refdata = %sysfunc(pathname(refdata));
 
  129       %IF %length(&g_doc) %THEN %DO;
 
  130          FILENAME doc 
"&g_doc";
 
  136    OPTIONS MAUTOSOURCE SASAUTOS=(SASAUTOS 
"&g_sasunit" "&g_sasunit_os" 
  138       %IF 
"&&g_sasautos&i" NE 
"" %THEN 
"&&g_sasautos&i";
 
  146 %MEND _loadEnvironment;