Return to symlink_link_linkinfo_is_link_variation6.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / file |
1.1 misho 1: --TEST-- 2: Test symlink(), linkinfo(), link() and is_link() functions : usage variations - link & dir perms. 3: --SKIPIF-- 4: <?php 5: if ( substr(PHP_OS, 0, 3) == 'WIN' ) { 6: die('skip no symlinks on Windows'); 7: } 8: if ( substr(PHP_OS, 0, 3) == 'MAC' ) { 9: die('skip Not valid for MacOS'); 10: } 11: if (PHP_INT_SIZE != 4) { 12: die("skip this test is for 32bit platform only"); 13: } 14: 15: // Skip if being run by root (files are always readable, writeable and executable) 16: $filename = dirname(__FILE__)."/symlink_link_linkinfo_is_link6_check_root.tmp"; 17: $fp = fopen($filename, 'w'); 18: fclose($fp); 19: if(fileowner($filename) == 0) { 20: unlink ($filename); 21: die('skip cannot be run as root'); 22: } 23: 24: unlink($filename); 25: ?> 26: --FILE-- 27: <?php 28: /* Prototype: bool symlink ( string $target, string $link ); 29: Description: creates a symbolic link to the existing target with the specified name link 30: 31: Prototype: bool is_link ( string $filename ); 32: Description: Tells whether the given file is a symbolic link. 33: 34: Prototype: bool link ( string $target, string $link ); 35: Description: Create a hard link 36: 37: Prototype: int linkinfo ( string $path ); 38: Description: Gets information about a link 39: */ 40: 41: /* Variation 6 : Change permission of directory and try creating links inside that directory */ 42: $file_path = dirname(__FILE__); 43: 44: echo "*** Creating links in a directory without permission to allow the operation ***\n"; 45: // temp file used 46: $dirname = "$file_path/symlink_link_linkinfo_is_link_variation6"; 47: mkdir($dirname); 48: $filename = "$dirname/symlink_link_linkinfo_is_link_variation6.tmp"; 49: 50: // remove all permissions from dir 51: var_dump( chmod($dirname, 0000) ); 52: 53: echo "\n-- Working with soft links --\n"; 54: $linkname = "$dirname/non_existent_link_variation5.tmp"; 55: 56: // expected: false 57: var_dump( symlink($filename, $linkname) ); // this link won't get created 58: var_dump( linkinfo($linkname) ); 59: var_dump( is_link($linkname) ); 60: // clear the cache 61: clearstatcache(); 62: 63: echo "\n-- Working with hard links --\n"; 64: // expected: false 65: var_dump( link($filename, $linkname) ); 66: var_dump( linkinfo($linkname) ); 67: var_dump( is_link($linkname) ); 68: // clear the cache 69: clearstatcache(); 70: 71: chmod($dirname, 0777); // to enable dir deletion 72: echo "Done\n"; 73: ?> 74: --CLEAN-- 75: <?php 76: $file_path = dirname(__FILE__); 77: $dirname = "$file_path/symlink_link_linkinfo_is_link_variation6"; 78: $filename = "$dirname/symlink_link_linkinfo_is_link_variation6.tmp"; 79: if(file_exists($filename)) { 80: unlink($filename); 81: } 82: if(file_exists($dirname)) { 83: rmdir($dirname); 84: } 85: ?> 86: --EXPECTF-- 87: *** Creating links in a directory without permission to allow the operation *** 88: bool(true) 89: 90: -- Working with soft links -- 91: 92: Warning: symlink(): Permission denied in %s on line %d 93: bool(false) 94: 95: Warning: linkinfo(): Permission denied in %s on line %d 96: int(-1) 97: bool(false) 98: 99: -- Working with hard links -- 100: 101: Warning: link(): Permission denied in %s on line %d 102: bool(false) 103: 104: Warning: linkinfo(): Permission denied in %s on line %d 105: int(-1) 106: bool(false) 107: Done