}
BEGIN {
- use Test::More tests => 21;
+ use Test::More tests => 24;
use File::Spec;
}
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' ) );