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;