Annotation of embedaddon/php/ext/standard/tests/file/readlink_realpath_variation1.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test readlink() and realpath() functions: usage variation - linkname/filename stored in object(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: $filename = "$name_prefix/readlink_realpath_variation1/home/tests/link/readlink_realpath_variation1.tmp";
21: mkdir("$name_prefix/readlink_realpath_variation1/home/tests/link/", 0777, true);
22:
23: echo "\n*** Testing readlink() and realpath() with linkname stored inside a object ***\n";
24: // create a temp file
25: $file_handle = fopen($filename, "w");
26: fclose($file_handle);
27:
28: // creating object with members as linkname
29: class object_temp {
30: public $linkname;
31: function object_temp($link) {
32: $this->linkname = $link;
33: }
34: }
35: $obj1 = new object_temp("$name_prefix/readlink_realpath_variation1/../././readlink_realpath_variation1/home/readlink_realpath_variation1_link.tmp");
36: $obj2 = new object_temp("$name_prefix/readlink_realpath_variation1/home/../..///readlink_realpath_variation1_link.tmp");
37:
38: echo "\n-- Testing readlink() and realpath() with softlink, linkname stored inside an object --\n";
39: // creating the links
40: var_dump( symlink($filename, $obj1->linkname) );
41: var_dump( readlink($obj1->linkname) );
42: var_dump( realpath($obj1->linkname) );
43: var_dump( symlink($filename, $obj2->linkname) );
44: var_dump( readlink($obj2->linkname) );
45: var_dump( realpath($obj2->linkname) );
46:
47: // deleting the link
48: unlink($obj1->linkname);
49: unlink($obj2->linkname);
50:
51: echo "\n-- Testing readlink() and realpath() with hardlink, linkname stored inside an object --\n";
52: // creating hard links
53: var_dump( link($filename, $obj1->linkname) );
54: var_dump( readlink($obj1->linkname) ); // invalid because readlink doesn't work with hardlink
55: var_dump( realpath($obj1->linkname) );
56: var_dump( link($filename, $obj2->linkname) );
57: var_dump( readlink($obj2->linkname) ); // invalid because readlink doesn't work with hardlink
58: var_dump( realpath($obj2->linkname) );
59:
60: // delete the links
61: unlink($obj1->linkname);
62: unlink($obj2->linkname);
63:
64: echo "Done\n";
65: ?>
66: --CLEAN--
67: <?php
68: $name_prefix = dirname(__FILE__)."/readlink_realpath_variation1";
69: unlink("$name_prefix/home/tests/link/readlink_realpath_variation1.tmp");
70: rmdir("$name_prefix/home/tests/link/");
71: rmdir("$name_prefix/home/tests/");
72: rmdir("$name_prefix/home/");
73: rmdir("$name_prefix/");
74: ?>
75: --EXPECTF--
76: *** Testing readlink() and realpath() : usage variations ***
77:
78: *** Testing readlink() and realpath() with linkname stored inside a object ***
79:
80: -- Testing readlink() and realpath() with softlink, linkname stored inside an object --
81: bool(true)
82: string(%d) "%s/readlink_realpath_variation1/home/tests/link/readlink_realpath_variation1.tmp"
83: string(%d) "%s/readlink_realpath_variation1/home/tests/link/readlink_realpath_variation1.tmp"
84: bool(true)
85: string(%d) "%s/readlink_realpath_variation1/home/tests/link/readlink_realpath_variation1.tmp"
86: string(%d) "%s/readlink_realpath_variation1/home/tests/link/readlink_realpath_variation1.tmp"
87:
88: -- Testing readlink() and realpath() with hardlink, linkname stored inside an object --
89: bool(true)
90:
91: Warning: readlink(): Invalid argument in %s on line %d
92: bool(false)
93: string(%d) "%s/readlink_realpath_variation1/home/readlink_realpath_variation1_link.tmp"
94: bool(true)
95:
96: Warning: readlink(): Invalid argument in %s on line %d
97: bool(false)
98: string(%d) "%s/readlink_realpath_variation1_link.tmp"
99: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>