Return to chmod_variation2.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / file |
1.1 misho 1: --TEST-- 2: chmod() with various paths 3: --SKIPIF-- 4: <?php 5: if (substr(PHP_OS, 0, 3) == 'WIN') { 6: die('skip non-windows only test'); 7: } 8: ?> 9: --FILE-- 10: <?php 11: 12: define("PERMISSIONS_MASK", 0777); 13: 14: $script_directory = dirname(__FILE__); 15: chdir($script_directory); 16: $test_dirname = basename(__FILE__, ".php") . "testdir"; 17: mkdir($test_dirname); 18: 19: $filepath = __FILE__ . ".tmp"; 20: $filename = basename($filepath); 21: $fd = fopen($filepath, "w+"); 22: fclose($fd); 23: 24: echo "chmod() on a path containing .. and .\n"; 25: var_dump(chmod("./$test_dirname/../$filename", 0777)); 26: var_dump(chmod("./$test_dirname/../$filename", 0755)); 27: clearstatcache(); 28: printf("%o\n", fileperms($filepath) & PERMISSIONS_MASK); 29: 30: echo "\nchmod() on a path containing .. with invalid directories\n"; 31: var_dump(chmod($filepath, 0777)); 32: var_dump(chmod("./$test_dirname/bad_dir/../../$filename", 0755)); 33: clearstatcache(); 34: printf("%o\n", fileperms($filepath) & PERMISSIONS_MASK); 35: 36: echo "\nchmod() on a linked file\n"; 37: $linkname = "somelink"; 38: var_dump(symlink($filepath, $linkname)); 39: var_dump(chmod($filepath, 0777)); 40: var_dump(chmod($linkname, 0755)); 41: clearstatcache(); 42: printf("%o\n", fileperms($filepath) & PERMISSIONS_MASK); 43: var_dump(unlink($linkname)); 44: 45: echo "\nchmod() on a relative path from a different working directory\n"; 46: chdir($test_dirname); 47: var_dump(chmod("../$filename", 0777)); 48: var_dump(chmod("../$filename", 0755)); 49: clearstatcache(); 50: printf("%o\n", fileperms($filepath) & PERMISSIONS_MASK); 51: chdir($script_directory); 52: 53: echo "\nchmod() on a directory with a trailing /\n"; 54: var_dump(chmod($test_dirname, 0777)); 55: var_dump(chmod("$test_dirname/", 0775)); 56: clearstatcache(); 57: printf("%o\n", fileperms($filepath) & PERMISSIONS_MASK); 58: 59: chdir($script_directory); 60: rmdir($test_dirname); 61: unlink($filepath); 62: 63: ?> 64: --EXPECTF-- 65: chmod() on a path containing .. and . 66: bool(true) 67: bool(true) 68: 755 69: 70: chmod() on a path containing .. with invalid directories 71: bool(true) 72: 73: Warning: chmod(): No such file or directory in %s on line %d 74: bool(false) 75: 777 76: 77: chmod() on a linked file 78: bool(true) 79: bool(true) 80: bool(true) 81: 755 82: bool(true) 83: 84: chmod() on a relative path from a different working directory 85: bool(true) 86: bool(true) 87: 755 88: 89: chmod() on a directory with a trailing / 90: bool(true) 91: bool(true) 92: 755