summaryrefslogtreecommitdiff
path: root/ext/standard/tests/file/005_variation.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests/file/005_variation.phpt')
-rw-r--r--ext/standard/tests/file/005_variation.phpt260
1 files changed, 260 insertions, 0 deletions
diff --git a/ext/standard/tests/file/005_variation.phpt b/ext/standard/tests/file/005_variation.phpt
new file mode 100644
index 0000000..7e5eedc
--- /dev/null
+++ b/ext/standard/tests/file/005_variation.phpt
@@ -0,0 +1,260 @@
+--TEST--
+Test fileatime(), filemtime(), filectime() & touch() functions : usage variation
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) == 'WIN') {
+ die('skip Do not run on Windows');
+}
+if (getenv("SKIP_SLOW_TESTS")) {
+ die("skip slow test");
+}
+?>
+--FILE--
+<?php
+/*
+ Prototype: int fileatime ( string $filename );
+ Description: Returns the time the file was last accessed, or FALSE
+ in case of an error. The time is returned as a Unix timestamp.
+
+ Prototype: int filemtime ( string $filename );
+ Description: Returns the time the file was last modified, or FALSE
+ in case of an error.
+
+ Prototype: int filectime ( string $filename );
+ Description: Returns the time the file was last changed, or FALSE
+ in case of an error. The time is returned as a Unix timestamp.
+
+ Prototype: bool touch ( string $filename [, int $time [, int $atime]] );
+ Description: Attempts to set the access and modification times of the file
+ named in the filename parameter to the value given in time.
+*/
+
+/*
+ Prototype: void stat_fn(string $filename);
+ Description: Prints access, modification and change times of a file
+*/
+function stat_fn( $filename ) {
+ echo "-- File access time is => ";
+ print( @date( 'Y:M:D:H:i:s', fileatime($filename) ) )."\n";
+ clearstatcache();
+ echo "-- File modification time is => ";
+ print( @date( 'Y:M:D:H:i:s', filemtime($filename) ) )."\n";
+ clearstatcache();
+ echo "-- inode change time is => ";
+ print( @date( 'Y:M:D:H:i:s', filectime($filename) ) )."\n";
+ clearstatcache();
+
+}
+
+echo "*** Testing fileattime(), filemtime(), filectime() & touch() : usage variations ***\n";
+$file_path = dirname(__FILE__);
+// create files
+$file_handle = fopen("$file_path/005_variation1.tmp", "w");
+fclose($file_handle);
+stat_fn("$file_path/005_variation1.tmp");
+sleep(2);
+
+$file_handle = fopen("$file_path/005_variation2.tmp", "w");
+fclose($file_handle);
+stat_fn("$file_path/005_variation2.tmp");
+sleep(2);
+
+$file_handle = fopen("$file_path/005_variation3.tmp", "w");
+fclose($file_handle);
+stat_fn("$file_path/005_variation3.tmp");
+
+// delete files
+unlink("$file_path/005_variation1.tmp");
+unlink("$file_path/005_variation2.tmp");
+unlink("$file_path/005_variation3.tmp");
+
+echo "\n-- Checking different times, just after creating the file --\n";
+$file_name = "$file_path/005_variation1.tmp";
+$file_write_handle = fopen($file_name, "w");
+fclose($file_write_handle);
+stat_fn($file_name);
+sleep(2);
+
+/* filectime + 2 */
+echo "\n-- Checking different times, after changing the file permission --\n";
+chmod($file_name, 0777);
+stat_fn($file_name);
+sleep(2);
+
+/* filemtime + 2 & filectime + 2 */
+echo "\n-- Checking different times, after writing into the file --\n";
+$file_write_handle = fopen($file_name, "w");
+fwrite($file_write_handle, "Hello, world");
+fclose($file_write_handle);
+stat_fn($file_name);
+sleep(2);
+
+/* fileatime + 2 */
+echo "\n-- Checking different times, after reading from the file --\n";
+$file_read_handle = fopen($file_name ,"r");
+fread($file_read_handle, 10);
+fclose( $file_read_handle);
+stat_fn($file_name);
+sleep(2);
+
+/* No change */
+echo "\n-- Checking different times, after creating a softlink to the file --\n";
+symlink($file_name, "$file_path/005_variation_softlink.tmp");
+stat_fn($file_name);
+sleep(2);
+
+/* filectime + 2 */
+echo "\n-- Checking different times, after creating a hardlink to the file --\n";
+link($file_name, "$file_path/005_variation_hardlink.tmp");
+stat_fn($file_name);
+sleep(2);
+
+/* No change */
+echo "\n-- Checking different times, after making a copy of the file --\n";
+$file_copy = "$file_path/005_variation_copy.tmp";
+copy($file_name, $file_copy);
+stat_fn($file_name);
+sleep(2);
+
+/* fileatime + 2 */
+echo "\n-- Checking different times, after performing is_file() operation on the file --\n";
+is_file($file_name);
+stat_fn($file_name);
+sleep(2);
+
+
+echo "\n*** Testing touch() function with different time values ***\n";
+$file_name2 = $file_path."/005_variation_touch.tmp";
+$file_handle = fopen($file_name2, "w");
+fclose($file_handle);
+sleep(2);
+
+/* Time is not mentioned */
+var_dump( touch($file_name2) ); //set to current system time
+stat_fn($file_name2);
+sleep(2);
+
+/* set to access(creation time of the file) time */
+var_dump( touch($file_name2, @date(fileatime($file_name2))) );
+stat_fn($file_name2);
+sleep(2);
+
+/* set to access time of $file_name2 */
+var_dump( touch($file_path."/005_variation_touch_fly.tmp", @date(fileatime($file_name2)), time()) );
+stat_fn($file_name2);
+sleep(2);
+
+/* set to default value, with Invalid timestamps */
+var_dump( touch($file_name2, 10) );
+stat_fn($file_name2);
+var_dump( touch($file_name2, 10, 20) );
+stat_fn($file_name2);
+
+/* touch() after renaming the file */
+rename($file_name2, "$file_path/005_variation_touch_new.tmp");
+stat_fn("$file_path/005_variation_touch_new.tmp");
+
+echo "Done\n";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+if(file_exists($file_path."/005_variation_softlink.tmp")) {
+ unlink($file_path."/005_variation_softlink.tmp");
+}
+if(file_exists($file_path."/005_variation_hardlink.tmp")) {
+ unlink($file_path."/005_variation_hardlink.tmp");
+}
+if(file_exists($file_path."/005_variation1.tmp")) {
+ unlink($file_path."/005_variation1.tmp");
+}
+if(file_exists($file_path."/005_variation_copy.tmp")) {
+ unlink($file_path."/005_variation_copy.tmp");
+}
+if(file_exists($file_path."/005_variation_touch.tmp")) {
+ unlink($file_path."/005_variation_touch.tmp");
+}
+if(file_exists($file_path."/005_variation_touch_fly.tmp")) {
+ unlink($file_path."/005_variation_touch_fly.tmp");
+}
+if(file_exists($file_path."/005_variation_touch_new.tmp")) {
+ unlink($file_path."/005_variation_touch_new.tmp");
+}
+?>
+--EXPECTF--
+*** Testing fileattime(), filemtime(), filectime() & touch() : usage variations ***
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+
+-- Checking different times, just after creating the file --
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+
+-- Checking different times, after changing the file permission --
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+
+-- Checking different times, after writing into the file --
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+
+-- Checking different times, after reading from the file --
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+
+-- Checking different times, after creating a softlink to the file --
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+
+-- Checking different times, after creating a hardlink to the file --
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+
+-- Checking different times, after making a copy of the file --
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+
+-- Checking different times, after performing is_file() operation on the file --
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+
+*** Testing touch() function with different time values ***
+bool(true)
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+bool(true)
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+bool(true)
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+bool(true)
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+bool(true)
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+-- File access time is => %d:%s:%s:%d:%d:%d
+-- File modification time is => %d:%s:%s:%d:%d:%d
+-- inode change time is => %d:%s:%s:%d:%d:%d
+Done