From 4e51f8e4f6cd83349b32e4186346cc7a189682a2 Mon Sep 17 00:00:00 2001 From: Slaven Rezic Date: Tue, 19 Mar 2002 22:47:49 +0100 Subject: [PATCH] Re: Nearly OK for cygwin@15318 Date: Tue, 19 Mar 2002 21:47:49 +0100 Message-Id: <20020319204958.PTWF27460.mailoutvl21@[192.168.139.30]> Subject: Re: Nearly OK for cygwin@15318 From: Date: Tue, 19 Mar 2002 21:37:18 +0100 Message-Id: <20020319203927.PTPI27460.mailoutvl21@[192.168.139.30]> p4raw-id: //depot/perl@15343 --- pod/perlport.pod | 3 +++ t/io/fs.t | 28 ++++++++++++++++++++++++---- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/pod/perlport.pod b/pod/perlport.pod index 9ca3f15..5edbf27 100644 --- a/pod/perlport.pod +++ b/pod/perlport.pod @@ -1440,6 +1440,9 @@ Only good for changing "owner" and "other" read-write access. (S) Access permissions are mapped onto VOS access-control list changes. (VOS) +The actual permissions set depend on the value of the C +environment variable. (Cygwin) + =item chown LIST Not implemented. (S, Win32, Plan9, S, VOS) diff --git a/t/io/fs.t b/t/io/fs.t index c30e14a..e7a7cb7 100755 --- a/t/io/fs.t +++ b/t/io/fs.t @@ -41,6 +41,9 @@ my $needs_fh_reopen = $needs_fh_reopen = 1 if (defined &Win32::IsWin95 && Win32::IsWin95()); +my $skip_mode_checks = + $^O eq 'cygwin' && $ENV{CYGWIN} !~ /ntsec/; + plan tests => 36; @@ -93,8 +96,13 @@ SKIP: { SKIP: { skip "hard links not that hard in $^O", 1 if $^O eq 'amigaos'; + skip "no mode checks", 1 if $skip_mode_checks; - is($mode & 0777, 0666, "mode of triply-linked file"); + if ($^O eq 'cygwin') { # new files on cygwin get rwx instead of rw- + is($mode & 0777, 0777, "mode of triply-linked file"); + } else { + is($mode & 0777, 0666, "mode of triply-linked file"); + } } } @@ -108,7 +116,11 @@ SKIP: { ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, $blksize,$blocks) = stat('c'); - is($mode & 0777, $newmode, "chmod going through"); + SKIP: { + skip "no mode checks", 1 if $skip_mode_checks; + + is($mode & 0777, $newmode, "chmod going through"); + } $newmode = 0700; chmod 0444, 'x'; @@ -119,12 +131,20 @@ SKIP: { ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, $blksize,$blocks) = stat('c'); - is($mode & 0777, $newmode, "chmod going through to c"); + SKIP: { + skip "no mode checks", 1 if $skip_mode_checks; + + is($mode & 0777, $newmode, "chmod going through to c"); + } ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, $blksize,$blocks) = stat('x'); - is($mode & 0777, $newmode, "chmod going through to x"); + SKIP: { + skip "no mode checks", 1 if $skip_mode_checks; + + is($mode & 0777, $newmode, "chmod going through to x"); + } is(unlink('b','x'), 2, "unlink two files"); -- 2.7.4