1--TEST--
2Test symlink(), linkinfo(), link() and is_link() functions : error conditions - symlink & linkinfo
3--SKIPIF--
4<?php
5if (substr(PHP_OS, 0, 3) == 'WIN') {
6    die('skip no symlinks on Windows');
7}
8if (substr(PHP_OS, 0, 3) == 'SUN') {
9  die('skip Not valid for Sun Solaris');
10}
11?>
12--FILE--
13<?php
14/* Prototype: bool symlink ( string $target, string $link );
15   Description: creates a symbolic link to the existing target with the specified name link
16
17   Prototype: bool is_link ( string $filename );
18   Description: Tells whether the given file is a symbolic link.
19
20   Prototype: bool link ( string $target, string $link );
21   Description: Create a hard link
22
23   Prototype: int linkinfo ( string $path );
24   Description: Gets information about a link
25*/
26
27// create temp $filename and create link $linkname to it
28$filename = dirname(__FILE__)."/symlink_link_linkinfo_is_link_error1.tmp";
29$fp = fopen($filename, "w");  // create temp file
30fclose($fp);
31
32// linkname used to create soft/hard link
33$linkname = dirname(__FILE__)."/symlink_link_linkinfo_is_link_link_error1.tmp";
34
35echo "*** Testing symlink() for error conditions ***\n";
36//zero arguments
37var_dump( symlink() );
38
39//more than expected
40var_dump( symlink($filename, $linkname, true) );
41
42//invalid arguments
43var_dump( symlink(NULL, $linkname) );  // NULL as filename
44var_dump( symlink('', $linkname) );  // empty string as filename
45var_dump( symlink(false, $linkname) );  // boolean false as filename
46var_dump( symlink($filename, NULL) );  // NULL as linkname
47var_dump( symlink($filename, '') );  // '' as linkname
48var_dump( symlink($filename, false) );  // false as linkname
49
50echo "\n*** Testing linkinfo() for error conditions ***\n";
51//zero arguments
52var_dump( linkinfo() );
53
54//more than expected
55var_dump( linkinfo($linkname, true) );
56
57//invalid arguments
58var_dump( linkinfo(NULL) );  // NULL as linkname
59var_dump( linkinfo('') );  // empty string as linkname
60var_dump( linkinfo(false) );  // boolean false as linkname
61
62echo "Done\n";
63?>
64--CLEAN--
65<?php
66unlink(dirname(__FILE__)."/symlink_link_linkinfo_is_link_error1.tmp");
67@unlink(dirname(__FILE__)."/symlink_link_linkinfo_is_link_link_error1.tmp");
68?>
69--EXPECTF--
70*** Testing symlink() for error conditions ***
71
72Warning: symlink() expects exactly 2 parameters, 0 given in %s on line %d
73NULL
74
75Warning: symlink() expects exactly 2 parameters, 3 given in %s on line %d
76NULL
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
93Warning: symlink(): %s in %s on line %d
94bool(false)
95
96*** Testing linkinfo() for error conditions ***
97
98Warning: linkinfo() expects exactly 1 parameter, 0 given in %s on line %d
99NULL
100
101Warning: linkinfo() expects exactly 1 parameter, 2 given in %s on line %d
102NULL
103
104Warning: linkinfo(): %s in %s on line %d
105int(-1)
106
107Warning: linkinfo(): %s in %s on line %d
108int(-1)
109
110Warning: linkinfo(): %s in %s on line %d
111int(-1)
112Done
113