1 $! Test.Com - DCL wrapper for perl5 regression test driver
3 $! Version 2.0 25-April-2002 Craig Berry craigberry@mac.com
4 $! (and many other hands in the last 7+ years)
5 $! The most significant difference is that we now run the external t/TEST
6 $! rather than keeping a separately maintained test driver embedded here.
8 $! Version 1.1 4-Dec-1995
9 $! Charles Bailey bailey@newman.upenn.edu
11 $! Set up error handler and save things we'll restore later.
12 $ On Control_Y Then Goto Control_Y_exit
13 $ On Error Then Goto wrapup
14 $ olddef = F$Environment("Default")
15 $ oldmsg = F$Environment("Message")
16 $ oldpriv = F$SetPrv("NOALL") ! downgrade privs for safety
17 $ discard = F$SetPrv("NETMBX,TMPMBX") ! only need these to run tests
19 $! Process arguments. P1 is the file extension of the Perl images.
20 $! P2, when not empty, indicates that we are testing a version of Perl built
21 $! for the VMS debugger. The other arguments are passed directly to t/TEST.
24 $ If p1.nes."" Then exe = p1
25 $ If F$Extract(0,1,exe) .nes. "."
28 $ Write Sys$Error "The first parameter passed to Test.Com must be the file type used for the"
29 $ Write Sys$Error "images produced when you built Perl (i.e. "".Exe"", unless you edited"
30 $ Write Sys$Error "Descrip.MMS or used the AXE=1 macro in the MM[SK] command line."
36 $! "debug" perl if second parameter is nonblank
40 $ if p2.nes."" then dbg = "dbg"
41 $ if p2.nes."" then ndbg = "ndbg"
43 $! Run using "TEST." unless something else (e.g. "harness.") was specified.
44 $ If F$Type(PERL_TEST_DRIVER) .eqs. "" Then PERL_TEST_DRIVER == "TEST."
46 $! Make sure we are where we need to be.
47 $ If F$Search("t.dir").nes.""
51 $ If F$TrnLNm("Perl_Root").nes.""
53 $ Set Default Perl_Root:[t]
55 $ Write Sys$Error "Can't find test directory"
61 $! Pick up a copy of perl to use for the tests
62 $ If F$Search("Perl''exe'").nes."" Then Delete/Log/NoConfirm Perl'exe';*
63 $ If PERL_TEST_DRIVER .eqs. "minitest"
65 $ Copy/Log/NoConfirm [-]miniperl'exe' []Perl'exe'
67 $ Copy/Log/NoConfirm [-]'ndbg'Perl'exe' []Perl'exe'
70 $! Pick up a copy of vmspipe.com to use for the tests
71 $ If F$Search("VMSPIPE.COM").nes."" then Delete/Log/Noconfirm VMSPIPE.COM;*
72 $ Copy/Log/NoConfirm [-]VMSPIPE.COM []
74 $! This may be set for the C compiler in descrip.mms, but it confuses the File::Find tests
75 $ if f$trnlnm("sys") .nes. "" then Define sys " "
78 $ Set Message /NoFacility/NoSeverity/NoIdentification/NoText
79 $ Show Process/Accounting
80 $ testdir = "Directory/NoHead/NoTrail/Column=1"
81 $ PerlShr_filespec = f$parse("Sys$Disk:[-]''dbg'PerlShr''exe'")
82 $ Define 'dbg'Perlshr 'PerlShr_filespec'
83 $ If F$Mode() .nes. "INTERACTIVE" Then Define/Nolog PERL_SKIP_TTY_TEST 1
84 $ If PERL_TEST_DRIVER .eqs. "minitest"
86 $ MCR Sys$Disk:[]Perl'exe' TEST. "-minitest" "base/*.t" "comp/*.t" "cmd/*.t" "run/*.t" "io/*.t" "op/*.t" "uni/*.t"
88 $ MCR Sys$Disk:[]Perl'exe' "-I[-.lib]" 'PERL_TEST_DRIVER' "''p3'" "''p4'" "''p5'" "''p6'" "''p7'"
93 $ $status = 1552 ! %SYSTEM-W-CONTROLY
97 $ If f$trnlnm("''dbg'PerlShr") .nes. "" Then DeAssign 'dbg'PerlShr
98 $ Show Process/Accounting
99 $ If f$type(olddef) .nes. "" Then Set Default &olddef
100 $ If f$type(oldmsg) .nes. "" Then Set Message 'oldmsg'
101 $ If f$type(oldpriv) .nes. "" Then discard = F$SetPrv(oldpriv)