1--TEST--
2Test symlink(), linkinfo(), link() and is_link() functions : error conditions - symlink & linkinfo
3--SKIPIF--
4<?php
5if (substr(PHP_OS, 0, 3) == 'SUN') {
6  die('skip Not valid for Sun Solaris');
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// create temp $filename and create link $linkname to it
25$filename = __DIR__."/symlink_link_linkinfo_is_link_error1.tmp";
26$fp = fopen($filename, "w");  // create temp file
27fclose($fp);
28
29// linkname used to create soft/hard link
30$linkname = __DIR__."/symlink_link_linkinfo_is_link_link_error1.tmp";
31
32echo "*** Testing symlink() for error conditions ***\n";
33//zero arguments
34var_dump( symlink() );
35
36//more than expected
37var_dump( symlink($filename, $linkname, true) );
38
39//invalid arguments
40var_dump( symlink(NULL, $linkname) );  // NULL as filename
41var_dump( symlink('', $linkname) );  // empty string as filename
42var_dump( symlink(false, $linkname) );  // boolean false as filename
43var_dump( symlink($filename, NULL) );  // NULL as linkname
44var_dump( symlink($filename, '') );  // '' as linkname
45var_dump( symlink($filename, false) );  // false as linkname
46
47echo "\n*** Testing linkinfo() for error conditions ***\n";
48//zero arguments
49var_dump( linkinfo() );
50
51//more than expected
52var_dump( linkinfo($linkname, true) );
53
54//invalid arguments
55var_dump( linkinfo(NULL) );  // NULL as linkname
56var_dump( linkinfo('') );  // empty string as linkname
57var_dump( linkinfo(false) );  // boolean false as linkname
58
59echo "Done\n";
60?>
61--CLEAN--
62<?php
63unlink(__DIR__."/symlink_link_linkinfo_is_link_error1.tmp");
64@unlink(__DIR__."/symlink_link_linkinfo_is_link_link_error1.tmp");
65?>
66--EXPECTF--
67*** Testing symlink() for error conditions ***
68
69Warning: symlink() expects exactly 2 parameters, 0 given in %s on line %d
70NULL
71
72Warning: symlink() expects exactly 2 parameters, 3 given in %s on line %d
73NULL
74
75Warning: symlink(): %s in %s on line %d
76bool(false)
77
78Warning: symlink(): %s in %s on line %d
79bool(false)
80
81Warning: symlink(): %s in %s on line %d
82bool(false)
83
84Warning: symlink(): %s in %s on line %d
85bool(false)
86
87Warning: symlink(): %s in %s on line %d
88bool(false)
89
90Warning: symlink(): %s in %s on line %d
91bool(false)
92
93*** Testing linkinfo() for error conditions ***
94
95Warning: linkinfo() expects exactly 1 parameter, 0 given in %s on line %d
96NULL
97
98Warning: linkinfo() expects exactly 1 parameter, 2 given in %s on line %d
99NULL
100
101Warning: linkinfo(): %s in %s on line %d
102int(-1)
103
104Warning: linkinfo(): %s in %s on line %d
105int(-1)
106
107Warning: linkinfo(): %s in %s on line %d
108int(-1)
109Done
110