1--TEST--
2Test stat() functions: usage variations - effects of rename()
3--SKIPIF--
4<?php
5if (substr(PHP_OS, 0, 3) != 'WIN') {
6    die('skip.. only for Windows');
7}
8?>
9--FILE--
10<?php
11
12/*
13 *  Prototype: array stat ( string $filename );
14 *  Description: Gives information about a file
15 */
16
17/* test the effects of rename() on stats of dir/file */
18
19$file_path = __DIR__;
20require "$file_path/file.inc";
21
22
23/* create temp file and directory */
24mkdir("$file_path/stat_variation1/");  // temp dir
25
26$file_handle = fopen("$file_path/stat_variation1.tmp", "w");  // temp file
27fclose($file_handle);
28
29
30echo "*** Testing stat(): on file and directory ater renaming them ***\n";
31
32// renaming a file
33echo "-- Testing stat() for files after being renamed --\n";
34$old_filename = "$file_path/stat_variation1.tmp";
35$new_filename = "$file_path/stat_variation1a.tmp";
36$old_stat = stat($old_filename);
37clearstatcache();
38sleep(2);
39var_dump( rename($old_filename, $new_filename) );
40$new_stat = stat($new_filename);
41
42// compare the self stat
43var_dump( compare_self_stat($old_stat) );
44var_dump( compare_self_stat($new_stat) );
45
46// compare the two stats
47var_dump( compare_stats($old_stat, $old_stat, $all_stat_keys) );
48// clear the cache
49clearstatcache();
50
51// renaming a directory
52echo "-- Testing stat() for directory after being renamed --\n";
53$old_dirname = "$file_path/stat_variation1";
54$new_dirname = "$file_path/stat_variation1a";
55$old_stat = stat($old_dirname);
56clearstatcache();
57sleep(2);
58var_dump( rename($old_dirname, $new_dirname) );
59$new_stat = stat($new_dirname);
60
61// compare self stats
62var_dump( compare_self_stat($old_stat) );
63var_dump( compare_self_stat($new_stat) );
64
65// compare the two stats
66var_dump( compare_stats($old_stat, $new_stat, $all_stat_keys) );
67// clear the cache
68clearstatcache();
69
70
71echo "\n*** Done ***";
72?>
73--CLEAN--
74<?php
75$file_path = __DIR__;
76unlink("$file_path/stat_variation1a.tmp");
77rmdir("$file_path/stat_variation1a");
78?>
79--EXPECT--
80*** Testing stat(): on file and directory ater renaming them ***
81-- Testing stat() for files after being renamed --
82bool(true)
83bool(true)
84bool(true)
85bool(true)
86-- Testing stat() for directory after being renamed --
87bool(true)
88bool(true)
89bool(true)
90bool(true)
91
92*** Done ***
93