Return to 006_variation2.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / file |
1.1 misho 1: --TEST-- 2: Test fileperms() & chmod() functions: usage variation - misc. perms 3: --SKIPIF-- 4: <?php 5: if (substr(PHP_OS, 0, 3) == 'WIN') { 6: die('skip Not on Windows'); 7: } 8: // Skip if being run by root 9: $filename = dirname(__FILE__)."/006_root_check.tmp"; 10: $fp = fopen($filename, 'w'); 11: fclose($fp); 12: if(fileowner($filename) == 0) { 13: unlink ($filename); 14: die('skip cannot be run as root'); 15: } 16: 17: unlink($filename); 18: 19: ?> 20: --FILE-- 21: <?php 22: /* 23: Prototype: int fileperms ( string $filename ); 24: Description: Returns the permissions on the file, or FALSE in case of an error 25: 26: Prototype: bool chmod ( string $filename, int $mode ); 27: Description: Attempts to change the mode of the file specified by 28: filename to that given in mode 29: */ 30: 31: /* Testing with miscellaneous Permission */ 32: 33: echo "*** Testing fileperms() & chmod() : usage variations ***\n"; 34: 35: $file_name = dirname(__FILE__)."/006_variation2.tmp"; 36: $file_handle = fopen($file_name, "w"); 37: fclose($file_handle); 38: $dir_name = dirname(__FILE__)."/006_variation2"; 39: mkdir($dir_name); 40: 41: echo "\n*** Testing fileperms(), chmod() with miscellaneous permissions ***\n"; 42: $perms_array = array( 43: /* testing sticky bit */ 44: 07777, 45: 00000, 46: 01000, 47: 011111, 48: /* negative values as permission */ 49: -0777, // permissions will be given as 2's complement form of -0777 50: -07777, // permissions will be given as 2's complement form of -07777 51: 52: /* decimal values as permission */ 53: 777, // permissions will be given as octal equivalent value of 777 54: 7777, // permissions will be given as octal equivalent value of 7777 55: -7777, // permissions are given as 2's complement of octal equivalent of 7777 56: 57: /* hex value as permission */ 58: 0x777, // permissions will be given as ocatal equivalent value of 0x777 59: 0x7777, 60: 61: /* strings notation of permission, wont work properly */ 62: "r+w", 63: "r+w+x", 64: "u+rwx", 65: "u+rwx, g+rw, o+wx" 66: ); 67: 68: $count = 1; 69: foreach($perms_array as $permission) { 70: echo "-- Iteration $count --\n"; 71: var_dump( chmod($file_name, $permission) ); 72: printf("%o", fileperms($file_name) ); 73: echo "\n"; 74: clearstatcache(); 75: 76: var_dump( chmod($dir_name, $permission) ); 77: printf("%o", fileperms($dir_name) ); 78: echo "\n"; 79: clearstatcache(); 80: $count++; 81: } 82: echo "*** Done ***\n"; 83: ?> 84: --CLEAN-- 85: <?php 86: chmod(dirname(__FILE__)."/006_variation2.tmp", 0777); 87: chmod(dirname(__FILE__)."/006_variation2", 0777); 88: unlink(dirname(__FILE__)."/006_variation2.tmp"); 89: rmdir(dirname(__FILE__)."/006_variation2"); 90: ?> 91: --EXPECTF-- 92: *** Testing fileperms() & chmod() : usage variations *** 93: 94: *** Testing fileperms(), chmod() with miscellaneous permissions *** 95: -- Iteration 1 -- 96: bool(true) 97: 107777 98: bool(true) 99: 47777 100: -- Iteration 2 -- 101: bool(true) 102: 100000 103: bool(true) 104: 40000 105: -- Iteration 3 -- 106: bool(true) 107: 101000 108: bool(true) 109: 41000 110: -- Iteration 4 -- 111: bool(true) 112: 101111 113: bool(true) 114: 41111 115: -- Iteration 5 -- 116: bool(true) 117: 107001 118: bool(true) 119: 47001 120: -- Iteration 6 -- 121: bool(true) 122: 100001 123: bool(true) 124: 40001 125: -- Iteration 7 -- 126: bool(true) 127: 101411 128: bool(true) 129: 41411 130: -- Iteration 8 -- 131: bool(true) 132: 107141 133: bool(true) 134: 47141 135: -- Iteration 9 -- 136: bool(true) 137: 100637 138: bool(true) 139: 40637 140: -- Iteration 10 -- 141: bool(true) 142: 103567 143: bool(true) 144: 43567 145: -- Iteration 11 -- 146: bool(true) 147: 103567 148: bool(true) 149: 43567 150: -- Iteration 12 -- 151: 152: Warning: chmod() expects parameter 2 to be long, string given in %s on line %d 153: NULL 154: 103567 155: 156: Warning: chmod() expects parameter 2 to be long, string given in %s on line %d 157: NULL 158: 43567 159: -- Iteration 13 -- 160: 161: Warning: chmod() expects parameter 2 to be long, string given in %s on line %d 162: NULL 163: 103567 164: 165: Warning: chmod() expects parameter 2 to be long, string given in %s on line %d 166: NULL 167: 43567 168: -- Iteration 14 -- 169: 170: Warning: chmod() expects parameter 2 to be long, string given in %s on line %d 171: NULL 172: 103567 173: 174: Warning: chmod() expects parameter 2 to be long, string given in %s on line %d 175: NULL 176: 43567 177: -- Iteration 15 -- 178: 179: Warning: chmod() expects parameter 2 to be long, string given in %s on line %d 180: NULL 181: 103567 182: 183: Warning: chmod() expects parameter 2 to be long, string given in %s on line %d 184: NULL 185: 43567 186: *** Done ***