Return to symlink_link_linkinfo_is_link_variation1.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 name stored in an array/object 3: --SKIPIF-- 4: <?php 5: if (substr(PHP_OS, 0, 3) == 'WIN') { 6: die('skip no symlinks on Windows'); 7: } 8: ?> 9: --FILE-- 10: <?php 11: /* Prototype: bool symlink ( string $target, string $link ); 12: Description: creates a symbolic link to the existing target with the specified name link 13: 14: Prototype: bool is_link ( string $filename ); 15: Description: Tells whether the given file is a symbolic link. 16: 17: Prototype: bool link ( string $target, string $link ); 18: Description: Create a hard link 19: 20: Prototype: int linkinfo ( string $path ); 21: Description: Gets information about a link 22: */ 23: 24: /* Variation 1 : Creating links across directories where linkname is stored as an object and array member */ 25: 26: // creating temp directory which will contain temp file and links created 27: $file_path = dirname(__FILE__); 28: $dirname = "$file_path/symlink_link_linkinfo_is_link_variation1/test/home"; 29: mkdir($dirname, 0777, true); 30: 31: // creating temp file; links are created to this file later on 32: $filename = "$file_path/symlink_link_linkinfo_is_link_variation1/symlink_link_linkinfo_is_link_variation1.tmp"; 33: $fp = fopen($filename, "w"); 34: fclose($fp); 35: 36: echo "*** Testing symlink(), link(), linkinfo() and is_link() with linknames stored as members in an object ***\n"; 37: class object_temp { 38: var $linkname; 39: function object_temp($link) { 40: $this->linkname = $link; 41: } 42: } 43: 44: $obj = new object_temp("$dirname/symlink_link_linkinfo_is_link_link.tmp"); 45: /* Testing on soft links */ 46: echo "\n-- Working with soft links --\n"; 47: // creating soft link 48: var_dump( symlink($filename, $obj->linkname) ); 49: // check if the link exists 50: var_dump( linkinfo($obj->linkname) ); 51: // check if link is soft link 52: var_dump( is_link($obj->linkname) ); 53: // delete the link created 54: unlink($obj->linkname); 55: // clear the cache 56: clearstatcache(); 57: 58: /* Testing on hard links */ 59: echo "\n-- Working with hard links --\n"; 60: // creating hard link 61: var_dump( link($filename, $obj->linkname) ); 62: // check if the link exists 63: var_dump( linkinfo($obj->linkname) ); 64: // check if link is soft link; expected: false as the link is a hardlink 65: var_dump( is_link($obj->linkname) ); 66: // delete the link created 67: unlink($obj->linkname); 68: // clear the cache 69: clearstatcache(); 70: 71: echo "\n*** Testing symlink(), link(), linkinfo() and is_link() with linknames stored as members of an array ***\n"; 72: 73: $link_arr = array("$dirname/symlink_link_linkinfo_is_link_link.tmp"); 74: 75: /* Testing on soft links */ 76: echo "\n-- Working with soft links --\n"; 77: // creating soft link 78: var_dump( symlink($filename, $link_arr[0]) ); 79: // check if the link exist 80: var_dump( linkinfo($link_arr[0]) ); 81: // check if link is soft link 82: var_dump( is_link($link_arr[0]) ); 83: // delete the link created 84: unlink($link_arr[0]); 85: // clear the cache 86: clearstatcache(); 87: 88: /* Testing on hard links */ 89: echo "\n-- Working with hard links --\n"; 90: // creating hard link 91: var_dump( link($filename, $link_arr[0]) ); 92: // check if the link exist 93: var_dump( linkinfo($link_arr[0]) ); 94: // check if link is soft link; expected: false as this is a hardlink 95: var_dump( is_link($link_arr[0]) ); 96: // delete the links created 97: unlink($link_arr[0]); 98: // clear the cache 99: clearstatcache(); 100: 101: echo "Done\n"; 102: ?> 103: --CLEAN-- 104: <?php 105: $file_path = dirname(__FILE__); 106: $dirname = "$file_path/symlink_link_linkinfo_is_link_variation1"; 107: unlink("$dirname/symlink_link_linkinfo_is_link_variation1.tmp"); 108: rmdir("$dirname/test/home"); 109: rmdir("$dirname/test"); 110: rmdir($dirname); 111: ?> 112: --EXPECTF-- 113: *** Testing symlink(), link(), linkinfo() and is_link() with linknames stored as members in an object *** 114: 115: -- Working with soft links -- 116: bool(true) 117: int(%d) 118: bool(true) 119: 120: -- Working with hard links -- 121: bool(true) 122: int(%d) 123: bool(false) 124: 125: *** Testing symlink(), link(), linkinfo() and is_link() with linknames stored as members of an array *** 126: 127: -- Working with soft links -- 128: bool(true) 129: int(%d) 130: bool(true) 131: 132: -- Working with hard links -- 133: bool(true) 134: int(%d) 135: bool(false) 136: Done