This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update CORE.pod to reflect the new coresubs
[perl5.git] / lib / vmsish.t
index ff3f5b5..7392fed 100644 (file)
@@ -5,10 +5,12 @@ BEGIN {
     @INC = '../lib'; 
 }
 
-my $Invoke_Perl = qq(MCR $^X "-I[-.lib]");
+my $perl = $^X;
+$perl = VMS::Filespec::vmsify($perl) if $^O eq 'VMS';
 
-require "./test.pl";
-plan(tests => 25);
+my $Invoke_Perl = qq(MCR $perl "-I[-.lib]");
+
+use Test::More tests => 25;
 
 SKIP: {
     skip("tests for non-VMS only", 1) if $^O eq 'VMS';
@@ -26,7 +28,7 @@ SKIP: {
 
 #========== vmsish status ==========
 `$Invoke_Perl -e 1`;  # Avoid system() from a pipe from harness.  Mutter.
-is($?,0,"simple Perl invokation: POSIX success status");
+is($?,0,"simple Perl invocation: POSIX success status");
 {
   use vmsish qw(status);
   is(($? & 1),1, "importing vmsish [vmsish status]");
@@ -50,7 +52,7 @@ is($?,0,"outer lex scope of vmsish [POSIX status]");
 
   $msg = do_a_perl('-e "exit 1"');
     $msg =~ s/\n/\\n/g; # keep output on one line
-  like($msg,'ABORT', "POSIX ERR exit, DCL error message check");
+  like($msg, qr/ABORT/, "POSIX ERR exit, DCL error message check");
   is($?&1,0,"vmsish status check, POSIX ERR exit");
 
   $msg = do_a_perl('-e "use vmsish qw(exit); exit 1"');
@@ -60,7 +62,7 @@ is($?,0,"outer lex scope of vmsish [POSIX status]");
 
   $msg = do_a_perl('-e "use vmsish qw(exit); exit 44"');
     $msg =~ s/\n/\\n/g; # keep output on one line
-  like($msg, 'ABORT', "vmsish ERR exit, DCL error message check");
+  like($msg, qr/ABORT/, "vmsish ERR exit, DCL error message check");
   is($?&1,0,"vmsish ERR exit, vmsish status check");
 
   $msg = do_a_perl('-e "use vmsish qw(hushed); exit 1"');
@@ -73,7 +75,7 @@ is($?,0,"outer lex scope of vmsish [POSIX status]");
 
   $msg = do_a_perl('-e "use vmsish qw(exit hushed); no vmsish qw(hushed); exit 44"');
   $msg =~ s/\n/\\n/g; # keep output on one line
-  like($msg,'ABORT',"vmsish ERR exit, no vmsish hushed, DCL error message check");
+  like($msg, qr/ABORT/,"vmsish ERR exit, no vmsish hushed, DCL error message check");
 
   $msg = do_a_perl('-e "use vmsish qw(hushed); die(qw(blah));"');
   $msg =~ s/\n/\\n/g; # keep output on one line
@@ -112,8 +114,19 @@ is($?,0,"outer lex scope of vmsish [POSIX status]");
     eval "END { \$ENV{'SYS\$TIMEZONE_DIFFERENTIAL'} = $oldtz; }";
     gmtime(0); # Force reset of tz offset
   }
+
+  # Unless we are prepared to parse the timezone rules here and figure out
+  # what the correct offset was when the file was last revised, we need to 
+  # use a file for which the current offset is known to be valid.  That's why
+  # we create a file rather than using an existing one for the stat() test.
+
+  my $file = 'sys$scratch:vmsish_t_flirble.tmp';
+  open TMP, ">$file" or die "Couldn't open file $file";
+  close TMP;
+  END { 1 while unlink $file; }
+
   {
-     use_ok('vmsish qw(time)');
+     use_ok('vmsish', 'time');
 
      # but that didn't get it in our current scope
      use vmsish qw(time);
@@ -121,12 +134,12 @@ is($?,0,"outer lex scope of vmsish [POSIX status]");
      $vmstime   = time;
      @vmslocal  = localtime($vmstime);
      @vmsgmtime = gmtime($vmstime);
-     $vmsmtime  = (stat $0)[9];
+     $vmsmtime  = (stat $file)[9];
   }
   $utctime   = time;
   @utclocal  = localtime($vmstime);
   @utcgmtime = gmtime($vmstime);
-  $utcmtime  = (stat $0)[9];
+  $utcmtime  = (stat $file)[9];
   
   $offset = $ENV{'SYS$TIMEZONE_DIFFERENTIAL'};