kraghuba Thu Jul 26 13:38:24 2007 UTC
Added files: (Branch: PHP_5_2)
/php-src/ext/standard/tests/file lstat_stat_variation13.phpt
lstat_stat_variation14.phpt
lstat_stat_variation15.phpt
lstat_stat_variation21.phpt
lstat_stat_variation16.phpt
lstat_stat_variation20.phpt
lstat_stat_variation17.phpt
lstat_stat_variation10.phpt
lstat_stat_variation9.phpt
lstat_stat_variation18.phpt
lstat_stat_variation11.phpt
lstat_stat_variation8.phpt
lstat_stat_variation19.phpt
lstat_stat_variation12.phpt
lstat_stat_variation7.phpt
Modified files:
/php-src/ext/standard/tests/file lstat_stat_variation6.phpt
lstat_stat_variation5.phpt
lstat_stat_variation4.phpt
lstat_stat_variation3.phpt
lstat_stat_variation2.phpt
file.inc
lstat_stat_variation1.phpt
Log:
file.inc : Added dumping of stat array in functions (compare_self_stat() &
compare_stats() )
Smaller testcases for lstat_stat_variation[1-7].phpt files
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation6.phpt?r1=1.1.2.2&r2=1.1.2.3&diff_format=u
Index: php-src/ext/standard/tests/file/lstat_stat_variation6.phpt
diff -u php-src/ext/standard/tests/file/lstat_stat_variation6.phpt:1.1.2.2
php-src/ext/standard/tests/file/lstat_stat_variation6.phpt:1.1.2.3
--- php-src/ext/standard/tests/file/lstat_stat_variation6.phpt:1.1.2.2 Sat Jul
21 17:35:37 2007
+++ php-src/ext/standard/tests/file/lstat_stat_variation6.phpt Thu Jul 26
13:38:24 2007
@@ -1,6 +1,5 @@
--TEST--
-Test lstat() and stat() functions: usage variations - dir/file/link names in
objects
-
+Test lstat() and stat() functions: usage variations - effects of touch() on
link
--SKIPIF--
<?php
if (substr(PHP_OS, 0, 3) == 'WIN') {
@@ -16,65 +15,38 @@
Description: Gives information about a file
*/
-/* test for stats of dir/file/link when their names are stored in objects */
+/* test the effects of touch() on stats of link */
$file_path = dirname(__FILE__);
require "$file_path/file.inc";
/* create temp file, link and directory */
-mkdir("$file_path/lstat_stat_variation6/"); // temp dir
-
-$fp = fopen("$file_path/lstat_stat_variation6.tmp", "w"); // temp file
-fclose($fp);
-
-// temp link
-symlink("$file_path/lstat_stat_variation6.tmp",
"$file_path/lstat_stat_variation6_link.tmp");
-
-/* Checking lstat() and stat() on file/link/directory where filenames,
- linknames and directory names are stored in object and array */
-
-echo "\n*** Testing lstat() and stat() with filename, linkname
- and directory name stored inside a object ***\n";
-
-// creating object with members as numeric and non-numeric filename, linkname
and directory name
-class object_temp {
- public $var_name;
- public function object_temp($name) {
- $this->var_name = $name;
- }
-}
-// directory as member
-$obj1 = new object_temp("$file_path/lstat_stat_variation6/");
-$obj2 = new object_temp("$file_path/lstat_stat_variation6a/");
-
-// file as member
-$obj3 = new object_temp("$file_path/lstat_stat_variation6.tmp");
-$obj4 = new object_temp("$file_path/lstat_stat_variation6a.tmp");
-
-// link as member
-$obj5 = new object_temp("$file_path/lstat_stat_variation6_link.tmp");
-$obj6 = new object_temp("$file_path/lstat_stat_variation6a_link.tmp");
-
-echo "\n-- Testing lstat() and stat() with softlink, linkname stored inside an
object --\n";
-
-var_dump( lstat($obj5->var_name) );
-
-var_dump( symlink($obj5->var_name, $obj6->var_name) );
-var_dump( lstat($obj6->var_name) );
-
-echo "\n-- Testing stat() on filename stored inside an object --\n";
-var_dump( stat($obj3->var_name) );
-$fp = fopen("$file_path/lstat_stat_variation6a.tmp", "w");
+$file_name = "$file_path/lstat_stat_variation6.tmp";
+$fp = fopen($file_name, "w"); // temp file
fclose($fp);
-var_dump( stat($obj4->var_name) );
+$link_name = "$file_path/lstat_stat_variation_link6.tmp";
+symlink($file_name, $link_name); // temp link
-echo "\n-- Testing stat() on directory name stored inside an object --\n";
-var_dump( stat($obj1->var_name) );
-
-mkdir("$file_path/lstat_stat_variation6a/");
-var_dump( stat($obj2->var_name) );
+// touch a link, check stat, there should be difference in atime
+echo "*** Testing lstat() for link after using touch() on the link ***\n";
+$old_stat = lstat($link_name);
+// clear the cache
+clearstatcache();
+sleep(2);
+var_dump( touch($link_name) );
+$new_stat = lstat($link_name);
+
+// compare self stats
+var_dump( compare_self_stat($old_stat) );
+var_dump( compare_self_stat($new_stat) );
+
+// compare the stat
+$affected_members = array(8, 'atime');
+var_dump( compare_stats($old_stat, $new_stat, $affected_members, "<") );
+// clear the stat
+clearstatcache();
echo "\n--- Done ---";
?>
@@ -82,347 +54,14 @@
--CLEAN--
<?php
$file_path = dirname(__FILE__);
-unlink("$file_path/lstat_stat_variation6_link.tmp");
unlink("$file_path/lstat_stat_variation6.tmp");
-rmdir("$file_path/lstat_stat_variation6");
-unlink("$file_path/lstat_stat_variation6a_link.tmp");
-unlink("$file_path/lstat_stat_variation6a.tmp");
-rmdir("$file_path/lstat_stat_variation6a/");
+unlink("$file_path/lstat_stat_variation_link6.tmp");
?>
-
--EXPECTF--
-*** Testing lstat() and stat() with filename, linkname
- and directory name stored inside a object ***
-
--- Testing lstat() and stat() with softlink, linkname stored inside an object
--
-array(26) {
- [0]=>
- int(%d)
- [1]=>
- int(%d)
- [2]=>
- int(%d)
- [3]=>
- int(%d)
- [4]=>
- int(%d)
- [5]=>
- int(%d)
- [6]=>
- int(%d)
- [7]=>
- int(%d)
- [8]=>
- int(%d)
- [9]=>
- int(%d)
- [10]=>
- int(%d)
- [11]=>
- int(%d)
- [12]=>
- int(%d)
- ["dev"]=>
- int(%d)
- ["ino"]=>
- int(%d)
- ["mode"]=>
- int(%d)
- ["nlink"]=>
- int(%d)
- ["uid"]=>
- int(%d)
- ["gid"]=>
- int(%d)
- ["rdev"]=>
- int(%d)
- ["size"]=>
- int(%d)
- ["atime"]=>
- int(%d)
- ["mtime"]=>
- int(%d)
- ["ctime"]=>
- int(%d)
- ["blksize"]=>
- int(%d)
- ["blocks"]=>
- int(%d)
-}
+*** Testing lstat() for link after using touch() on the link ***
+bool(true)
+bool(true)
+bool(true)
bool(true)
-array(26) {
- [0]=>
- int(%d)
- [1]=>
- int(%d)
- [2]=>
- int(%d)
- [3]=>
- int(%d)
- [4]=>
- int(%d)
- [5]=>
- int(%d)
- [6]=>
- int(%d)
- [7]=>
- int(%d)
- [8]=>
- int(%d)
- [9]=>
- int(%d)
- [10]=>
- int(%d)
- [11]=>
- int(%d)
- [12]=>
- int(%d)
- ["dev"]=>
- int(%d)
- ["ino"]=>
- int(%d)
- ["mode"]=>
- int(%d)
- ["nlink"]=>
- int(%d)
- ["uid"]=>
- int(%d)
- ["gid"]=>
- int(%d)
- ["rdev"]=>
- int(%d)
- ["size"]=>
- int(%d)
- ["atime"]=>
- int(%d)
- ["mtime"]=>
- int(%d)
- ["ctime"]=>
- int(%d)
- ["blksize"]=>
- int(%d)
- ["blocks"]=>
- int(%d)
-}
-
--- Testing stat() on filename stored inside an object --
-array(26) {
- [0]=>
- int(%d)
- [1]=>
- int(%d)
- [2]=>
- int(%d)
- [3]=>
- int(%d)
- [4]=>
- int(%d)
- [5]=>
- int(%d)
- [6]=>
- int(%d)
- [7]=>
- int(%d)
- [8]=>
- int(%d)
- [9]=>
- int(%d)
- [10]=>
- int(%d)
- [11]=>
- int(%d)
- [12]=>
- int(%d)
- ["dev"]=>
- int(%d)
- ["ino"]=>
- int(%d)
- ["mode"]=>
- int(%d)
- ["nlink"]=>
- int(%d)
- ["uid"]=>
- int(%d)
- ["gid"]=>
- int(%d)
- ["rdev"]=>
- int(%d)
- ["size"]=>
- int(%d)
- ["atime"]=>
- int(%d)
- ["mtime"]=>
- int(%d)
- ["ctime"]=>
- int(%d)
- ["blksize"]=>
- int(%d)
- ["blocks"]=>
- int(%d)
-}
-array(26) {
- [0]=>
- int(%d)
- [1]=>
- int(%d)
- [2]=>
- int(%d)
- [3]=>
- int(%d)
- [4]=>
- int(%d)
- [5]=>
- int(%d)
- [6]=>
- int(%d)
- [7]=>
- int(%d)
- [8]=>
- int(%d)
- [9]=>
- int(%d)
- [10]=>
- int(%d)
- [11]=>
- int(%d)
- [12]=>
- int(%d)
- ["dev"]=>
- int(%d)
- ["ino"]=>
- int(%d)
- ["mode"]=>
- int(%d)
- ["nlink"]=>
- int(%d)
- ["uid"]=>
- int(%d)
- ["gid"]=>
- int(%d)
- ["rdev"]=>
- int(%d)
- ["size"]=>
- int(%d)
- ["atime"]=>
- int(%d)
- ["mtime"]=>
- int(%d)
- ["ctime"]=>
- int(%d)
- ["blksize"]=>
- int(%d)
- ["blocks"]=>
- int(%d)
-}
-
--- Testing stat() on directory name stored inside an object --
-array(26) {
- [0]=>
- int(%d)
- [1]=>
- int(%d)
- [2]=>
- int(%d)
- [3]=>
- int(%d)
- [4]=>
- int(%d)
- [5]=>
- int(%d)
- [6]=>
- int(%d)
- [7]=>
- int(%d)
- [8]=>
- int(%d)
- [9]=>
- int(%d)
- [10]=>
- int(%d)
- [11]=>
- int(%d)
- [12]=>
- int(%d)
- ["dev"]=>
- int(%d)
- ["ino"]=>
- int(%d)
- ["mode"]=>
- int(%d)
- ["nlink"]=>
- int(%d)
- ["uid"]=>
- int(%d)
- ["gid"]=>
- int(%d)
- ["rdev"]=>
- int(%d)
- ["size"]=>
- int(%d)
- ["atime"]=>
- int(%d)
- ["mtime"]=>
- int(%d)
- ["ctime"]=>
- int(%d)
- ["blksize"]=>
- int(%d)
- ["blocks"]=>
- int(%d)
-}
-array(26) {
- [0]=>
- int(%d)
- [1]=>
- int(%d)
- [2]=>
- int(%d)
- [3]=>
- int(%d)
- [4]=>
- int(%d)
- [5]=>
- int(%d)
- [6]=>
- int(%d)
- [7]=>
- int(%d)
- [8]=>
- int(%d)
- [9]=>
- int(%d)
- [10]=>
- int(%d)
- [11]=>
- int(%d)
- [12]=>
- int(%d)
- ["dev"]=>
- int(%d)
- ["ino"]=>
- int(%d)
- ["mode"]=>
- int(%d)
- ["nlink"]=>
- int(%d)
- ["uid"]=>
- int(%d)
- ["gid"]=>
- int(%d)
- ["rdev"]=>
- int(%d)
- ["size"]=>
- int(%d)
- ["atime"]=>
- int(%d)
- ["mtime"]=>
- int(%d)
- ["ctime"]=>
- int(%d)
- ["blksize"]=>
- int(%d)
- ["blocks"]=>
- int(%d)
-}
--- Done ---
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation5.phpt?r1=1.1.2.2&r2=1.1.2.3&diff_format=u
Index: php-src/ext/standard/tests/file/lstat_stat_variation5.phpt
diff -u php-src/ext/standard/tests/file/lstat_stat_variation5.phpt:1.1.2.2
php-src/ext/standard/tests/file/lstat_stat_variation5.phpt:1.1.2.3
--- php-src/ext/standard/tests/file/lstat_stat_variation5.phpt:1.1.2.2 Sat Jul
21 17:35:37 2007
+++ php-src/ext/standard/tests/file/lstat_stat_variation5.phpt Thu Jul 26
13:38:24 2007
@@ -1,11 +1,12 @@
--TEST--
-Test lstat() and stat() functions: usage variations - effects with changing
permissions
+Test lstat() and stat() functions: usage variations - effects of touch() on dir
--SKIPIF--
<?php
if (substr(PHP_OS, 0, 3) == 'WIN') {
- die('skip.. lstat() not available on Windows');
+ die('skip.. Not valid for Windows');
}
?>
+?>
--FILE--
<?php
/* Prototype: array lstat ( string $filename );
@@ -15,74 +16,35 @@
Description: Gives information about a file
*/
-/* test the effects on stats with changing permissions of dir/file/link */
+/* test the effects of touch() on stats of dir */
$file_path = dirname(__FILE__);
require "$file_path/file.inc";
-/* create temp file, link and directory */
-mkdir("$file_path/lstat_stat_variation5/"); // temp dir
-
-$filename = "$file_path/lstat_stat_variation5.tmp";
-$fp = fopen($filename, "w"); // temp file
-fclose($fp);
+/* create temp directory */
-// temp link
-$linkname = "$file_path/lstat_stat_variation5_link.tmp";
-symlink($filename, $linkname);
+$dir_name = "$file_path/lstat_stat_variation5";
+mkdir($dir_name); // temp dir
-/* Checking lstat() and stat() on file, link and directory after changing
permission */
-
-// checking lstat() and stat() on links
-echo "\n*** Testing lstat() and stat() on links with miscelleneous file
permission and content ***\n";
-clearstatcache();
-$old_stat = lstat($linkname);
-var_dump( chmod($linkname, 0777) );
-// clear the stat
+// touch a directory and check stat, there should be difference in atime
+echo "*** Testing stat() for directory after using touch() on the directory
***\n";
+$old_stat = stat($dir_name);
+// clear the cache
clearstatcache();
sleep(2);
-$new_stat = lstat($linkname);
-// compare self stats
-var_dump( compare_self_stat($old_stat) );
-var_dump( compare_self_stat($new_stat) );
-// compare the stat
-var_dump( compare_stats($old_stat, $new_stat, $all_stat_keys, "=") );
-// clear the stat
-clearstatcache();
+var_dump( touch($dir_name) );
+$new_stat = stat($dir_name);
-// checking stat() on file
-echo "\n*** Testing lstat() and stat() on file with miscelleneous file
permission and content ***\n";
-$old_stat = stat($filename);
-var_dump( chmod($filename, 0777) );
-// clear the stat
-clearstatcache();
-sleep(2);
-$new_stat = stat($filename);
// compare self stats
var_dump( compare_self_stat($old_stat) );
var_dump( compare_self_stat($new_stat) );
+
// compare the stat
-$affected_members = array(10, 'ctime');
-var_dump( compare_stats($old_stat, $new_stat, $affected_members, "!=") );
-// clear the stat
-clearstatcache(); // clear statement cache
-
-// checking stat() on directory
-echo "\n*** Testing stat() on directory with miscelleneous file permission
***\n";
-$dirname = "$file_path/lstat_stat_variation5";
-$old_stat = stat($dirname);
-var_dump( chmod($dirname, 0777) );
-// clear the stat
+$affected_members = array(8, 9, 10, 'atime', 'mtime', 'ctime');
+var_dump( compare_stats($old_stat, $new_stat, $affected_members, "<") );
+// clear the cache
clearstatcache();
-sleep(2);
-$new_stat = stat($dirname);
-// compare self stats
-var_dump( compare_self_stat($old_stat) );
-var_dump( compare_self_stat($new_stat) );
-// compare the stat
-$affected_members = array(2, 10, 'mode', 'ctime');
-var_dump( compare_stats($old_stat, $new_stat, $affected_members, "!=") );
echo "\n--- Done ---";
?>
@@ -90,24 +52,10 @@
--CLEAN--
<?php
$file_path = dirname(__FILE__);
-unlink("$file_path/lstat_stat_variation5_link.tmp");
-unlink("$file_path/lstat_stat_variation5.tmp");
rmdir("$file_path/lstat_stat_variation5");
?>
--EXPECTF--
-*** Testing lstat() and stat() on links with miscelleneous file permission and
content ***
-bool(true)
-bool(true)
-bool(true)
-bool(true)
-
-*** Testing lstat() and stat() on file with miscelleneous file permission and
content ***
-bool(true)
-bool(true)
-bool(true)
-bool(true)
-
-*** Testing stat() on directory with miscelleneous file permission ***
+*** Testing stat() for directory after using touch() on the directory ***
bool(true)
bool(true)
bool(true)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation4.phpt?r1=1.1.2.2&r2=1.1.2.3&diff_format=u
Index: php-src/ext/standard/tests/file/lstat_stat_variation4.phpt
diff -u php-src/ext/standard/tests/file/lstat_stat_variation4.phpt:1.1.2.2
php-src/ext/standard/tests/file/lstat_stat_variation4.phpt:1.1.2.3
--- php-src/ext/standard/tests/file/lstat_stat_variation4.phpt:1.1.2.2 Sat Jul
21 17:35:37 2007
+++ php-src/ext/standard/tests/file/lstat_stat_variation4.phpt Thu Jul 26
13:38:24 2007
@@ -1,10 +1,9 @@
--TEST--
-Test lstat() and stat() functions: usage variations - effects of is_dir(),
is_file() and is_link()
-
+Test lstat() and stat() functions: usage variations - effects of touch() on
file
--SKIPIF--
<?php
if (substr(PHP_OS, 0, 3) == 'WIN') {
- die('skip.. lstat() not available on Windows');
+ die('skip.. Not valid for Windows');
}
?>
--FILE--
@@ -16,107 +15,35 @@
Description: Gives information about a file
*/
-/* test the effects of is_dir(), is_file() and is_link() on stats of
dir/file/link */
+/* test the effects of touch() on stats of file */
$file_path = dirname(__FILE__);
require "$file_path/file.inc";
-/* create temp file, link and directory */
-$dirname = "$file_path/lstat_stat_variation4";
-mkdir($dirname); // temp dir
+/* create temp file */
-$filename = "$file_path/lstat_stat_variation4.tmp";
-$fp = fopen($filename, "w"); // temp file
+$file_name = "$file_path/lstat_stat_variation4.tmp";
+$fp = fopen($file_name, "w"); // temp file
fclose($fp);
-$linkname = "$file_path/lstat_stat_variation4_link.tmp";
-symlink($filename, $linkname); // temp link
-
-echo "\n*** Checking lstat() and stat() on file, link and directory after
accessing it
- with is_dir(), is_file() and is_link() functions ***\n";
-
-// is_dir() on a directory
-echo "-- Testing on Directory --\n";
-$old_stat = stat($dirname);
+// touch a file check stat, there should be difference in atime
+echo "*** Testing stat() for file after using touch() on the file ***\n";
+$old_stat = stat($file_name);
// clear the cache
clearstatcache();
sleep(2);
-var_dump( is_dir($dirname) );
-$new_stat = stat($dirname);
+var_dump( touch($file_name) );
+$new_stat = stat($file_name);
// compare self stats
var_dump( compare_self_stat($old_stat) );
var_dump( compare_self_stat($new_stat) );
-// compare the stat
-var_dump( compare_stats($old_stat, $new_stat, $all_stat_keys) );
-// clear the stat
-clearstatcache();
-
-// is_file() on a file
-echo "-- Testing on file --\n";
-$old_stat = stat($filename);
-// clear the stat
-clearstatcache();
-sleep(2);
-var_dump( is_file($filename) );
-$new_stat = stat($filename);
-// compare self stats
-var_dump( compare_self_stat($old_stat) );
-var_dump( compare_self_stat($new_stat) );
// compare the stat
-var_dump( compare_stats($old_stat, $new_stat, $all_stat_keys) );
-// clear the stat
-clearstatcache();
-
-// is_link() on a link
-echo "-- Testing on link --\n";
-$linkname = "$file_path/lstat_stat_variation4_link.tmp";
-$old_stat = lstat($linkname);
-// clear the stat
-clearstatcache();
-sleep(2);
-var_dump( is_link($linkname) );
-$new_stat = lstat($linkname);
-// compare self stats
-var_dump( compare_self_stat($old_stat) );
-var_dump( compare_self_stat($new_stat) );
-// compare the stat
-var_dump( compare_stats($old_stat, $new_stat, $all_stat_keys) );
-// clear the stat
-clearstatcache();
-
-echo "\n*** Checking stat() on a file with read/write permission ***\n";
-$file_handle = fopen($filename, "w"); // create file
-fclose($file_handle);
-$old_stat = stat($filename);
-// clear the stat
-clearstatcache();
-sleep(2);
-// opening file again in read mode
-$file_handle = fopen($filename, "r"); // read file
-fclose($file_handle);
-$new_stat = stat($filename);
-// compare self stats
-var_dump( compare_self_stat($old_stat) );
-var_dump( compare_self_stat($new_stat) );
-// compare the stat
-var_dump( compare_stats($old_stat, $new_stat, $all_stat_keys) );
-// clear the stat
-clearstatcache();
-
-echo "\n*** Checking lstat() and stat() on hard link ***\n";
-$linkname = "$file_path/lstat_stat_variation4_hard.tmp";
-var_dump( link($filename, $linkname) );
-$file_stat = stat($filename);
-$link_stat = lstat($linkname);
-// compare self stats
-var_dump( compare_self_stat($file_stat) );
-var_dump( compare_self_stat($link_stat) );
-// compare the stat
-var_dump( compare_stats($file_stat, $link_stat, $all_stat_keys) );
-// clear the stat
+$affected_members = array(8, 'atime');
+var_dump( compare_stats($old_stat, $new_stat, $affected_members, "<") );
+// clear the cache
clearstatcache();
echo "\n--- Done ---";
@@ -125,36 +52,10 @@
--CLEAN--
<?php
$file_path = dirname(__FILE__);
-unlink("$file_path/lstat_stat_variation4_hard.tmp");
-unlink("$file_path/lstat_stat_variation4_link.tmp");
unlink("$file_path/lstat_stat_variation4.tmp");
-rmdir("$file_path/lstat_stat_variation4");
?>
--EXPECTF--
-*** Checking lstat() and stat() on file, link and directory after accessing it
- with is_dir(), is_file() and is_link() functions ***
--- Testing on Directory --
-bool(true)
-bool(true)
-bool(true)
-bool(true)
--- Testing on file --
-bool(true)
-bool(true)
-bool(true)
-bool(true)
--- Testing on link --
-bool(true)
-bool(true)
-bool(true)
-bool(true)
-
-*** Checking stat() on a file with read/write permission ***
-bool(true)
-bool(true)
-bool(true)
-
-*** Checking lstat() and stat() on hard link ***
+*** Testing stat() for file after using touch() on the file ***
bool(true)
bool(true)
bool(true)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation3.phpt?r1=1.1.2.2&r2=1.1.2.3&diff_format=u
Index: php-src/ext/standard/tests/file/lstat_stat_variation3.phpt
diff -u php-src/ext/standard/tests/file/lstat_stat_variation3.phpt:1.1.2.2
php-src/ext/standard/tests/file/lstat_stat_variation3.phpt:1.1.2.3
--- php-src/ext/standard/tests/file/lstat_stat_variation3.phpt:1.1.2.2 Sat Jul
21 17:35:37 2007
+++ php-src/ext/standard/tests/file/lstat_stat_variation3.phpt Thu Jul 26
13:38:24 2007
@@ -1,10 +1,9 @@
--TEST--
-Test lstat() and stat() functions: usage variations - effects with writing &
creating/deleting file/subdir
-
+Test lstat() and stat() functions: usage variations - effects of rename() on
link
--SKIPIF--
<?php
if (substr(PHP_OS, 0, 3) == 'WIN') {
- die('skip.. lstat() not available on Windows');
+ die('skip.. Not valid for Windows');
}
?>
--FILE--
@@ -16,67 +15,33 @@
Description: Gives information about a file
*/
+/* test the effects of rename() on stats of link */
+
$file_path = dirname(__FILE__);
require "$file_path/file.inc";
-/* test the effects on stats with writing data into a file
- and creating/deleting file/subdir from a dir
-*/
-
-/* create temp file, link and directory */
-mkdir("$file_path/lstat_stat_variation3/"); // temp dir
-
-$file_name = "$file_path/lstat_stat_variation3.tmp";
-$fp = fopen($file_name, "w"); // temp file
+/* create temp file & link */
+$fp = fopen("$file_path/lstat_stat_variation3.tmp", "w"); // temp file
fclose($fp);
-symlink("$file_path/lstat_stat_variation3.tmp",
"$file_path/lstat_stat_variation3_link.tmp"); // temp link
+// temp link
+symlink("$file_path/lstat_stat_variation3.tmp",
"$file_path/lstat_stat_variation_link3.tmp");
-// writing to an empty file
-echo "-- Testing stat() on file after data is written in it --\n";
-$fh = fopen($file_name,"w");
-$old_stat = stat($file_name);
+// renaming a link
+echo "*** Testing lstat() for link after being renamed ***\n";
+$old_linkname = "$file_path/lstat_stat_variation_link3.tmp";
+$new_linkname = "$file_path/lstat_stat_variation_link3a.tmp";
+$old_stat = lstat($old_linkname);
clearstatcache();
-fwrite($fh, "Hello World");
-$new_stat = stat($file_name);
+var_dump( rename($old_linkname, $new_linkname) );
+$new_stat = lstat($new_linkname);
// compare self stats
var_dump( compare_self_stat($old_stat) );
var_dump( compare_self_stat($new_stat) );
-// compare the stats
-$comp_arr = array(7, 12, 'size', 'blocks');
-var_dump(compare_stats($old_stat, $new_stat, $comp_arr, "<"));
-clearstatcache();
-// creating and deleting subdir and files in the dir
-echo "-- Testing stat() on dir after subdir and file is created in it --\n";
-$dirname = "$file_path/lstat_stat_variation3";
-$old_stat = stat($dirname);
-clearstatcache();
-sleep(2);
-mkdir("$dirname/lstat_stat_variation3_subdir");
-$file_handle = fopen("$dirname/lstat_stat_variation3a.tmp", "w");
-fclose($file_handle);
-$new_stat = stat($dirname);
-
-// compare self stats
-var_dump( compare_self_stat($old_stat) );
-var_dump( compare_self_stat($new_stat) );
-// compare the stats
-$affected_members = array(3, 9, 10, 'nlink', 'mtime', 'ctime');
-clearstatcache();
-var_dump(compare_stats($old_stat, $new_stat, $affected_members, "<"));
-unlink("$dirname/lstat_stat_variation3a.tmp");
-rmdir("$dirname/lstat_stat_variation3_subdir");
-
-// comparing stats after the deletion of subdir and file
-echo "-- Testing stat() for comparing stats after the deletion of subdir and
file --\n";
-$new_stat1 = stat($dirname);
-// compare self stats
-var_dump( compare_self_stat($new_stat1) );
-// compare the stats
-$affected_members = array(3, 'nlink');
-var_dump(compare_stats($new_stat, $new_stat1, $affected_members, ">"));
+// compare the two stats
+var_dump( compare_stats($old_stat, $new_stat, $all_stat_keys) );
echo "\n--- Done ---";
?>
@@ -85,19 +50,12 @@
<?php
$file_path = dirname(__FILE__);
unlink("$file_path/lstat_stat_variation3.tmp");
-rmdir("$file_path/lstat_stat_variation3");
-unlink("$file_path/lstat_stat_variation3_link.tmp");
+unlink("$file_path/lstat_stat_variation_link3a.tmp");
?>
--EXPECTF--
--- Testing stat() on file after data is written in it --
-bool(true)
-bool(true)
-bool(true)
--- Testing stat() on dir after subdir and file is created in it --
-bool(true)
+*** Testing lstat() for link after being renamed ***
bool(true)
bool(true)
--- Testing stat() for comparing stats after the deletion of subdir and file --
bool(true)
bool(true)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation2.phpt?r1=1.1.2.2&r2=1.1.2.3&diff_format=u
Index: php-src/ext/standard/tests/file/lstat_stat_variation2.phpt
diff -u php-src/ext/standard/tests/file/lstat_stat_variation2.phpt:1.1.2.2
php-src/ext/standard/tests/file/lstat_stat_variation2.phpt:1.1.2.3
--- php-src/ext/standard/tests/file/lstat_stat_variation2.phpt:1.1.2.2 Sat Jul
21 17:35:37 2007
+++ php-src/ext/standard/tests/file/lstat_stat_variation2.phpt Thu Jul 26
13:38:24 2007
@@ -1,9 +1,9 @@
--TEST--
-Test lstat() and stat() functions: usage variations - effects of touch()
+Test lstat() and stat() functions: usage variations - effects of rename() on
dir
--SKIPIF--
<?php
if (substr(PHP_OS, 0, 3) == 'WIN') {
- die('skip.. lstat() not available on Windows');
+ die('skip.. Not valid for Windows');
}
?>
--FILE--
@@ -15,82 +15,31 @@
Description: Gives information about a file
*/
-/* test the effects of touch() on stats of dir/file/link */
+/* test the effects of rename() on stats of dir */
$file_path = dirname(__FILE__);
-require "$file_path/file.inc";
+require("file.inc");
+/* create temp directory */
+mkdir("$file_path/lstat_stat_variation1/"); // temp dir
-/* create temp file, link and directory */
-
-$dir_name = "$file_path/lstat_stat_variation2/";
-mkdir($dir_name); // temp dir
-$file_name = "$file_path/lstat_stat_variation2.tmp";
-$fp = fopen($file_name, "w"); // temp file
-fclose($fp);
-$link_name = "$file_path/lstat_stat_variation_link2.tmp";
-symlink($file_name, $link_name); // temp link
-
-
-echo "\n*** Checking lstat() and stat() on file, link and directory after
touching them ***\n";
-
-// touch a file
-echo "-- Testing stat() for file after using touch() on the file --\n";
-$old_stat = stat($file_name);
-// clear the cache
+// renaming a directory and check stat
+echo "*** Testing stat() for directory after being renamed ***\n";
+$old_dirname = "$file_path/lstat_stat_variation1";
+$new_dirname = "$file_path/lstat_stat_variation1a";
+$old_stat = stat($old_dirname);
clearstatcache();
-sleep(2);
-var_dump( touch($file_name) );
-$new_stat = stat($file_name);
+var_dump( rename($old_dirname, $new_dirname) );
+$new_stat = stat($new_dirname);
// compare self stats
var_dump( compare_self_stat($old_stat) );
var_dump( compare_self_stat($new_stat) );
-// compare the stat
-$affected_members = array(8, 'atime');
-var_dump( compare_stats($old_stat, $new_stat, $affected_members, "<") );
-// clear the cache
-clearstatcache();
-
-
-// touch a directory
-echo "-- Testing stat() for directory after using touch() on the directory
--\n";
-$old_stat = stat($dir_name);
+// compare the two stats
+var_dump( compare_stats($old_stat, $new_stat, $all_stat_keys) );
// clear the cache
clearstatcache();
-sleep(2);
-var_dump( touch($dir_name) );
-$new_stat = stat($dir_name);
-
-// compare self stats
-var_dump( compare_self_stat($old_stat) );
-var_dump( compare_self_stat($new_stat) );
-
-// compare the stat
-$affected_members = array(8, 9, 10, 'atime', 'mtime', 'ctime');
-var_dump( compare_stats($old_stat, $new_stat, $affected_members, "<") );
-// clear the cache
-clearstatcache();
-
-// touch a link
-echo "-- Testing lstat() for link after using touch() on the link --\n";
-$old_stat = lstat($link_name);
-// clear the cache
-clearstatcache();
-sleep(2);
-var_dump( touch($link_name) );
-$new_stat = lstat($link_name);
-
-// compare self stats
-var_dump( compare_self_stat($old_stat) );
-var_dump( compare_self_stat($new_stat) );
-
-// compare the stat
-$affected_members = array(8, 'atime');
-var_dump( compare_stats($old_stat, $new_stat, $affected_members, "<") );
-// clear the stat
-clearstatcache();
echo "\n--- Done ---";
?>
@@ -98,23 +47,10 @@
--CLEAN--
<?php
$file_path = dirname(__FILE__);
-unlink("$file_path/lstat_stat_variation2.tmp");
-rmdir("$file_path/lstat_stat_variation2");
-unlink("$file_path/lstat_stat_variation_link2.tmp");
+rmdir("$file_path/lstat_stat_variation1a");
?>
--EXPECTF--
-*** Checking lstat() and stat() on file, link and directory after touching
them ***
--- Testing stat() for file after using touch() on the file --
-bool(true)
-bool(true)
-bool(true)
-bool(true)
--- Testing stat() for directory after using touch() on the directory --
-bool(true)
-bool(true)
-bool(true)
-bool(true)
--- Testing lstat() for link after using touch() on the link --
+*** Testing stat() for directory after being renamed ***
bool(true)
bool(true)
bool(true)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/file.inc?r1=1.1.2.5&r2=1.1.2.6&diff_format=u
Index: php-src/ext/standard/tests/file/file.inc
diff -u php-src/ext/standard/tests/file/file.inc:1.1.2.5
php-src/ext/standard/tests/file/file.inc:1.1.2.6
--- php-src/ext/standard/tests/file/file.inc:1.1.2.5 Fri Jul 20 18:07:02 2007
+++ php-src/ext/standard/tests/file/file.inc Thu Jul 26 13:38:24 2007
@@ -548,7 +548,7 @@
foreach($string_keys as $str_key)
{
if($stat[$key] != $stat[$str_key]) {
- echo "stat[$key] doesn't match with stat[$str_key]\n";
+ echo "Error: stat[$key] doesn't match with stat[$str_key]\n";
$flag = false;
$key++;
}
@@ -557,6 +557,13 @@
}
} // end of foreach
+ // if the $return_value is false, i.e all the element do not match then
+ // dump the stat array so that its easy to figure out the error
+ if ($return_value == false ) {
+ echo "\n Dumping stat array ...\n";
+ var_dump($stat);
+ }
+
return $return_value;
}// end of compare_self_stat
@@ -570,7 +577,7 @@
$stat2 = second stat array
$op = type of the comparision to be perform between elements of stat1 and
stat2
"!=" compare for not equal
- "==" comprae for equality
+ "==" compare for equality
">" if each element of stat1 is > than stat2
"<" if each element of stat1 is < than stat2
$fields = contains the key of the elements that needs to be compared.
@@ -578,7 +585,10 @@
$flag = specify true to dump the stat1 and stat2
*/
-$all_stat_keys = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, "dev", "ino",
"mode", "nlink", "uid", "gid", "rdev", "size", "atime", "mtime", "ctime",
"blksize", "blocks");
+$all_stat_keys = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ "dev", "ino", "mode", "nlink", "uid", "gid",
+ "rdev", "size", "atime", "mtime", "ctime",
+ "blksize", "blocks");
function compare_stats($stat1, $stat2, $fields, $op = "==", $flag = false ) {
// dump the stat if requested
@@ -597,7 +607,7 @@
case "==":
if ( $stat1[ $fields[$index] ] != $stat2[ $fields[$index] ] ) {
$result = false;
- echo "stat1 do not match with stat2 at key value:
$fields[$index]\n";
+ echo "Error: stat1 do not match with stat2 at key value:
$fields[$index]\n";
}
break;
@@ -606,25 +616,34 @@
// do nothing as its not equal, else will take care of if equal
} else {
$result = false;
- echo "stat1 equals stat2 at key value: $fields[$index]\n";
+ echo "Error: stat1 equals stat2 at key value: $fields[$index]\n";
}
break;
case ">":
if ( $stat1[ $fields[$index] ] <= $stat2[ $fields[$index] ] ) {
$result = false;
- echo "stat1 is not greater than stat2 at key value:
$fields[$index]\n";
+ echo "Error: stat1 is not greater than stat2 at key value:
$fields[$index]\n";
}
break;
case "<":
if ( $stat1[ $fields[$index] ] >= $stat2[ $fields[$index] ] ) {
$result = false;
- echo "stat1 is not lesser than stat2 at key value:
$fields[$index]\n";
+ echo "Error: stat1 is not lesser than stat2 at key value:
$fields[$index]\n";
}
break;
}
}
+ // if the result is false(i.e values are not as expected),
+ // dump the stat array so that easy to figure out the error
+ if ( $result == false ) {
+ echo "\n Dumping stat array 1...\n";
+ var_dump($stat1);
+ echo "\n Dumping stat array 2...\n";
+ var_dump($stat2);
+ }
+
return $result;
}
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation1.phpt?r1=1.1.2.2&r2=1.1.2.3&diff_format=u
Index: php-src/ext/standard/tests/file/lstat_stat_variation1.phpt
diff -u php-src/ext/standard/tests/file/lstat_stat_variation1.phpt:1.1.2.2
php-src/ext/standard/tests/file/lstat_stat_variation1.phpt:1.1.2.3
--- php-src/ext/standard/tests/file/lstat_stat_variation1.phpt:1.1.2.2 Sat Jul
21 17:35:37 2007
+++ php-src/ext/standard/tests/file/lstat_stat_variation1.phpt Thu Jul 26
13:38:24 2007
@@ -1,9 +1,9 @@
--TEST--
-Test lstat() and stat() functions: usage variations - effects of rename()
+Test lstat() and stat() functions: usage variations - effects of rename() on
file
--SKIPIF--
<?php
if (substr(PHP_OS, 0, 3) == 'WIN') {
- die('skip.. lstat() not available on Windows');
+ die('skip.. Not valid for Windows');
}
?>
--FILE--
@@ -15,23 +15,17 @@
Description: Gives information about a file
*/
-/* test the effects of rename() on stats of dir/file/link */
+/* test the effects of rename() on stats of file */
$file_path = dirname(__FILE__);
require "$file_path/file.inc";
-/* create temp file, link and directory */
-mkdir("$file_path/lstat_stat_variation1/"); // temp dir
+/* create temp file */
$fp = fopen("$file_path/lstat_stat_variation1.tmp", "w"); // temp file
fclose($fp);
-// temp link
-symlink("$file_path/lstat_stat_variation1.tmp",
"$file_path/lstat_stat_variation_link1.tmp");
-
-echo "*** Checking lstat() and stat() on file, link and directory ater
renaming them ***\n";
-
-// renaming a file
-echo "-- Testing stat() for files after being renamed --\n";
+// renaming a file and check stat
+echo "*** Testing stat() for files after being renamed ***\n";
$file_path = dirname(__FILE__);
$old_filename = "$file_path/lstat_stat_variation1.tmp";
$new_filename = "$file_path/lstat_stat_variation1a.tmp";
@@ -49,40 +43,6 @@
// clear the cache
clearstatcache();
-// renaming a directory
-echo "-- Testing stat() for directory after being renamed --\n";
-$old_dirname = "$file_path/lstat_stat_variation1";
-$new_dirname = "$file_path/lstat_stat_variation1a";
-$old_stat = stat($old_dirname);
-clearstatcache();
-var_dump( rename($old_dirname, $new_dirname) );
-$new_stat = stat($new_dirname);
-
-// compare self stats
-var_dump( compare_self_stat($old_stat) );
-var_dump( compare_self_stat($new_stat) );
-
-// compare the two stats
-var_dump( compare_stats($old_stat, $new_stat, $all_stat_keys) );
-// clear the cache
-clearstatcache();
-
-// renaming a link
-echo "-- Testing lstat() for link after being renamed --\n";
-$old_linkname = "$file_path/lstat_stat_variation_link1.tmp";
-$new_linkname = "$file_path/lstat_stat_variation_link1a.tmp";
-$old_stat = lstat($old_linkname);
-clearstatcache();
-var_dump( rename($old_linkname, $new_linkname) );
-$new_stat = lstat($new_linkname);
-
-// compare self stats
-var_dump( compare_self_stat($old_stat) );
-var_dump( compare_self_stat($new_stat) );
-
-// compare the two stats
-var_dump( compare_stats($old_stat, $new_stat, $all_stat_keys) );
-
echo "\n--- Done ---";
?>
@@ -90,22 +50,9 @@
<?php
$file_path = dirname(__FILE__);
unlink("$file_path/lstat_stat_variation1a.tmp");
-rmdir("$file_path/lstat_stat_variation1a");
-unlink("$file_path/lstat_stat_variation_link1a.tmp");
?>
--EXPECTF--
-*** Checking lstat() and stat() on file, link and directory ater renaming them
***
--- Testing stat() for files after being renamed --
-bool(true)
-bool(true)
-bool(true)
-bool(true)
--- Testing stat() for directory after being renamed --
-bool(true)
-bool(true)
-bool(true)
-bool(true)
--- Testing lstat() for link after being renamed --
+*** Testing stat() for files after being renamed ***
bool(true)
bool(true)
bool(true)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation13.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/lstat_stat_variation13.phpt
+++ php-src/ext/standard/tests/file/lstat_stat_variation13.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation14.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/lstat_stat_variation14.phpt
+++ php-src/ext/standard/tests/file/lstat_stat_variation14.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation15.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/lstat_stat_variation15.phpt
+++ php-src/ext/standard/tests/file/lstat_stat_variation15.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation21.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/lstat_stat_variation21.phpt
+++ php-src/ext/standard/tests/file/lstat_stat_variation21.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation16.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/lstat_stat_variation16.phpt
+++ php-src/ext/standard/tests/file/lstat_stat_variation16.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation20.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/lstat_stat_variation20.phpt
+++ php-src/ext/standard/tests/file/lstat_stat_variation20.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation17.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/lstat_stat_variation17.phpt
+++ php-src/ext/standard/tests/file/lstat_stat_variation17.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation10.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/lstat_stat_variation10.phpt
+++ php-src/ext/standard/tests/file/lstat_stat_variation10.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation9.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/lstat_stat_variation9.phpt
+++ php-src/ext/standard/tests/file/lstat_stat_variation9.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation18.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/lstat_stat_variation18.phpt
+++ php-src/ext/standard/tests/file/lstat_stat_variation18.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation11.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/lstat_stat_variation11.phpt
+++ php-src/ext/standard/tests/file/lstat_stat_variation11.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation8.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/lstat_stat_variation8.phpt
+++ php-src/ext/standard/tests/file/lstat_stat_variation8.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation19.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/lstat_stat_variation19.phpt
+++ php-src/ext/standard/tests/file/lstat_stat_variation19.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation12.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/lstat_stat_variation12.phpt
+++ php-src/ext/standard/tests/file/lstat_stat_variation12.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/lstat_stat_variation7.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/lstat_stat_variation7.phpt
+++ php-src/ext/standard/tests/file/lstat_stat_variation7.phpt
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php