summaryrefslogtreecommitdiff
path: root/ext/standard/tests/file/windows_acls
diff options
context:
space:
mode:
authorPierre Joye <pajoye@php.net>2009-06-16 00:07:05 +0000
committerPierre Joye <pajoye@php.net>2009-06-16 00:07:05 +0000
commit18d5751a9e8da170ca02ddbe06120c3993c9bf1e (patch)
tree43d5341a69919e3cd6141b406e708846cb3354f4 /ext/standard/tests/file/windows_acls
parentda9b80e30948d31d42de2c2cdf93398691f0c27c (diff)
downloadphp-git-18d5751a9e8da170ca02ddbe06120c3993c9bf1e.tar.gz
- Windows ACL cache support, update existing tests and add a new one
Diffstat (limited to 'ext/standard/tests/file/windows_acls')
-rw-r--r--ext/standard/tests/file/windows_acls/bug44859.phpt2
-rw-r--r--ext/standard/tests/file/windows_acls/bug44859_2.phpt6
-rw-r--r--ext/standard/tests/file/windows_acls/bug44859_4.phpt64
-rw-r--r--ext/standard/tests/file/windows_acls/common.inc1
4 files changed, 70 insertions, 3 deletions
diff --git a/ext/standard/tests/file/windows_acls/bug44859.phpt b/ext/standard/tests/file/windows_acls/bug44859.phpt
index 0716ee5ac4..bb22a5cd8e 100644
--- a/ext/standard/tests/file/windows_acls/bug44859.phpt
+++ b/ext/standard/tests/file/windows_acls/bug44859.phpt
@@ -21,6 +21,7 @@ $i = 1;
$path = __DIR__ . '/a.txt';
foreach ($iteration as $perms => $exp) {
create_file($path, $perms);
+ clearstatcache(true, $path);
echo 'Iteration #' . $i++ . ': ';
if (is_writable($path) == $exp) {
echo "passed.\n";
@@ -36,6 +37,7 @@ $path = __DIR__ . '/adir';
$i = 1;
foreach ($iteration as $perms => $exp) {
create_file($path, $perms);
+ clearstatcache(true, $path);
echo 'Iteration #' . $i++ . ': ';
if (is_writable($path) == $exp) {
echo "passed.\n";
diff --git a/ext/standard/tests/file/windows_acls/bug44859_2.phpt b/ext/standard/tests/file/windows_acls/bug44859_2.phpt
index 8326eb473e..3cc4ed1ba1 100644
--- a/ext/standard/tests/file/windows_acls/bug44859_2.phpt
+++ b/ext/standard/tests/file/windows_acls/bug44859_2.phpt
@@ -21,11 +21,12 @@ $i = 1;
$path = __DIR__ . '/a.txt';
foreach ($iteration as $perms => $exp) {
create_file($path, $perms);
+ clearstatcache(true, $path);
echo 'Iteration #' . $i++ . ': ';
if (is_readable($path) == $exp) {
echo "passed.\n";
} else {
- var_dump(is_writable($path), $exp);
+ var_dump(is_readable($path), $exp);
echo "failed.\n";
}
delete_file($path);
@@ -36,11 +37,12 @@ $path = __DIR__ . '/adir';
$i = 1;
foreach ($iteration as $perms => $exp) {
create_file($path, $perms);
+ clearstatcache(true, $path);
echo 'Iteration #' . $i++ . ': ';
if (is_readable($path) == $exp) {
echo "passed.\n";
} else {
- var_dump(is_writable($path), $exp);
+ var_dump(is_readable($path), $exp);
echo "failed.\n";
}
delete_file($path);
diff --git a/ext/standard/tests/file/windows_acls/bug44859_4.phpt b/ext/standard/tests/file/windows_acls/bug44859_4.phpt
new file mode 100644
index 0000000000..fff90662e8
--- /dev/null
+++ b/ext/standard/tests/file/windows_acls/bug44859_4.phpt
@@ -0,0 +1,64 @@
+--TEST--
+bug #44859 (incorrect result with NTFS ACL permissions, is_readable)
+--CREDIT--
+Venkat Raman Don
+--SKIPIF--
+<?php
+include_once __DIR__ . '/common.inc';
+skipif();
+?>
+--FILE--
+<?php
+include_once __DIR__ . '/common.inc';
+
+$iteration = array(
+ PHPT_ACL_READ => true,
+ PHPT_ACL_NONE => false,
+ PHPT_ACL_WRITE => false,
+ PHPT_ACL_WRITE|PHPT_ACL_READ => true,
+);
+
+echo "Testing file with relative path:\n";
+$i = 1;
+$path = './a.txt';
+foreach ($iteration as $perms => $exp) {
+ create_file($path, $perms);
+ clearstatcache(true, $path);
+ echo 'Iteration #' . $i++ . ': ';
+ if (is_readable($path) == $exp) {
+ echo "passed.\n";
+ } else {
+ var_dump(is_readable($path), $exp);
+ echo "failed.\n";
+ }
+ delete_file($path);
+}
+
+echo "Testing directory with relative path:\n";
+$path = 'adir';
+$i = 1;
+foreach ($iteration as $perms => $exp) {
+ create_file($path, $perms);
+ clearstatcache(true, $path);
+ echo 'Iteration #' . $i++ . ': ';
+ if (is_readable($path) == $exp) {
+ echo "passed.\n";
+ } else {
+ var_dump(is_readable($path), $exp);
+ echo "failed.\n";
+ }
+ delete_file($path);
+}
+
+?>
+--EXPECT--
+Testing file with relative path:
+Iteration #1: passed.
+Iteration #2: passed.
+Iteration #3: passed.
+Iteration #4: passed.
+Testing directory with relative path:
+Iteration #1: passed.
+Iteration #2: passed.
+Iteration #3: passed.
+Iteration #4: passed.
diff --git a/ext/standard/tests/file/windows_acls/common.inc b/ext/standard/tests/file/windows_acls/common.inc
index 6bcaf2b327..2a1adeb0a4 100644
--- a/ext/standard/tests/file/windows_acls/common.inc
+++ b/ext/standard/tests/file/windows_acls/common.inc
@@ -123,7 +123,6 @@ function create_file($name, $perms) {
}
touch($name);
- $dst = realpath($name);
icacls_set($name, PHPT_ACL_GRANT, $perms);
}