1--TEST--
2Test fileowner() function: usage variations - diff. path notations
3--CREDITS--
4Dave Kelsey <d_kelsey@uk.ibm.com>
5--FILE--
6<?php
7
8/* Passing file names with different notations, using slashes, wild-card chars */
9
10$file_path = __DIR__;
11
12echo "*** Testing fileowner() with different notations of file names ***\n";
13$dir_name = $file_path."/fileowner_variation3";
14mkdir($dir_name);
15$file_handle = fopen($dir_name."/fileowner_variation3.tmp", "w");
16fclose($file_handle);
17
18$files_arr = array(
19  "/fileowner_variation3/fileowner_variation3.tmp",
20
21  /* Testing a file trailing slash */
22  "/fileowner_variation3/fileowner_variation3.tmp/",
23
24  /* Testing file with double slashes */
25  "/fileowner_variation3//fileowner_variation3.tmp",
26  "//fileowner_variation3//fileowner_variation3.tmp",
27  "/fileowner_variation3/*.tmp",
28  "fileowner_variation3/fileowner*.tmp",
29
30  /* Testing Binary safe */
31  "/fileowner_variation3/fileowner_variation3.tmp".chr(0),
32  "/fileowner_variation3/fileowner_variation3.tmp\0"
33);
34
35$count = 1;
36/* loop through to test each element in the above array */
37foreach($files_arr as $file) {
38  echo "- Iteration $count -\n";
39  try {
40    var_dump( fileowner( $file_path."/".$file ) );
41  } catch (Error $e) {
42    echo $e->getMessage(), "\n";
43  }
44  clearstatcache();
45  $count++;
46}
47
48echo "\n*** Done ***";
49?>
50--CLEAN--
51<?php
52$file_path = __DIR__;
53$dir_name = $file_path."/fileowner_variation3";
54unlink($dir_name."/fileowner_variation3.tmp");
55rmdir($dir_name);
56?>
57--EXPECTF--
58*** Testing fileowner() with different notations of file names ***
59- Iteration 1 -
60int(%d)
61- Iteration 2 -
62
63Warning: fileowner(): stat failed for %s//fileowner_variation3/fileowner_variation3.tmp/ in %s on line %d
64bool(false)
65- Iteration 3 -
66int(%d)
67- Iteration 4 -
68int(%d)
69- Iteration 5 -
70
71Warning: fileowner(): stat failed for %s//fileowner_variation3/*.tmp in %s on line %d
72bool(false)
73- Iteration 6 -
74
75Warning: fileowner(): stat failed for %s/fileowner_variation3/fileowner*.tmp in %s on line %d
76bool(false)
77- Iteration 7 -
78
79Warning: fileowner(): Filename contains null byte in %s on line %d
80bool(false)
81- Iteration 8 -
82
83Warning: fileowner(): Filename contains null byte in %s on line %d
84bool(false)
85
86*** Done ***
87