Annotation of embedaddon/php/ext/standard/tests/file/readlink_realpath_variation2.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test readlink() and realpath() functions: usage variation - linkname/filename stored in array(Bug #42038)
! 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: string readlink ( string $path );
! 12: Description: Returns the target of a symbolic link
! 13:
! 14: Prototype: string realpath ( string $path );
! 15: Description: Returns canonicalized absolute pathname
! 16: */
! 17:
! 18: echo "*** Testing readlink() and realpath() : usage variations ***\n";
! 19: $name_prefix = dirname(__FILE__);
! 20: // create temp dir
! 21: mkdir("$name_prefix/readlink_realpath_variation2/home/tests/link/", 0777, true);
! 22: // create the file
! 23: $filename = "$name_prefix/readlink_realpath_variation2/home/tests/link/readlink_realpath_variation2.tmp";
! 24: $fp = fopen($filename, "w");
! 25: fclose($fp);
! 26:
! 27: echo "\n*** Testing readlink() and realpath() with linkname stored in an array ***\n";
! 28: $link_arr = array (
! 29: "$name_prefix////readlink_realpath_variation2/home/tests/link/readlink_realpath_variation2_link.tmp",
! 30: "$name_prefix/./readlink_realpath_variation2/home/../home//tests//..//..//..//home//readlink_realpath_variation2_link.tmp/"
! 31: );
! 32:
! 33: echo "\n-- Testing readlink() and realpath() with softlink, linkname stored inside an array --\n";
! 34: // creating the links
! 35: var_dump( symlink($filename, $link_arr[0]) );
! 36: var_dump( readlink($link_arr[0]) );
! 37: var_dump( realpath($link_arr[0]) );
! 38: var_dump( symlink($filename, $link_arr[1]) );
! 39: var_dump( readlink($link_arr[1]) );
! 40: var_dump( realpath($link_arr[1]) );
! 41:
! 42: // deleting the link
! 43: unlink($link_arr[0]);
! 44: unlink($link_arr[1]);
! 45:
! 46: echo "\n-- Testing readlink() and realpath() with hardlink, linkname stored inside an array --\n";
! 47: // creating hard links
! 48: var_dump( link($filename, $link_arr[0]) );
! 49: var_dump( readlink($link_arr[0]) ); // invalid because readlink doesn't work with hardlink
! 50: var_dump( realpath($link_arr[0]) );
! 51: var_dump( link($filename, $link_arr[1]) );
! 52: var_dump( readlink($link_arr[1]) ); // invalid because readlink doesn't work with hardlink
! 53: var_dump( realpath($link_arr[1]) );
! 54:
! 55: // delete the links
! 56: unlink($link_arr[0]);
! 57: unlink($link_arr[1]);
! 58:
! 59: echo "Done\n";
! 60: ?>
! 61: --CLEAN--
! 62: <?php
! 63: $name_prefix = dirname(__FILE__)."/readlink_realpath_variation2";
! 64: unlink("$name_prefix/home/tests/link/readlink_realpath_variation2.tmp");
! 65: rmdir("$name_prefix/home/tests/link/");
! 66: rmdir("$name_prefix/home/tests/");
! 67: rmdir("$name_prefix/home/");
! 68: rmdir("$name_prefix/");
! 69: ?>
! 70: --EXPECTF--
! 71: *** Testing readlink() and realpath() : usage variations ***
! 72:
! 73: *** Testing readlink() and realpath() with linkname stored in an array ***
! 74:
! 75: -- Testing readlink() and realpath() with softlink, linkname stored inside an array --
! 76: bool(true)
! 77: string(%d) "%s/readlink_realpath_variation2/home/tests/link/readlink_realpath_variation2.tmp"
! 78: string(%d) "%s/readlink_realpath_variation2/home/tests/link/readlink_realpath_variation2.tmp"
! 79:
! 80: Warning: symlink(): No such file or directory in %s on line %d
! 81: bool(false)
! 82:
! 83: Warning: readlink(): No such file or directory in %s on line %d
! 84: bool(false)
! 85: bool(false)
! 86:
! 87: Warning: unlink(%s/./readlink_realpath_variation2/home/../home//tests//..//..//..//home//readlink_realpath_variation2_link.tmp/): No such file or directory in %s on line %d
! 88:
! 89: -- Testing readlink() and realpath() with hardlink, linkname stored inside an array --
! 90: bool(true)
! 91:
! 92: Warning: readlink(): Invalid argument in %s on line %d
! 93: bool(false)
! 94: string(%d) "%s/readlink_realpath_variation2/home/tests/link/readlink_realpath_variation2_link.tmp"
! 95:
! 96: Warning: link(): No such file or directory in %s on line %d
! 97: bool(false)
! 98:
! 99: Warning: readlink(): No such file or directory in %s on line %d
! 100: bool(false)
! 101: bool(false)
! 102:
! 103: Warning: unlink(%s/./readlink_realpath_variation2/home/../home//tests//..//..//..//home//readlink_realpath_variation2_link.tmp/): No such file or directory in %s on line %d
! 104: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>