summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaghubansh Kumar <kraghuba@php.net>2007-07-22 12:32:45 +0000
committerRaghubansh Kumar <kraghuba@php.net>2007-07-22 12:32:45 +0000
commit7c205bb2947b748b4a0cd04813d7cfffb946ca0d (patch)
treebcd99f6bc5ed9317e6deaea6ef6fae56d38741e3
parent3f04550eeaa50ae5e22efbf2ad3e32d1a962f9c0 (diff)
downloadphp-git-7c205bb2947b748b4a0cd04813d7cfffb946ca0d.tar.gz
smaller testcases for stat() function on Windows
-rw-r--r--ext/standard/tests/file/stat_variation1-win32.phpt108
-rw-r--r--ext/standard/tests/file/stat_variation2-win32.phpt76
-rw-r--r--ext/standard/tests/file/stat_variation3-win32.phpt92
-rw-r--r--ext/standard/tests/file/stat_variation4-win32.phpt108
-rw-r--r--ext/standard/tests/file/stat_variation5-win32.phpt74
-rw-r--r--ext/standard/tests/file/stat_variation6-win32.phpt107
-rw-r--r--ext/standard/tests/file/stat_variation7-win32.phpt523
-rw-r--r--ext/standard/tests/file/stat_variation8-win32.phpt85
8 files changed, 1173 insertions, 0 deletions
diff --git a/ext/standard/tests/file/stat_variation1-win32.phpt b/ext/standard/tests/file/stat_variation1-win32.phpt
new file mode 100644
index 0000000000..8ae621083b
--- /dev/null
+++ b/ext/standard/tests/file/stat_variation1-win32.phpt
@@ -0,0 +1,108 @@
+--TEST--
+Test stat() functions: usage variations - effects of rename()
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) != 'WIN') {
+ die('skip.. only for Windows');
+}
+?>
+--FILE--
+<?php
+
+/*
+ * Prototype: array stat ( string $filename );
+ * Description: Gives information about a file
+ */
+
+/* test the effects of rename() on stats of dir/file */
+
+$file_path = dirname(__FILE__);
+require "$file_path/file.inc";
+
+
+/* create temp file and directory */
+mkdir("$file_path/stat_variation1/"); // temp dir
+
+$file_handle = fopen("$file_path/stat_variation1.tmp", "w"); // temp file
+fclose($file_handle);
+
+
+echo "*** Testing stat(): on file and directory ater renaming them ***\n";
+
+// renaming a file
+echo "-- Testing stat() for files after being renamed --\n";
+$old_filename = "$file_path/stat_variation1.tmp";
+$new_filename = "$file_path/stat_variation1a.tmp";
+$old_stat = stat($old_filename);
+clearstatcache();
+sleep(2);
+var_dump( rename($old_filename, $new_filename) );
+$new_stat = stat($new_filename);
+
+// compare the self stat
+var_dump( compare_self_stat($old_stat) );
+var_dump( compare_self_stat($new_stat) );
+
+// compare the two stats
+var_dump( compare_stats($old_stat, $old_stat, $all_stat_keys) );
+// clear the cache
+clearstatcache();
+
+// renaming a directory
+echo "-- Testing stat() for directory after being renamed --\n";
+$old_dirname = "$file_path/stat_variation1";
+$new_dirname = "$file_path/stat_variation1a";
+$old_stat = stat($old_dirname);
+clearstatcache();
+sleep(2);
+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();
+
+
+echo "\n*** Done ***";
+?>
+
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+unlink("$file_path/stat_variation1a.tmp");
+rmdir("$file_path/stat_variation1a");
+?>
+--EXPECTF--
+*** Testing stat(): on file 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)
+
+*** Done ***
+
+--UEXPECTF--
+*** Testing stat(): on file 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)
+
+*** Done ***
diff --git a/ext/standard/tests/file/stat_variation2-win32.phpt b/ext/standard/tests/file/stat_variation2-win32.phpt
new file mode 100644
index 0000000000..3f26ead1a2
--- /dev/null
+++ b/ext/standard/tests/file/stat_variation2-win32.phpt
@@ -0,0 +1,76 @@
+--TEST--
+Test stat() functions: usage variations - effects of writing to file
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) != 'WIN') {
+ die('skip.. only for Windows');
+}
+?>
+--FILE--
+<?php
+
+/*
+ * Prototype: array stat ( string $filename );
+ * Description: Gives information about a file
+ */
+
+/* test the effects of writing to a file on the stats of the file */
+
+
+$file_path = dirname(__FILE__);
+require "$file_path/file.inc";
+
+
+$filename = "$file_path/stat_variation2.tmp";
+$file_handle = fopen($filename, "w"); // temp file
+fclose($file_handle);
+
+
+echo "*** Testing stat(): writing to a file ***\n";
+
+// writing to an empty file
+echo "-- Testing stat() on file after data is written in it --\n";
+$old_stat = stat($filename);
+clearstatcache();
+sleep(2);
+$file_handle = fopen($filename, "w"); // temp file
+fwrite($file_handle, "Hello World");
+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 stats
+$comp_arr = array(7, 'size');
+var_dump(compare_stats($old_stat, $new_stat, $comp_arr, "<"));
+clearstatcache();
+
+echo "\n*** Done ***";
+?>
+
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+unlink("$file_path/stat_variation2.tmp");
+?>
+--EXPECTF--
+*** Testing stat(): writing to a file ***
+-- Testing stat() on file after data is written in it --
+bool(true)
+bool(true)
+bool(true)
+
+*** Done ***
+
+--UEXPECTF--
+*** Testing stat(): writing to a file ***
+-- Testing stat() on file after data is written in it --
+
+Notice: fwrite(): 11 character unicode buffer downcoded for binary stream runtime_encoding in %s on line %d
+bool(true)
+bool(true)
+bool(true)
+
+*** Done ***
+
diff --git a/ext/standard/tests/file/stat_variation3-win32.phpt b/ext/standard/tests/file/stat_variation3-win32.phpt
new file mode 100644
index 0000000000..b83d389aa8
--- /dev/null
+++ b/ext/standard/tests/file/stat_variation3-win32.phpt
@@ -0,0 +1,92 @@
+--TEST--
+Test stat() functions: usage variations - effects of creating/deleting the dir/file
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) != 'WIN') {
+ die('skip.. only for Windows');
+}
+?>
+--FILE--
+<?php
+
+/*
+ * Prototype: array stat ( string $filename );
+ * Description: Gives information about a file
+ */
+
+/* test the effects of creating & deleting of subdir/file on the stats of dir/file */
+
+$file_path = dirname(__FILE__);
+require "$file_path/file.inc";
+
+
+/* create temp file and directory */
+mkdir("$file_path/stat_variation3/"); // temp dir
+
+echo "*** Testing stat(): with creating & deleting subdir/file ***\n";
+
+// 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/stat_variation3";
+$old_stat = stat($dirname);
+clearstatcache();
+sleep(2);
+mkdir("$dirname/stat_variation3_subdir");
+$file_handle = fopen("$dirname/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( 9, 'mtime');
+clearstatcache();
+sleep(2);
+var_dump(compare_stats($old_stat, $new_stat, $affected_members, "<"));
+unlink("$dirname/stat_variation3a.tmp");
+rmdir("$dirname/stat_variation3_subdir");
+clearstatcache();
+
+// 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
+var_dump(compare_stats($new_stat, $new_stat1, $all_stat_keys, "="));
+clearstatcache();
+
+echo "\n*** Done ***";
+?>
+
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+rmdir("$file_path/stat_variation3");
+?>
+--EXPECTF--
+
+*** Testing stat(): with creating & deleting subdir/file ***
+-- Testing stat() on dir after subdir and file is created in it --
+bool(true)
+bool(true)
+bool(true)
+-- Testing stat() for comparing stats after the deletion of subdir and file --
+bool(true)
+bool(true)
+
+*** Done ***
+
+--UEXPECTF--
+
+*** Testing stat(): with creating & deleting subdir/file ***
+-- Testing stat() on dir after subdir and file is created in it --
+bool(true)
+bool(true)
+bool(true)
+-- Testing stat() for comparing stats after the deletion of subdir and file --
+bool(true)
+bool(true)
+
+*** Done ***
diff --git a/ext/standard/tests/file/stat_variation4-win32.phpt b/ext/standard/tests/file/stat_variation4-win32.phpt
new file mode 100644
index 0000000000..d99653f8b7
--- /dev/null
+++ b/ext/standard/tests/file/stat_variation4-win32.phpt
@@ -0,0 +1,108 @@
+--TEST--
+Test stat() functions: usage variations - effects of is_dir() & is_file()
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) != 'WIN') {
+ die('skip.. only for Windows');
+}
+?>
+--FILE--
+<?php
+
+/*
+ * Prototype: array stat ( string $filename );
+ * Description: Gives information about a file
+ */
+
+/* test the effects on the stats of dir/file for using is_dir() & is_file() on dir/file */
+
+$file_path = dirname(__FILE__);
+require "$file_path/file.inc";
+
+
+/* create temp file and directory */
+mkdir("$file_path/stat_variation4/"); // temp dir
+
+$file_handle = fopen("$file_path/stat_variation4.tmp", "w"); // temp file
+fclose($file_handle);
+
+
+echo "\n*** Testing stat(): on file and directory after accessing it
+ with is_dir() and is_file() functions ***\n";
+
+// is_dir() on a directory
+echo "-- Testing on Directory --\n";
+$old_dirname = "$file_path/stat_variation4";
+$old_stat = stat($old_dirname);
+// clear the cache
+clearstatcache();
+sleep(2);
+var_dump( is_dir($old_dirname) );
+$new_stat = stat($old_dirname);
+
+// 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_filename = "$file_path/stat_variation4.tmp";
+$old_stat = stat($old_filename);
+// clear the stat
+clearstatcache();
+sleep(2);
+var_dump( is_file($old_filename) );
+$new_stat = stat($old_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*** Done ***";
+?>
+
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+unlink("$file_path/stat_variation4.tmp");
+rmdir("$file_path/stat_variation4");
+?>
+--EXPECTF--
+*** Testing stat(): on file and directory after accessing it
+ with is_dir() and is_file() functions ***
+-- Testing on Directory --
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+-- Testing on file --
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+
+*** Done ***
+
+--UEXPECTF--
+*** Testing stat(): on file and directory after accessing it
+ with is_dir() and is_file() functions ***
+-- Testing on Directory --
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+-- Testing on file --
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+
+*** Done ***
diff --git a/ext/standard/tests/file/stat_variation5-win32.phpt b/ext/standard/tests/file/stat_variation5-win32.phpt
new file mode 100644
index 0000000000..0a4aaba2c1
--- /dev/null
+++ b/ext/standard/tests/file/stat_variation5-win32.phpt
@@ -0,0 +1,74 @@
+--TEST--
+Test stat() functions: usage variations - file opened in read/write mode
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) != 'WIN') {
+ die('skip.. only for Windows');
+}
+?>
+--FILE--
+<?php
+
+/*
+ * Prototype: array stat ( string $filename );
+ * Description: Gives information about a file
+ */
+
+/* test the stats of file opened in write mode and then same in read mode */
+
+$file_path = dirname(__FILE__);
+require "$file_path/file.inc";
+
+
+$file_handle = fopen("$file_path/stat_variation5.tmp", "w"); // temp file
+fclose($file_handle);
+
+
+echo "\n*** Testing stat(): on a file with read/write permission ***\n";
+
+$filename = "$file_path/stat_variation5.tmp";
+$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
+$affected_members = array(10, 'ctime');
+var_dump( compare_stats($old_stat, $new_stat, $affected_members, "=") );
+// clear the stat
+clearstatcache();
+
+
+echo "\n*** Done ***";
+?>
+
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+unlink("$file_path/stat_variation5.tmp");
+?>
+--EXPECTF--
+
+*** Testing stat(): on a file with read/write permission ***
+bool(true)
+bool(true)
+bool(true)
+
+*** Done ***
+
+--UEXPECTF--
+
+*** Testing stat(): on a file with read/write permission ***
+bool(true)
+bool(true)
+bool(true)
+
+*** Done ***
diff --git a/ext/standard/tests/file/stat_variation6-win32.phpt b/ext/standard/tests/file/stat_variation6-win32.phpt
new file mode 100644
index 0000000000..b93f926163
--- /dev/null
+++ b/ext/standard/tests/file/stat_variation6-win32.phpt
@@ -0,0 +1,107 @@
+--TEST--
+Test stat() functions: usage variations - changing permissions of dir/file
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) != 'WIN') {
+ die('skip.. only for Windows');
+}
+?>
+--FILE--
+<?php
+
+/*
+ * Prototype: array stat ( string $filename );
+ * Description: Gives information about a file
+ */
+
+/* test the effects on the stats of dir/file for changing permissions of dir/file */
+
+
+$file_path = dirname(__FILE__);
+require "$file_path/file.inc";
+
+
+/* create temp file and directory */
+$dirname = "$file_path/stat_variation6";
+mkdir($dirname); // temp dir
+
+$filename = "$file_path/stat_variation6.tmp";
+$file_handle = fopen($filename, "w"); // temp file
+fclose($file_handle);
+
+
+// checking stat() on file
+echo "\n*** Testing 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";
+$old_stat = stat($dirname);
+var_dump( chmod($dirname, 0777) );
+// clear the stat
+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( 10, 'ctime');
+var_dump( compare_stats($old_stat, $new_stat, $affected_members, "=") );
+// clear the stat
+clearstatcache(); // clear statement cache
+
+
+echo "\n*** Done ***";
+?>
+
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+unlink("$file_path/stat_variation6.tmp");
+rmdir("$file_path/stat_variation6");
+?>
+--EXPECTF--
+
+*** Testing 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 ***
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+
+*** Done ***
+
+--UEXPECTF--
+
+*** Testing 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 ***
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+
+*** Done ***
diff --git a/ext/standard/tests/file/stat_variation7-win32.phpt b/ext/standard/tests/file/stat_variation7-win32.phpt
new file mode 100644
index 0000000000..5e1b2b3dd6
--- /dev/null
+++ b/ext/standard/tests/file/stat_variation7-win32.phpt
@@ -0,0 +1,523 @@
+--TEST--
+Test stat() functions: usage variations - names of dir/file stored in objects
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) != 'WIN') {
+ die('skip.. only for Windows');
+}
+?>
+--FILE--
+<?php
+
+/*
+ * Prototype: array stat ( string $filename );
+ * Description: Gives information about a file
+ */
+
+/* test the stats of dir/file when their names are stored in objects */
+
+$file_path = dirname(__FILE__);
+require "$file_path/file.inc";
+
+
+/* create temp file and directory */
+mkdir("$file_path/stat_variation7/"); // temp dir
+
+$file_handle = fopen("$file_path/stat_variation7.tmp", "w"); // temp file
+fclose($file_handle);
+
+
+echo "\n*** Testing stat(): with filename
+ and directory name stored inside a object ***\n";
+
+// creating object with members as numeric and non-numeric filename 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/stat_variation7/");
+$obj2 = new object_temp("$file_path/stat_variation7a/");
+
+// file as member
+$obj3 = new object_temp("$file_path/stat_variation7.tmp");
+$obj4 = new object_temp("$file_path/stat_variation7a.tmp");
+
+echo "\n-- Testing stat() on filename stored inside an object --\n";
+var_dump( stat($obj3->var_name) );
+
+$file_handle = fopen("$file_path/stat_variation7a.tmp", "w");
+fclose($file_handle);
+var_dump( stat($obj4->var_name) );
+
+echo "\n-- Testing stat() on directory name stored inside an object --\n";
+var_dump( stat($obj1->var_name) );
+
+mkdir("$file_path/stat_variation7a/");
+var_dump( stat($obj2->var_name) );
+
+echo "\n*** Done ***";
+?>
+
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+unlink("$file_path/stat_variation7.tmp");
+unlink("$file_path/stat_variation7a.tmp");
+rmdir("$file_path/stat_variation7");
+rmdir("$file_path/stat_variation7a");
+?>
+--EXPECTF--
+*** Testing stat(): with filename
+ and directory name stored inside a object ***
+
+-- 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 ***
+
+--UEXPECTF--
+*** Testing stat(): with filename
+ and directory name stored inside a object ***
+
+-- 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)
+ [u"dev"]=>
+ int(%d)
+ [u"ino"]=>
+ int(%d)
+ [u"mode"]=>
+ int(%d)
+ [u"nlink"]=>
+ int(%d)
+ [u"uid"]=>
+ int(%d)
+ [u"gid"]=>
+ int(%d)
+ [u"rdev"]=>
+ int(%d)
+ [u"size"]=>
+ int(%d)
+ [u"atime"]=>
+ int(%d)
+ [u"mtime"]=>
+ int(%d)
+ [u"ctime"]=>
+ int(%d)
+ [u"blksize"]=>
+ int(-%d)
+ [u"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)
+ [u"dev"]=>
+ int(%d)
+ [u"ino"]=>
+ int(%d)
+ [u"mode"]=>
+ int(%d)
+ [u"nlink"]=>
+ int(%d)
+ [u"uid"]=>
+ int(%d)
+ [u"gid"]=>
+ int(%d)
+ [u"rdev"]=>
+ int(%d)
+ [u"size"]=>
+ int(%d)
+ [u"atime"]=>
+ int(%d)
+ [u"mtime"]=>
+ int(%d)
+ [u"ctime"]=>
+ int(%d)
+ [u"blksize"]=>
+ int(-%d)
+ [u"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)
+ [u"dev"]=>
+ int(%d)
+ [u"ino"]=>
+ int(%d)
+ [u"mode"]=>
+ int(%d)
+ [u"nlink"]=>
+ int(%d)
+ [u"uid"]=>
+ int(%d)
+ [u"gid"]=>
+ int(%d)
+ [u"rdev"]=>
+ int(%d)
+ [u"size"]=>
+ int(%d)
+ [u"atime"]=>
+ int(%d)
+ [u"mtime"]=>
+ int(%d)
+ [u"ctime"]=>
+ int(%d)
+ [u"blksize"]=>
+ int(-%d)
+ [u"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)
+ [u"dev"]=>
+ int(%d)
+ [u"ino"]=>
+ int(%d)
+ [u"mode"]=>
+ int(%d)
+ [u"nlink"]=>
+ int(%d)
+ [u"uid"]=>
+ int(%d)
+ [u"gid"]=>
+ int(%d)
+ [u"rdev"]=>
+ int(%d)
+ [u"size"]=>
+ int(%d)
+ [u"atime"]=>
+ int(%d)
+ [u"mtime"]=>
+ int(%d)
+ [u"ctime"]=>
+ int(%d)
+ [u"blksize"]=>
+ int(-%d)
+ [u"blocks"]=>
+ int(-%d)
+}
+
+*** Done ***
diff --git a/ext/standard/tests/file/stat_variation8-win32.phpt b/ext/standard/tests/file/stat_variation8-win32.phpt
new file mode 100644
index 0000000000..1eeb2cac72
--- /dev/null
+++ b/ext/standard/tests/file/stat_variation8-win32.phpt
@@ -0,0 +1,85 @@
+--TEST--
+Test stat() functions: usage variations - effects of truncate()
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) != 'WIN') {
+ die('skip.. only for Windows');
+}
+?>
+--FILE--
+<?php
+
+/*
+ * Prototype: array stat ( string $filename );
+ * Description: Gives information about a file
+ */
+
+/* test the effects of truncate() on stats of file */
+
+
+$file_path = dirname(__FILE__);
+require "$file_path/file.inc";
+
+
+/* create temp file and directory */
+
+$filename = "$file_path/stat_variation8.tmp";
+$file_handle = fopen($filename, "w"); // temp file
+fclose($file_handle);
+
+
+echo "\n*** Testing stat(): on file by truncating it to given size ***\n";
+
+// create temp file
+$file_handle = fopen($filename, "w");
+fclose($file_handle);
+
+clearstatcache();
+$old_stat = stat($filename);
+// clear the cache
+sleep(2);
+
+// opening file in r/w mode
+$file_handle = fopen($filename, "r+");
+var_dump( ftruncate($file_handle, 512) ); // truncate it
+fclose($file_handle);
+
+clearstatcache();
+$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(7, 8, 9, 'size', 'atime', 'mtime');
+var_dump( compare_stats($old_stat, $new_stat, $affected_members, '!=') );
+
+// clear the stat
+clearstatcache(); // clear previous size value in cache
+
+echo "\n*** Done ***";
+?>
+
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+unlink("$file_path/stat_variation8.tmp");
+?>
+--EXPECTF--
+*** Testing stat(): on file by truncating it to given size ***
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+
+*** Done ***
+
+--UEXPECTF--
+*** Testing stat(): on file by truncating it to given size ***
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+
+*** Done ***