]> granicus.if.org Git - php/commitdiff
New testcases for lstat() and stat() functions
authorRaghubansh Kumar <kraghuba@php.net>
Sat, 21 Jul 2007 17:35:37 +0000 (17:35 +0000)
committerRaghubansh Kumar <kraghuba@php.net>
Sat, 21 Jul 2007 17:35:37 +0000 (17:35 +0000)
ext/standard/tests/file/lstat_stat_variation1.phpt [new file with mode: 0755]
ext/standard/tests/file/lstat_stat_variation2.phpt [new file with mode: 0755]
ext/standard/tests/file/lstat_stat_variation3.phpt [new file with mode: 0755]
ext/standard/tests/file/lstat_stat_variation4.phpt [new file with mode: 0755]
ext/standard/tests/file/lstat_stat_variation5.phpt [new file with mode: 0755]
ext/standard/tests/file/lstat_stat_variation6.phpt [new file with mode: 0755]

diff --git a/ext/standard/tests/file/lstat_stat_variation1.phpt b/ext/standard/tests/file/lstat_stat_variation1.phpt
new file mode 100755 (executable)
index 0000000..a2cfe80
--- /dev/null
@@ -0,0 +1,114 @@
+--TEST--
+Test lstat() and stat() functions: usage variations - effects of rename() 
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) == 'WIN') {
+    die('skip.. lstat() not available on Windows');
+}
+?>
+--FILE--
+<?php
+/* Prototype: array lstat ( string $filename );
+   Description: Gives information about a file or symbolic link
+
+   Prototype: array stat ( string $filename );
+   Description: Gives information about a file
+*/
+
+/* test the effects of rename() on stats of dir/file/link */
+
+$file_path = dirname(__FILE__);
+require "$file_path/file.inc";
+
+/* create temp file, link and directory */
+mkdir("$file_path/lstat_stat_variation1/");  // temp dir
+$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";
+$file_path = dirname(__FILE__);
+$old_filename = "$file_path/lstat_stat_variation1.tmp";
+$new_filename = "$file_path/lstat_stat_variation1a.tmp";
+$old_stat = stat($old_filename);
+clearstatcache();
+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/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 ---";
+?>
+
+--CLEAN--
+<?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 --
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+
+--- Done ---
diff --git a/ext/standard/tests/file/lstat_stat_variation2.phpt b/ext/standard/tests/file/lstat_stat_variation2.phpt
new file mode 100755 (executable)
index 0000000..dea6e6d
--- /dev/null
@@ -0,0 +1,123 @@
+--TEST--
+Test lstat() and stat() functions: usage variations - effects of touch() 
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) == 'WIN') {
+    die('skip.. lstat() not available on Windows');
+}
+?>
+--FILE--
+<?php
+/* Prototype: array lstat ( string $filename );
+   Description: Gives information about a file or symbolic link
+
+   Prototype: array stat ( string $filename );
+   Description: Gives information about a file
+*/
+
+/* test the effects of touch() on stats of dir/file/link */
+
+$file_path = dirname(__FILE__);
+require "$file_path/file.inc";
+
+
+/* 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
+clearstatcache();
+sleep(2);
+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
+$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);
+// 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 ---";
+?>
+
+--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");
+?>
+--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 --
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+
+--- Done ---
diff --git a/ext/standard/tests/file/lstat_stat_variation3.phpt b/ext/standard/tests/file/lstat_stat_variation3.phpt
new file mode 100755 (executable)
index 0000000..e523c07
--- /dev/null
@@ -0,0 +1,104 @@
+--TEST--
+Test lstat() and stat() functions: usage variations - effects with writing & creating/deleting file/subdir
+
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) == 'WIN') {
+    die('skip.. lstat() not available on Windows');
+}
+?>
+--FILE--
+<?php
+/* Prototype: array lstat ( string $filename );
+   Description: Gives information about a file or symbolic link
+
+   Prototype: array stat ( string $filename );
+   Description: Gives information about a file
+*/
+
+$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
+fclose($fp);
+
+symlink("$file_path/lstat_stat_variation3.tmp", "$file_path/lstat_stat_variation3_link.tmp"); // temp link
+
+// 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);
+clearstatcache();
+fwrite($fh, "Hello World");
+$new_stat = stat($file_name);
+
+// 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, ">"));
+
+echo "\n--- Done ---";
+?>
+
+--CLEAN--
+<?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");
+?>
+--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)
+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/lstat_stat_variation4.phpt b/ext/standard/tests/file/lstat_stat_variation4.phpt
new file mode 100755 (executable)
index 0000000..1051c9f
--- /dev/null
@@ -0,0 +1,163 @@
+--TEST--
+Test lstat() and stat() functions: usage variations - effects of is_dir(), is_file() and is_link()  
+
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) == 'WIN') {
+   die('skip.. lstat() not available on Windows');
+}
+?>
+--FILE--
+<?php
+/* Prototype: array lstat ( string $filename );
+   Description: Gives information about a file or symbolic link
+
+   Prototype: array stat ( string $filename );
+   Description: Gives information about a file
+*/
+
+/* test the effects of is_dir(), is_file() and is_link() on stats of dir/file/link */
+
+$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
+
+$filename = "$file_path/lstat_stat_variation4.tmp";
+$fp = fopen($filename, "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);
+// clear the cache
+clearstatcache();
+sleep(2);
+var_dump( is_dir($dirname) );
+$new_stat = stat($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_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
+clearstatcache();
+
+echo "\n--- Done ---";
+?>
+
+--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 ***
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+
+--- Done ---
diff --git a/ext/standard/tests/file/lstat_stat_variation5.phpt b/ext/standard/tests/file/lstat_stat_variation5.phpt
new file mode 100755 (executable)
index 0000000..0a6b446
--- /dev/null
@@ -0,0 +1,116 @@
+--TEST--
+Test lstat() and stat() functions: usage variations - effects  with changing permissions
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) == 'WIN') {
+    die('skip.. lstat() not available on Windows');
+}
+?>
+--FILE--
+<?php
+/* Prototype: array lstat ( string $filename );
+   Description: Gives information about a file or symbolic link
+
+   Prototype: array stat ( string $filename );
+   Description: Gives information about a file
+*/
+
+/* test the effects on stats with changing permissions of dir/file/link */
+
+$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);
+
+// temp link
+$linkname = "$file_path/lstat_stat_variation5_link.tmp";
+symlink($filename, $linkname);
+
+/* 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
+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();
+
+// 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
+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 ---";
+?>
+
+--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 ***
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+
+--- Done ---
diff --git a/ext/standard/tests/file/lstat_stat_variation6.phpt b/ext/standard/tests/file/lstat_stat_variation6.phpt
new file mode 100755 (executable)
index 0000000..ea3380b
--- /dev/null
@@ -0,0 +1,428 @@
+--TEST--
+Test lstat() and stat() functions: usage variations - dir/file/link names in objects
+
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) == 'WIN') {
+    die('skip.. lstat() not available on Windows');
+}
+?>
+--FILE--
+<?php
+/* Prototype: array lstat ( string $filename );
+   Description: Gives information about a file or symbolic link
+
+   Prototype: array stat ( string $filename );
+   Description: Gives information about a file
+*/
+
+/* test for stats of dir/file/link when their names are stored in objects */
+
+$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");
+fclose($fp);
+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/lstat_stat_variation6a/");
+var_dump( stat($obj2->var_name) );
+
+echo "\n--- Done ---";
+?>
+
+--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/");
+?>
+
+--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)
+}
+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 ---