initsasunit.sas

Go to the documentation of this file.
00001  
00041 /* change history
00042    02.10.2008 NA  Modified for LINUX
00043    27.06.2008 AM  Minimale Änderungen in den Kommentartexten
00044    15.02.2008 AM  Dokumentation ausgelagert nach _sasunit_doc.sas
00045    05.02.2008 AM  Dokumentation der asserts aktualisiert
00046    29.12.2007 AM  Dokumentation der asserts aktualisiert
00047    15.12.2007 AM  Dokumentation der asserts überarbeitet.
00048 */ 
00049 
00050 %MACRO initSASUnit(
00051    i_root       = 
00052   ,io_target    = 
00053   ,i_overwrite  = 0
00054   ,i_project    = 
00055   ,i_sasunit    =
00056   ,i_sasautos   =
00057   ,i_sasautos1  =
00058   ,i_sasautos2  =
00059   ,i_sasautos3  =
00060   ,i_sasautos4  =
00061   ,i_sasautos5  =
00062   ,i_sasautos6  =
00063   ,i_sasautos7  =
00064   ,i_sasautos8  =
00065   ,i_sasautos9  =
00066   ,i_autoexec   =
00067   ,i_sascfg     =
00068   ,i_sasuser    =
00069   ,i_testdata   = 
00070   ,i_refdata    = 
00071   ,i_doc        = 
00072 );
00073 %LOCAL l_macname; %LET l_macname=&sysmacroname;
00074 %LOCAL l_first_temp;
00075 
00076 /*-- initialize error --------------------------------------------------------*/
00077 %_sasunit_initErrorHandler;
00078 
00079 /*-- check for operation system ----------------------------------------------*/
00080 %IF %_sasunit_handleError( &l_macname
00081                          , WrongOS
00082                          , (&sysscp. NE WIN) AND (&sysscp. NE LINUX)
00083                          , Invalid operating system - only WIN and LINUX) 
00084 %THEN %GOTO errexit;
00085 
00086 /*-- set macro symbols for os commands ---------------------------------------*/
00087 %_sasunit_oscmds;
00088 
00089 /*-- check SAS version -------------------------------------------------------*/
00090 %IF %_sasunit_handleError( &l_macname
00091                          , WrongVer
00092                          , (&sysver. NE 9.1) AND (&sysver. NE 9.2)
00093                          , Invalid SAS version - only SAS 9.1 and 9.2) 
00094 %THEN %GOTO errexit;
00095 
00096 /*-- check for target directory ----------------------------------------------*/
00097 %LOCAL l_target_abs;
00098 %LET l_target_abs=%_sasunit_abspath(&i_root,&io_target);
00099 %IF %_sasunit_handleError(&l_macname, InvalidTargetDir, 
00100    "&l_target_abs" EQ "" OR NOT %_sasunit_existDir(&l_target_abs), 
00101    Error in parameter io_target: target directory does not exist) 
00102    %THEN %GOTO errexit;
00103 
00104 LIBNAME target "&l_target_abs";
00105 %IF %_sasunit_handleError(&l_macname, ErrorTargetLib, 
00106    %quote(&syslibrc) NE 0, 
00107    Error in parameter io_target: target directory &l_target_abs. cannot be assigned as a SAS library) 
00108    %THEN %GOTO errexit;
00109 data target._test;
00110 run;
00111 %IF %_sasunit_handleError(&l_macname, ErrorTargetLibNotWritable, 
00112    %quote(&syserr) NE 0, 
00113    Error in parameter io_target: target directory not writeable) 
00114    %THEN %GOTO errexit;
00115 PROC SQL;
00116    DROP TABLE target._test;
00117 QUIT;
00118 
00119 /*-- does the test database exist already? -----------------------------------*/
00120 %LOCAL l_newdb;
00121 %IF "&i_overwrite" NE "1" %then %LET i_overwrite=0;
00122 %IF &i_overwrite %THEN %LET l_newdb=1;
00123 %ELSE %LET l_newdb=%eval(NOT %sysfunc(exist(target.tsu)));
00124 
00125 /*-- create test database if necessary ---------------------------------------*/
00126 %IF &l_newdb %THEN %DO;
00127 PROC SQL NOPRINT;
00128    CREATE TABLE target.tsu (        /* test suite */
00129        tsu_project    CHAR(255)        /* see i_project */
00130       ,tsu_root       CHAR(255)        /* see i_root */
00131       ,tsu_target     CHAR(255)        /* see io_target */
00132       ,tsu_sasunit    CHAR(255)        /* see i_sasunit */
00133       ,tsu_sasautos   CHAR(255)        /* see i_sasautos */
00134 %DO i=1 %TO 9;
00135       ,tsu_sasautos&i CHAR(255)        /* see i_sasautos<n> */
00136 %END;
00137       ,tsu_autoexec   CHAR(255)        /* see i_autoexec */
00138       ,tsu_sascfg     CHAR(255)        /* see i_sascfg */
00139       ,tsu_sasuser    CHAR(255)        /* see i_sasuser */
00140       ,tsu_testdata   CHAR(255)        /* see i_testdata */
00141       ,tsu_refdata    CHAR(255)        /* see i_refdata */
00142       ,tsu_doc        CHAR(255)        /* see i_doc */
00143       ,tsu_lastinit   INT FORMAT=datetime21.2 /* date and time of last initialization */
00144       ,tsu_lastrep    INT FORMAT=datetime21.2 /* date and time of last report generation*/
00145    );
00146    INSERT INTO target.tsu VALUES (
00147    "","","","","","","","","","","","","","","","","","","","",0,0
00148    );
00149 
00150    CREATE TABLE target.scn (        /* test scenario */
00151        scn_id     INT FORMAT=z3.       /* number of scenario */
00152       ,scn_path   CHAR(255)            /* path to program file */ 
00153       ,scn_desc   CHAR(255)            /* description of program (brief tag in comment header) */
00154       ,scn_start  INT FORMAT=datetime21.2 /* starting date and time of the last run */
00155       ,scn_end    INT FORMAT=datetime21.2 /* ending date and time of the last run */
00156       ,scn_rc     INT                  /* return code of SAS session of last run */
00157       ,scn_res    INT                  /* overall test result of last run: 0 .. OK, 1 .. not OK, 2 .. manual */
00158    );
00159    CREATE TABLE target.cas (        /* test case */
00160        cas_scnid INT FORMAT=z3.        /* reference to test scenario */
00161       ,cas_id    INT FORMAT=z3.        /* sequential number of test case within test scenario */
00162       ,cas_auton INT                   /* number of autocall path where program under test has been found or ., if not found */
00163       ,cas_pgm   CHAR(255)             /* file name of program under test: only name if found in autocall paths, or fully qualified path otherwise */ 
00164       ,cas_desc  CHAR(255)             /* description of test case */
00165       ,cas_spec  CHAR(255)             /* optional: specification document, fully qualified path or only filename to be found in folder &g_doc */
00166       ,cas_start INT FORMAT=datetime21.2  /* starting date and time of the last run */
00167       ,cas_end   INT FORMAT=datetime21.2  /* ending date and time of the last run */
00168       ,cas_res   INT                   /* overall test result of last run: 0 .. OK, 1 .. not OK, 2 .. manual */
00169    );
00170    CREATE TABLE target.tst (        /* Test */
00171        tst_scnid INT FORMAT=z3.        /* reference to test scenario */
00172       ,tst_casid INT FORMAT=z3.        /* reference to test case */
00173       ,tst_id    INT FORMAT=z3.        /* sequential number of test within test case */
00174       ,tst_type  CHAR(32)              /* type of test (name of assert macro) */
00175       ,tst_desc  CHAR(255)             /* description of test */
00176       ,tst_exp   CHAR(255)             /* expected result */
00177       ,tst_act   CHAR(255)             /* actual result */
00178       ,tst_res   INT                   /* test result of the last run: 0 .. OK, 1 .. not OK, 2 .. manual */
00179    );
00180 QUIT;
00181 %IF %_sasunit_handleError(&l_macname, ErrorCreateDB, 
00182    &syserr NE 0, 
00183    Error on creation of test database) 
00184    %THEN %GOTO errexit;
00185 
00186 
00187 /*-- regenerate empty folders ------------------------------------------------*/
00188 DATA _null_;
00189    FILE "%sysfunc(pathname(work))/x.cmd" encoding=pcoem850;/* wg. Umlauten in Pfaden */
00190    PUT "&g_removedir ""&l_target_abs/log""&g_endcommand";
00191    PUT "&g_removedir ""&l_target_abs/tst""&g_endcommand";
00192    PUT "&g_removedir ""&l_target_abs/rep""&g_endcommand";
00193    PUT "&g_makedir ""&l_target_abs/log""&g_endcommand";
00194    PUT "&g_makedir ""&l_target_abs/tst""&g_endcommand";
00195    PUT "&g_makedir ""&l_target_abs/rep""&g_endcommand";
00196 RUN;
00197 %if &sysscp. = LINUX %then %do;
00198    %_sasunit_xcmd(chmod u+x "%sysfunc(pathname(work))/x.cmd")
00199 %end;
00200 %_sasunit_xcmd("%sysfunc(pathname(work))/x.cmd")
00201 %LOCAL l_rc;
00202 %LET l_rc=_sasunit_delfile(%sysfunc(pathname(work))/x.cmd);
00203 
00204 %END; /* %if &l_newdb */
00205 
00206 /*-- check folders -----------------------------------------------------------*/
00207 %IF %_sasunit_handleError(&l_macname, NoLogDir, 
00208    NOT %_sasunit_existdir(&l_target_abs/log), 
00209    folder &l_target_abs/log does not exist) 
00210    %THEN %GOTO errexit;
00211 %IF %_sasunit_handleError(&l_macname, NoTstDir, 
00212    NOT %_sasunit_existdir(&l_target_abs/tst), 
00213    folder &l_target_abs/tst does not exist) 
00214    %THEN %GOTO errexit;
00215 %IF %_sasunit_handleError(&l_macname, NoRepDir, 
00216    NOT %_sasunit_existdir(&l_target_abs/rep), 
00217    folder &l_target_abs/rep does not exist) 
00218    %THEN %GOTO errexit;
00219 PROC SQL NOPRINT;
00220    UPDATE target.tsu SET tsu_target = "&io_target";
00221 QUIT;
00222 
00223 /*-- project name ------------------------------------------------------------*/
00224 %LOCAL l_project;
00225 PROC SQL NOPRINT;
00226    SELECT tsu_project INTO :l_project FROM target.tsu;
00227 QUIT;
00228 %LET l_project=&l_project;
00229 %IF "&i_project" NE "" %THEN %LET l_project=&i_project;
00230 %IF %_sasunit_handleError(&l_macname, MissingProjectName, 
00231    "&l_project" EQ "", 
00232    Parameter i_project must be specified) 
00233    %THEN %GOTO errexit;
00234 PROC SQL NOPRINT;
00235    UPDATE target.tsu SET tsu_project = "&l_project";
00236 QUIT;
00237 
00238 /*-- root folder -------------------------------------------------------------*/
00239 %LOCAL l_root;
00240 PROC SQL NOPRINT;
00241    SELECT tsu_root INTO :l_root FROM target.tsu;
00242 QUIT;
00243 %LET l_root=&l_root;
00244 %IF "&i_root" NE "" %THEN %LET l_root=&i_root;
00245 %IF %_sasunit_handleError(&l_macname, InvalidRoot, 
00246    "&l_root" NE "" AND NOT %_sasunit_existdir(&l_root),
00247    %str(Error in parameter i_root: folder must exist when specified)) 
00248    %THEN %GOTO errexit;
00249 PROC SQL NOPRINT;
00250    UPDATE target.tsu SET tsu_root = "&l_root";
00251 QUIT;
00252 
00253 /*-- sasunit folder ----------------------------------------------------------*/
00254 %LOCAL l_sasunit l_sasunit_abs;
00255 PROC SQL NOPRINT;
00256    SELECT tsu_sasunit INTO :l_sasunit FROM target.tsu;
00257 QUIT;
00258 %LET l_sasunit=&l_sasunit;
00259 %IF "&i_sasunit" NE "" %THEN %LET l_sasunit=&i_sasunit;
00260 %LET l_sasunit_abs=%_sasunit_abspath(&l_root,&l_sasunit);
00261 %IF %_sasunit_handleError(&l_macname, InvalidSASUnitDir, 
00262    "&l_sasunit_abs" EQ "" OR NOT %sysfunc(fileexist(&l_sasunit_abs/_sasunit_scenario.sas)), 
00263    Error in parameter i_sasunit: SASUnit macro programs not found) 
00264    %THEN %GOTO errexit;
00265 PROC SQL NOPRINT;
00266    UPDATE target.tsu SET tsu_sasunit = "&l_sasunit";
00267 QUIT;
00268 
00269 /*-- check if autoexec exists where specified --------------------------------*/
00270 %LOCAL l_autoexec l_autoexec_abs;
00271 PROC SQL NOPRINT;
00272    SELECT tsu_autoexec INTO :l_autoexec FROM target.tsu;
00273 QUIT;
00274 %LET l_autoexec=&l_autoexec;
00275 %IF "&i_autoexec" NE "" %THEN %LET l_autoexec=&i_autoexec;
00276 %LET l_autoexec_abs=%_sasunit_abspath(&l_root,&l_autoexec);
00277 %IF %_sasunit_handleError(&l_macname, AutoexecNotFound, 
00278    "&l_autoexec" NE "" AND NOT %sysfunc(fileexist(&l_autoexec_abs%str( ))), 
00279    Error in parameter i_autoexec: file not found) 
00280    %THEN %GOTO errexit;
00281 PROC SQL NOPRINT;
00282    UPDATE target.tsu SET tsu_autoexec = "&l_autoexec";
00283 QUIT;
00284 
00285 /*-- check if sascfg exists where specified ----------------------------------*/
00286 %LOCAL l_sascfg l_sascfg_abs;
00287 PROC SQL NOPRINT;
00288    SELECT tsu_sascfg INTO :l_sascfg FROM target.tsu;
00289 QUIT;
00290 %LET l_sascfg=&l_sascfg;
00291 %IF "&i_sascfg" NE "" %THEN %LET l_sascfg=&i_sascfg;
00292 %LET l_sascfg_abs=%_sasunit_abspath(&l_root,&l_sascfg);
00293 %IF %_sasunit_handleError(&l_macname, SASCfgNotFound, 
00294    "&l_sascfg" NE "" AND NOT %sysfunc(fileexist(&l_sascfg_abs%str( ))), 
00295    Error in parameter i_sascfg: file not found) 
00296    %THEN %GOTO errexit;
00297 PROC SQL NOPRINT;
00298    UPDATE target.tsu SET tsu_sascfg = "&l_sascfg";
00299 QUIT;
00300 
00301 /*-- check sasuser folder ----------------------------------------------------*/
00302 %LOCAL l_sasuser l_sasuser_abs;
00303 PROC SQL NOPRINT;
00304    SELECT tsu_sasuser INTO :l_sasuser FROM target.tsu;
00305 QUIT;
00306 %LET l_sasuser=&l_sasuser;
00307 %IF "&i_sasuser" NE "" %THEN %LET l_sasuser=&i_sasuser;
00308 %LET l_sasuser_abs=%_sasunit_abspath(&l_root,&l_sasuser);
00309 %IF %_sasunit_handleError(&l_macname, InvalidSasuser, 
00310    "&l_sasuser_abs" NE "" AND NOT %_sasunit_existdir(&l_sasuser_abs), 
00311    Error in parameter i_sasuser: folder not found) 
00312    %THEN %GOTO errexit;
00313 PROC SQL NOPRINT;
00314    UPDATE target.tsu SET tsu_sasuser = "&l_sasuser";
00315 QUIT;
00316 
00317 /*-- check test data folder --------------------------------------------------*/
00318 %LOCAL l_testdata l_testdata_abs;
00319 PROC SQL NOPRINT;
00320    SELECT tsu_testdata INTO :l_testdata FROM target.tsu;
00321 QUIT;
00322 %LET l_testdata=&l_testdata;
00323 %IF "&i_testdata" NE "" %THEN %LET l_testdata=&i_testdata;
00324 %LET l_testdata_abs=%_sasunit_abspath(&l_root,&l_testdata);
00325 %IF %_sasunit_handleError(&l_macname, InvalidTestdata, 
00326    "&l_testdata_abs" NE "" AND NOT %_sasunit_existdir(&l_testdata_abs), 
00327    Error in parameter i_testdata: folder not found) 
00328    %THEN %GOTO errexit;
00329 PROC SQL NOPRINT;
00330    UPDATE target.tsu SET tsu_testdata = "&l_testdata";
00331 QUIT;
00332 
00333 /*-- check reference data folder ---------------------------------------------*/
00334 %LOCAL l_refdata l_refdata_abs;
00335 PROC SQL NOPRINT;
00336    SELECT tsu_refdata INTO :l_refdata FROM target.tsu;
00337 QUIT;
00338 %LET l_refdata=&l_refdata;
00339 %IF "&i_refdata" NE "" %THEN %LET l_refdata=&i_refdata;
00340 %LET l_refdata_abs=%_sasunit_abspath(&l_root,&l_refdata);
00341 %IF %_sasunit_handleError(&l_macname, InvalidRefdata, 
00342    "&l_refdata_abs" NE "" AND NOT %_sasunit_existdir(&l_refdata_abs), 
00343    Error in parameter i_refdata: folder not found) 
00344    %THEN %GOTO errexit;
00345 PROC SQL NOPRINT;
00346    UPDATE target.tsu SET tsu_refdata = "&l_refdata";
00347 QUIT;
00348 
00349 /*-- check folder for specification documents --------------------------------*/
00350 %LOCAL l_doc l_doc_abs;
00351 PROC SQL NOPRINT;
00352    SELECT tsu_doc INTO :l_doc FROM target.tsu;
00353 QUIT;
00354 %LET l_doc=&l_doc;
00355 %IF "&i_doc" NE "" %THEN %LET l_doc=&i_doc;
00356 %LET l_doc_abs=%_sasunit_abspath(&l_root,&l_doc);
00357 %IF %_sasunit_handleError(&l_macname, InvalidDoc, 
00358    "&l_doc_abs" NE "" AND NOT %_sasunit_existdir(&l_doc_abs), 
00359    Error in parameter i_doc: folder not found) 
00360    %THEN %GOTO errexit;
00361 PROC SQL NOPRINT;
00362    UPDATE target.tsu SET tsu_doc = "&l_doc";
00363 QUIT;
00364 
00365 /*-- check autocall paths ----------------------------------------------------*/
00366 %LOCAL restore_sasautos l_sasautos l_sasautos_abs i;
00367 %LET restore_sasautos=%sysfunc(getoption(sasautos));
00368 
00369 PROC SQL NOPRINT;
00370    SELECT tsu_sasautos INTO :l_sasautos FROM target.tsu;
00371 QUIT;
00372 %LET l_sasautos=&l_sasautos;
00373 %IF "&i_sasautos" NE "" %THEN %LET l_sasautos=&i_sasautos;
00374 %LET l_sasautos_abs=%_sasunit_abspath(&l_root,&l_sasautos);
00375 %IF %_sasunit_handleError(&l_macname, InvalidSASAutos, 
00376    "&l_sasautos_abs" NE "" AND NOT %_sasunit_existdir(&l_sasautos_abs), 
00377    Error in parameter i_sasautos: folder not found) 
00378    %THEN %GOTO errexit;
00379 PROC SQL NOPRINT;
00380    UPDATE target.tsu SET tsu_sasautos = "&l_sasautos";
00381 QUIT;
00382 
00383 %DO i=1 %TO 9;
00384 PROC SQL NOPRINT;
00385    SELECT tsu_sasautos&i INTO :l_sasautos FROM target.tsu;
00386 QUIT;
00387 %LET l_sasautos=&l_sasautos;
00388 %IF "&&i_sasautos&i" NE "" %THEN %LET l_sasautos=&&i_sasautos&i;
00389 %LET l_sasautos_abs=%_sasunit_abspath(&l_root,&l_sasautos);
00390 %IF %_sasunit_handleError(&l_macname, InvalidSASAutosN, 
00391    "&l_sasautos_abs" NE "" AND NOT %_sasunit_existdir(&l_sasautos_abs), 
00392    Error in parameter i_sasautos&i: folder not found) 
00393    %THEN %GOTO errexit;
00394 PROC SQL NOPRINT;
00395    UPDATE target.tsu SET tsu_sasautos&i = "&l_sasautos";
00396 QUIT;
00397 %END; /* i=1 %TO 9 */
00398 
00399 /*-- load relevant information from test database to global macro symbols ----*/
00400 %_sasunit_loadEnvironment (
00401     i_withLibrefs = 0
00402 )
00403 %IF "&g_error_code" NE "" %THEN %GOTO errexit;
00404 
00405 %if &sysscp. = WIN %then %do; 
00406    /*-- options for OS commands ----------------------------------------------*/
00407    options noxwait xsync xmin;
00408 %end;
00409 
00410 /*-- check spawning of a SAS process -----------------------------------------*/
00411 /* a file will be created in the work library of the parent (this) process 
00412    to check whether spawning works */
00413 %LOCAL l_work;
00414 %LET l_work = %sysfunc(pathname(work));
00415 PROC DATASETS NOLIST NOWARN LIB=work;
00416    DELETE check;
00417 QUIT;
00418 
00419 DATA _null_;
00420    FILE "%sysfunc(pathname(work))/x.cmd";
00421    PUT "&g_removedir ""%sysfunc(pathname(work))/sasuser""&g_endcommand";
00422    PUT "&g_makedir ""%sysfunc(pathname(work))/sasuser""&g_endcommand";
00423 %IF %length(&g_sasuser) %THEN %DO;
00424    PUT "&g_copydir ""&g_sasuser"" ""%sysfunc(pathname(work))/sasuser""&g_endcommand";
00425 %END;
00426 RUN;
00427 %if &sysscp. = LINUX %then %do;
00428    %_sasunit_xcmd(chmod u+x "%sysfunc(pathname(work))/x.cmd")
00429 %end;
00430 %_sasunit_xcmd("%sysfunc(pathname(work))/x.cmd")
00431 %LOCAL l_rc;
00432 %LET l_rc=_sasunit_delfile(%sysfunc(pathname(work))/x.cmd);
00433          
00434 DATA _null_;
00435    FILE "&l_work/run.sas";
00436    PUT "LIBNAME awork ""&l_work"";";
00437    PUT "DATA awork.check; RUN;";
00438 RUN;
00439 %LOCAL l_parms;
00440 %IF "&g_autoexec" NE "" %THEN %DO;
00441    %LET l_parms=&l_parms -autoexec "&g_autoexec";
00442 %END;
00443 %IF "&g_sascfg" NE "" %THEN %DO;
00444    %LET l_parms=&l_parms -config "&g_sascfg";
00445 %END;
00446 
00447 %sysexec 
00448       &g_sasstart
00449       &l_parms
00450       -sysin "&l_work/run.sas"
00451       -initstmt "%nrstr(%_sasunit_scenario%(io_target=)&g_target%str(%))"
00452       -log   "&g_log/000.log"
00453       -print "&g_log/000.lst"
00454       &g_splash
00455       -noovp
00456       -nosyntaxcheck
00457       -mautosource
00458       -mcompilenote all
00459       -sasautos "&g_sasunit"
00460       -sasuser "%sysfunc(pathname(work))/sasuser"
00461    ;
00462 
00463 %put  &g_sasstart
00464       &l_parms
00465       -sysin "&l_work/run.sas"
00466       -initstmt "%nrstr(%_sasunit_scenario%(io_target=)&g_target%str(%))"
00467       -log   "&g_log/000.log"
00468       -print "&g_log/000.lst"
00469       &g_splash
00470       -noovp
00471       -nosyntaxcheck
00472       -mautosource
00473       -mcompilenote all
00474       -sasautos "&g_sasunit"
00475       -sasuser "%sysfunc(pathname(work))/sasuser"
00476    ;
00477 
00478 
00479 %IF %_sasunit_handleError(&l_macname, ErrorSASCall2, 
00480    NOT %sysfunc(exist(work.check)), 
00481    Error spawning SAS process in initialization) 
00482    %THEN %GOTO errexit;
00483 
00484 PROC DATASETS NOLIST NOWARN LIB=work;
00485    DELETE check;
00486 QUIT;
00487 
00488 %LET l_rc=%_sasunit_delFile(&l_work/run.sas);
00489 
00490 /*-- save time of initialization ---------------------------------------------*/
00491 PROC SQL NOPRINT;
00492    UPDATE target.tsu 
00493       SET tsu_lastinit = %sysfunc(datetime())
00494    ;
00495 QUIT;
00496 
00497 %PUT;
00498 %PUT ============================ SASUnit has been initialized successfully ==========================;
00499 %PUT;
00500 
00501 %GOTO exit;
00502 %errexit:
00503    %PUT;
00504    %PUT &g_error: ===================== Error! Testsuite aborted! ===========================================;
00505    %PUT;
00506    LIBNAME target;
00507 %exit:
00508 %MEND initSASUnit;

Generated on Sun Oct 10 14:10:15 2010 for SASUnit Examples by  doxygen 1.5.3