summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSlaven Rezic <slaven@rezic.de>2002-03-19 22:47:49 +0100
committerJarkko Hietaniemi <jhi@iki.fi>2002-03-19 21:47:02 +0000
commit4e51f8e4f6cd83349b32e4186346cc7a189682a2 (patch)
tree85cb71320535b2a6283ad76641980a467b7c4c43
parent9968bb4bad35fe421ed491bb4eed22ab79198eec (diff)
downloadperl-4e51f8e4f6cd83349b32e4186346cc7a189682a2.tar.gz
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: <slaven.rezic@berlin.de> Date: Tue, 19 Mar 2002 21:37:18 +0100 Message-Id: <20020319203927.PTPI27460.mailoutvl21@[192.168.139.30]> p4raw-id: //depot/perl@15343
-rw-r--r--pod/perlport.pod3
-rwxr-xr-xt/io/fs.t28
2 files changed, 27 insertions, 4 deletions
diff --git a/pod/perlport.pod b/pod/perlport.pod
index 9ca3f15e8c..5edbf27031 100644
--- a/pod/perlport.pod
+++ b/pod/perlport.pod
@@ -1440,6 +1440,9 @@ Only good for changing "owner" and "other" read-write access. (S<RISC OS>)
Access permissions are mapped onto VOS access-control list changes. (VOS)
+The actual permissions set depend on the value of the C<CYGWIN>
+environment variable. (Cygwin)
+
=item chown LIST
Not implemented. (S<Mac OS>, Win32, Plan9, S<RISC OS>, VOS)
diff --git a/t/io/fs.t b/t/io/fs.t
index c30e14acf6..e7a7cb7fa1 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");