[PATCH] lib/ExtUtils/t/Command.t -- VOS Fixes
Paul Green [Sat, 19 Jan 2002 17:17:00 +0000 (12:17 -0500)]
Date: Sat, 19 Jan 02 17:17 est
Message-Id: <200201192218.RAA07911@mailhub1.stratus.com>

Subject: [PATCH] lib/ExtUtils/t/Command.t -- add more tests
From: Paul_GreenVOS@vos.stratus.com
Date: Sat, 19 Jan 02 17:19 est
Message-Id: <200201192218.RAA12331@mailhub2.stratus.com>

p4raw-id: //depot/perl@14360

lib/ExtUtils/t/Command.t

index a21661f..1127e12 100644 (file)
@@ -19,7 +19,7 @@ BEGIN {
 }
 
 BEGIN {
-       use Test::More tests => 21;
+       use Test::More tests => 24;
        use File::Spec;
 }
 
@@ -100,11 +100,40 @@ BEGIN {
        ok( abs($now - $stamp) <= 1, 'checking modify time stamp' ) ||
       print "# mtime == $stamp, should be $now\n";
 
+SKIP: {
+       if ($^O eq 'amigaos' || $^O eq 'os2' || $^O eq 'MSWin32' ||
+           $^O eq 'NetWare' || $^O eq 'dos' || $^O eq 'cygwin') {
+           skip( "different file permission semantics on $^O\n", 3);
+       }
+
+       # change a file to execute-only
+       @ARGV = ( 0100, 'ecmdfile' );
+       ExtUtils::Command::chmod();
+
+       is( ((stat('ecmdfile'))[2] & 07777) & 0700,
+           0100, 'change a file to execute-only' );
+
        # change a file to read-only
+       @ARGV = ( 0400, 'ecmdfile' );
+       ExtUtils::Command::chmod();
+
+       is( ((stat('ecmdfile'))[2] & 07777) & 0700,
+           ($^O eq 'vos' ? 0500 : 0400), 'change a file to read-only' );
+
+       # change a file to write-only
+       @ARGV = ( 0200, 'ecmdfile' );
+       ExtUtils::Command::chmod();
+
+       is( ((stat('ecmdfile'))[2] & 07777) & 0700,
+           ($^O eq 'vos' ? 0700 : 0200), 'change a file to write-only' );
+     }
+
+       # change a file to read-write
        @ARGV = ( 0600, 'ecmdfile' );
        ExtUtils::Command::chmod();
 
-       is( ((stat('ecmdfile'))[2] & 07777) & 0700, 0600, 'change a file to read-only' );
+       is( ((stat('ecmdfile'))[2] & 07777) & 0700,
+           ($^O eq 'vos' ? 0700 : 0600), 'change a file to read-write' );
 
        # mkpath
        @ARGV = ( File::Spec->join( 'ecmddir', 'temp2' ) );