X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=vms%2Ftest.com;h=7a3bc63cdddb1729206490cbc7c446c13965327a;hb=ffa5faba68902313c2103a742dc00a206824c798;hp=6dbed1f67134d32d4639a7d42f4253d10595b515;hpb=1f5d76b278c27042e165bfe1509977a2765de939;p=p5sagit%2Fp5-mst-13.2.git diff --git a/vms/test.com b/vms/test.com index 6dbed1f..7a3bc63 100644 --- a/vms/test.com +++ b/vms/test.com @@ -1,25 +1,24 @@ -$! Test.Com - DCL driver for perl5 regression tests +$! Test.Com - DCL wrapper for perl5 regression test driver +$! +$! Version 2.0 25-April-2002 Craig Berry craigberry@mac.com +$! (and many other hands in the last 7+ years) +$! The most significant difference is that we now run the external t/TEST +$! rather than keeping a separately maintained test driver embedded here. $! $! Version 1.1 4-Dec-1995 $! Charles Bailey bailey@newman.upenn.edu $! -$! A little basic setup +$! Set up error handler and save things we'll restore later. +$ On Control_Y Then Goto Control_Y_exit $ On Error Then Goto wrapup $ olddef = F$Environment("Default") $ oldmsg = F$Environment("Message") -$ If F$Search("t.dir").nes."" -$ Then -$ Set Default [.t] -$ Else -$ If F$TrnLNm("Perl_Root").nes."" -$ Then -$ Set Default Perl_Root:[t] -$ Else -$ Write Sys$Error "Can't find test directory" -$ Exit 44 -$ EndIf -$ EndIf -$ Set Message /NoFacility/NoSeverity/NoIdentification/NoText +$ oldpriv = F$SetPrv("NOALL") ! downgrade privs for safety +$ discard = F$SetPrv("NETMBX,TMPMBX") ! only need these to run tests +$! +$! Process arguments. P1 is the file extension of the Perl images. +$! P2, when not empty, indicates that we are testing a version of Perl built +$! for the VMS debugger. The other arguments are passed directly to t/TEST. $! $ exe = ".Exe" $ If p1.nes."" Then exe = p1 @@ -30,7 +29,8 @@ $ Write Sys$Error "The first parameter passed to Test.Com must be the file t $ Write Sys$Error "images produced when you built Perl (i.e. "".Exe"", unless you edited" $ Write Sys$Error "Descrip.MMS or used the AXE=1 macro in the MM[SK] command line." $ Write Sys$Error "" -$ Exit 44 +$ $status = 44 +$ goto wrapup $ EndIf $! $! "debug" perl if second parameter is nonblank @@ -40,186 +40,63 @@ $ ndbg = "" $ if p2.nes."" then dbg = "dbg" $ if p2.nes."" then ndbg = "ndbg" $! +$! Run using "TEST." unless something else (e.g. "harness.") was specified. +$ If F$Type(PERL_TEST_DRIVER) .eqs. "" Then PERL_TEST_DRIVER == "TEST." +$! +$! Make sure we are where we need to be. +$ If F$Search("t.dir").nes."" +$ Then +$ Set Default [.t] +$ Else +$ If F$TrnLNm("Perl_Root").nes."" +$ Then +$ Set Default Perl_Root:[t] +$ Else +$ Write Sys$Error "Can't find test directory" +$ $status = 44 +$ goto wrapup +$ EndIf +$ EndIf +$! $! Pick up a copy of perl to use for the tests $ If F$Search("Perl.").nes."" Then Delete/Log/NoConfirm Perl.;* -$ Copy/Log/NoConfirm [-]'ndbg'Perl'exe' []Perl. +$ If PERL_TEST_DRIVER .eqs. "minitest" +$ Then +$ Copy/Log/NoConfirm [-]miniperl'exe' []Perl. +$ Else +$ Copy/Log/NoConfirm [-]'ndbg'Perl'exe' []Perl. +$ EndIf $! $! Pick up a copy of vmspipe.com to use for the tests $ If F$Search("VMSPIPE.COM").nes."" then Delete/Log/Noconfirm VMSPIPE.COM;* $ Copy/Log/NoConfirm [-]VMSPIPE.COM [] $! $! This may be set for the C compiler in descrip.mms, but it confuses the File::Find tests -$ if f$trnlnm("sys") .nes. "" then DeAssign sys +$ if f$trnlnm("sys") .nes. "" then Define sys " " $! $! And do it +$ Set Message /NoFacility/NoSeverity/NoIdentification/NoText $ Show Process/Accounting $ testdir = "Directory/NoHead/NoTrail/Column=1" $ PerlShr_filespec = f$parse("Sys$Disk:[-]''dbg'PerlShr''exe'") $ Define 'dbg'Perlshr 'PerlShr_filespec' -$ if f$mode() .nes. "INTERACTIVE" then Define PERL_SKIP_TTY_TEST 1 -$ MCR Sys$Disk:[]Perl. "-I[-.lib]" - "''p3'" "''p4'" "''p5'" "''p6'" -$ Deck/Dollar=$$END-OF-TEST$$ -# -# The bulk of the below code is scheduled for deletion. test.com -# will shortly use t/TEST. -# - -use Config; -use File::Spec; - -$| = 1; - -# Let tests know they're running in the perl core. Useful for modules -# which live dual lives on CPAN. -$ENV{PERL_CORE} = 1; - -@ARGV = grep($_,@ARGV); # remove empty elements due to "''p1'" syntax - -if (lc($ARGV[0]) eq '-v') { - $verbose = 1; - shift; -} - -chdir 't' if -f 't/TEST'; - -if ($ARGV[0] eq '') { - foreach (<[.*]*.t>, <[-.ext...]*.t>, <[-.lib...]*.t>) { - $_ = File::Spec->abs2rel($_); - s/\[([a-z]+)/[.$1/; # hmm, abs2rel doesn't do subdirs of the cwd - ($fname = $_) =~ s/.*\]//; - push(@ARGV,$_); - } -} - -$bad = 0; -$good = 0; -$extra_skip = 0; -$total = @ARGV; -while ($test = shift) { - if ($test =~ /^$/) { - next; - } - $te = $test; - chop($te); - $te .= '.' x (40 - length($te)); - open(script,"$test") || die "Can't run $test.\n"; - $_ =