1--TEST-- 2bug #44859 (incorrect result with NTFS ACL permissions, is_writable) 3--SKIPIF-- 4<?php 5include_once __DIR__ . '/common.inc'; 6skipif(); 7?> 8--FILE-- 9<?php 10$uniqueBasePath = substr(__FILE__, 0, strrpos(__FILE__, '.')); 11include_once __DIR__ . '/common.inc'; 12fix_acls(); 13 14$iteration = array( 15 PHPT_ACL_READ => false, 16 PHPT_ACL_NONE => false, 17 PHPT_ACL_WRITE => true, 18 PHPT_ACL_WRITE|PHPT_ACL_READ => true, 19); 20 21echo "Testing file:\n"; 22$i = 1; 23$path = $uniqueBasePath . '_file.txt'; 24foreach ($iteration as $perms => $exp) { 25 create_file($path, $perms); 26 clearstatcache(true, $path); 27 echo 'Iteration #' . $i++ . ': '; 28 if (is_writable($path) == $exp) { 29 echo "passed.\n"; 30 } else { 31 var_dump(is_writable($path), $exp); 32 echo "failed.\n"; 33 } 34 delete_file($path); 35} 36 37echo "Testing directory:\n"; 38$path = $uniqueBasePath . '_dir'; 39$i = 1; 40foreach ($iteration as $perms => $exp) { 41 create_dir($path, $perms); 42 clearstatcache(true, $path); 43 echo 'Iteration #' . $i++ . ': '; 44 if (is_writable($path) == $exp) { 45 echo "passed.\n"; 46 } else { 47 var_dump(is_writable($path), $exp); 48 echo "failed.\n"; 49 } 50 delete_dir($path); 51} 52 53?> 54--EXPECT-- 55Testing file: 56Iteration #1: passed. 57Iteration #2: passed. 58Iteration #3: passed. 59Iteration #4: passed. 60Testing directory: 61Iteration #1: passed. 62Iteration #2: passed. 63Iteration #3: passed. 64Iteration #4: passed. 65