summaryrefslogtreecommitdiff
path: root/ext/standard/tests/file/copy_variation8.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests/file/copy_variation8.phpt')
-rw-r--r--ext/standard/tests/file/copy_variation8.phpt176
1 files changed, 176 insertions, 0 deletions
diff --git a/ext/standard/tests/file/copy_variation8.phpt b/ext/standard/tests/file/copy_variation8.phpt
new file mode 100644
index 0000000..63f57f3
--- /dev/null
+++ b/ext/standard/tests/file/copy_variation8.phpt
@@ -0,0 +1,176 @@
+--TEST--
+Test copy() function: usage variations - copying links across dirs
+--SKIPIF--
+<?php
+if(substr(PHP_OS, 0, 3) == "WIN")
+ die("skip Invalid for Windows");
+?>
+--FILE--
+<?php
+/* Prototype: bool copy ( string $source, string $dest );
+ Description: Makes a copy of the file source to dest.
+ Returns TRUE on success or FALSE on failure.
+*/
+
+/* Trying to copy the links across dir paths given in various notations
+ and dirs having limited access */
+
+echo "*** Testing copy() function: copying links across different directories ***\n";
+
+$file_path = dirname(__FILE__);
+
+$base_dir = $file_path."/copy_variation8";
+mkdir($base_dir);
+$sub_dir = $base_dir."/copy_variation8_sub";
+mkdir($sub_dir);
+$dirname_with_blank = $sub_dir."/copy variation6";
+mkdir($dirname_with_blank);
+
+$file = $file_path."/copy_variation8.tmp";
+fclose( fopen($file, "w") );
+
+$symlink = $file_path."/copy_variation8_symlink.tmp";
+$hardlink = $file_path."/copy_variation8_hardlink.tmp";
+
+symlink($file, $symlink); //creating symlink
+link($file, $hardlink); //creating hardlink
+
+$dests = array(
+ $base_dir."/copy_copy_variation8.tmp",
+ $base_dir."/copy_variation8_sub/copy_copy_variation8.tmp",
+ "$sub_dir/copy_copy_variation8.tmp",
+ "$sub_dir/../copy_copy_variation8.tmp",
+ "$sub_dir/../copy_variation8_sub/copy_copy_variation8.tmp",
+ "$sub_dir/..///../copy_copy_variation8.tmp",
+ "$sub_dir/..///../*",
+ "$dirname_with_blank/copy_copy_variation8.tmp"
+);
+
+$count = 1;
+foreach($dests as $dest) {
+ echo "\n-- Iteration $count --\n";
+ echo "- With symlink -\n";
+ var_dump( copy($symlink, $dest) );
+ var_dump( file_exists($dest) );
+ var_dump( is_link($dest) ); //expected: bool(false)
+ var_dump( is_file($dest) ); //expected: bool(true)
+ clearstatcache();
+ unlink("$dest");
+ echo "- With hardlink -\n";
+ var_dump( copy($hardlink, $dest) );
+ var_dump( file_exists($dest) );
+ var_dump( is_link($dest) ); //expected: bool(flase)
+ var_dump( is_file($dest) ); //expected: bool(true)
+ clearstatcache();
+ unlink("$dest");
+ $count++;
+}
+
+unlink($symlink);
+unlink($hardlink);
+unlink($file);
+rmdir($dirname_with_blank);
+rmdir($sub_dir);
+rmdir($base_dir);
+
+echo "*** Done ***\n";
+?>
+--EXPECTF--
+*** Testing copy() function: copying links across different directories ***
+
+-- Iteration 1 --
+- With symlink -
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+- With hardlink -
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+
+-- Iteration 2 --
+- With symlink -
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+- With hardlink -
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+
+-- Iteration 3 --
+- With symlink -
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+- With hardlink -
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+
+-- Iteration 4 --
+- With symlink -
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+- With hardlink -
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+
+-- Iteration 5 --
+- With symlink -
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+- With hardlink -
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+
+-- Iteration 6 --
+- With symlink -
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+- With hardlink -
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+
+-- Iteration 7 --
+- With symlink -
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+- With hardlink -
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+
+-- Iteration 8 --
+- With symlink -
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+- With hardlink -
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+*** Done ***