fix vmsish.t #25 by letting $0 find itself in the face of chdir() calls
Peter Prymmer [Wed, 11 Jun 2003 09:00:34 +0000 (05:00 -0400)]
Message-ID: <OF2535E971.A30D9C74-ON85256D42.00461FF9-85256D42.004776C4@factset.com>

p4raw-id: //depot/perl@19741

lib/vmsish.t

index ff3f5b5..aad4a4a 100644 (file)
@@ -112,6 +112,19 @@ is($?,0,"outer lex scope of vmsish [POSIX status]");
     eval "END { \$ENV{'SYS\$TIMEZONE_DIFFERENTIAL'} = $oldtz; }";
     gmtime(0); # Force reset of tz offset
   }
+  # This test script might have been invoked in at least one of four different ways:
+  #     perl lib/vmsish.t
+  #     perl [.lib]vmsish.t
+  #     set def [.t] && perl ../lib/vmsish.t
+  #     set def [.t] && perl [-.lib]vmsish.t
+  # In the following we attempt to find ourselves without resorting to VMS::Filespec.
+  # Note that the chdir in the BEGIN block above complicates matters.
+  my $self = $0;
+  if ( ! -e $self && -e "../$0" ) { $self = "../$0"; }
+  if ( ! -e $self ) {
+      $self =~ s/\[//;
+      $self = "[-$self";
+  }
   {
      use_ok('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 $self)[9];
   }
   $utctime   = time;
   @utclocal  = localtime($vmstime);
   @utcgmtime = gmtime($vmstime);
-  $utcmtime  = (stat $0)[9];
+  $utcmtime  = (stat $self)[9];
   
   $offset = $ENV{'SYS$TIMEZONE_DIFFERENTIAL'};