25 %macro _runProgramSpawned(i_program           =
 
   27                          ,i_generateMcoverage = 0
 
   31    %local l_cmdFile l_parms l_parenthesis l_tcgFilePath l_tcgOptionsString l_tcgOptionsStringLINUX l_rc l_macname;
 
   32    %let l_macname=&sysmacroname.;
 
   35    %let l_cmdFile=%sysfunc(pathname(work))/prep_sasuser.cmd;
 
   38       PUT 
"&g_removedir ""%sysfunc(pathname(work))/sasuser""&g_endcommand";
 
   39       PUT 
"&g_makedir ""%sysfunc(pathname(work))/sasuser""&g_endcommand";
 
   40       %IF %length(&g_sasuser) %THEN %DO;
 
   41          PUT 
"&g_copydir ""&g_sasuser"" ""%sysfunc(pathname(work))/sasuser""&g_endcommand";
 
   44    %_executeCMDFile(&l_cmdFile.);
 
   45    %LET l_rc=%_delfile(&l_cmdFile.);
 
   48    %let l_cmdFile=%sysfunc(pathname(work))/_runprogramspawned.cmd;
 
   51    %IF 
"&g_autoexec" NE 
"" %THEN %DO;
 
   52       %LET l_parms=&l_parms -autoexec 
""&g_autoexec
"";
 
   54    %IF 
"&g_sascfg" NE 
"" %THEN %DO;
 
   55       %LET l_parms=&l_parms -config 
""&g_sascfg
"";
 
   57    %ELSE %IF %length(%sysfunc(getoption(config))) NE 0 AND %index(%quote(%sysfunc(getoption(config))),%bquote(&l_parenthesis)) NE 1 %THEN %DO; 
 
   58      %LET l_parms=&l_parms -config ""%sysfunc(getoption(config))"";
 
   61    %IF &i_generateMcoverage. EQ 1 %THEN %DO;
 
   64       %LET   l_tcgFilePath      = &g_log./&i_scnid..tcg;
 
   65       %LET   l_tcgOptionsString = -mcoverage -mcoverageloc = ""&l_tcgFilePath."";
 
   70          _sCmdString LENGTH = $32000
 
   77       """" !! &g_sasstart !! """"
 
   80       !! "-sysin ""&i_program."" "
 
   81       !! "-initstmt ""%nrstr(%%%_scenario%(io_target=)&g_target%nrstr(%);%%%let g_scnid=)&i_scnid.;"" "
 
   82       !! "-log   ""&g_log/&i_scnid..log"" "
 
   83       !! "-print ""&g_testout/&i_scnid..lst"" "
 
   89       !! "-mcompilenote all "
 
   90       !! "-sasautos ""&g_sasunit"" "
 
   91       !! "-sasuser ""%sysfunc(pathname(work))/sasuser"" "
 
   92       !! "-termstmt ""%nrstr(%%%_termScenario())"" "
 
   93       !! "&l_tcgOptionsString. "
 
   98    %_executeCMDFile(&l_cmdFile.);
 
   99    %LET &r_sysrc. = &sysrc.;
 
  100    %LET l_rc=%_delfile(&l_cmdFile.);
 
  103    %let l_cmdFile=%sysfunc(pathname(work))/del_sasuser.cmd;
 
  106       PUT "&g_removedir ""%sysfunc(pathname(work))/sasuser""&g_endcommand";
 
  108    %_executeCMDFile(&l_cmdFile.);
 
  109    %LET l_rc=%_delfile(&l_cmdFile.);
 
  111 %mend _runprogramspawned;