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/* test the effects of rename() on stats of dir/file */
13
14$file_path = __DIR__;
15require "$file_path/file.inc";
16
17
18/* create temp file and directory */
19mkdir("$file_path/stat_variation1_私はガラスを食べられます/");  // temp dir
20
21$file_handle = fopen("$file_path/stat_variation1_私はガラスを食べられます.tmp", "w");  // temp file
22fclose($file_handle);
23
24
25echo "*** Testing stat(): on file and directory ater renaming them ***\n";
26
27// renaming a file
28echo "-- Testing stat() for files after being renamed --\n";
29$old_filename = "$file_path/stat_variation1_私はガラスを食べられます.tmp";
30$new_filename = "$file_path/stat_variation1a_私はガラスを食べられます.tmp";
31$old_stat = stat($old_filename);
32clearstatcache();
33sleep(1);
34var_dump( rename($old_filename, $new_filename) );
35$new_stat = stat($new_filename);
36
37// compare the self stat
38var_dump( compare_self_stat($old_stat) );
39var_dump( compare_self_stat($new_stat) );
40
41// compare the two stats
42var_dump( compare_stats($old_stat, $old_stat, $all_stat_keys) );
43// clear the cache
44clearstatcache();
45
46// renaming a directory
47echo "-- Testing stat() for directory after being renamed --\n";
48$old_dirname = "$file_path/stat_variation1_私はガラスを食べられます";
49$new_dirname = "$file_path/stat_variation1a_私はガラスを食べられます";
50$old_stat = stat($old_dirname);
51clearstatcache();
52sleep(2);
53var_dump( rename($old_dirname, $new_dirname) );
54$new_stat = stat($new_dirname);
55
56// compare self stats
57var_dump( compare_self_stat($old_stat) );
58var_dump( compare_self_stat($new_stat) );
59
60// compare the two stats
61var_dump( compare_stats($old_stat, $new_stat, $all_stat_keys) );
62// clear the cache
63clearstatcache();
64
65
66echo "\n*** Done ***";
67?>
68--CLEAN--
69<?php
70$file_path = __DIR__;
71unlink("$file_path/stat_variation1a_私はガラスを食べられます.tmp");
72rmdir("$file_path/stat_variation1a_私はガラスを食べられます");
73?>
74--EXPECT--
75*** Testing stat(): on file and directory ater renaming them ***
76-- Testing stat() for files after being renamed --
77bool(true)
78bool(true)
79bool(true)
80bool(true)
81-- Testing stat() for directory after being renamed --
82bool(true)
83bool(true)
84bool(true)
85bool(true)
86
87*** Done ***
88