1--TEST--
2Test copy() function: usage variations - destination file names(case sensitive)
3--SKIPIF--
4<?php
5if( (stristr(PHP_OS, "Darwin")) || (stristr(PHP_OS, "Win")) )
6  die("skip do not run on MacOS/Windows");
7?>
8--FILE--
9<?php
10/* Prototype: bool copy ( string $source, string $dest );
11   Description: Makes a copy of the file source to dest.
12     Returns TRUE on success or FALSE on failure.
13*/
14
15/* Test copy() function: Checking case sensitivity in creation of destination file names
16     and the existence and size of destination files
17*/
18
19echo "*** Test copy() function: checking case sensitivity in creation of destination file names ***\n";
20$file_path = __DIR__;
21$src_file_name = $file_path."/copy_variation5.tmp";
22$file_handle = fopen($src_file_name, "w");
23fwrite( $file_handle, str_repeat("Hello2World...\n", 100) );
24fclose($file_handle);
25
26/* array of destination file names */
27$dest_files = array(
28
29  /* Checking case sensitiveness */
30  "COPY.tmp",
31  "COPY.TMP",
32  "CopY.TMP"
33);
34
35echo "Size of the source file before copy operation => ";
36var_dump( filesize($src_file_name) );
37clearstatcache();
38
39echo "\n-- Now applying copy() on source file to create copies --";
40$count = 1;
41foreach($dest_files as $dest_file) {
42
43  echo "\n-- Iteration $count --\n";
44  $dest_file_name = $file_path."/$dest_file";
45
46  echo "Copy operation => ";
47  var_dump( copy($src_file_name, $dest_file_name) );
48
49  echo "Existence of destination file => ";
50  var_dump( file_exists($dest_file_name) );
51
52  echo "Destination file name => ";
53  print($dest_file_name);
54  echo "\n";
55
56  echo "Size of source file => ";
57  var_dump( filesize($src_file_name) );
58  clearstatcache();
59
60  echo "Size of destination file => ";
61  var_dump( filesize($dest_file_name) );
62  clearstatcache();
63
64  $count++;
65}
66
67$count = 1;
68foreach($dest_files as $dest_file) {
69  unlink($file_path."/".$dest_file);
70  $count++;
71}
72
73echo "*** Done ***\n";
74?>
75--CLEAN--
76<?php
77unlink(__DIR__."/copy_variation5.tmp");
78?>
79--EXPECTF--
80*** Test copy() function: checking case sensitivity in creation of destination file names ***
81Size of the source file before copy operation => int(1500)
82
83-- Now applying copy() on source file to create copies --
84-- Iteration 1 --
85Copy operation => bool(true)
86Existence of destination file => bool(true)
87Destination file name => %s/COPY.tmp
88Size of source file => int(1500)
89Size of destination file => int(1500)
90
91-- Iteration 2 --
92Copy operation => bool(true)
93Existence of destination file => bool(true)
94Destination file name => %s/COPY.TMP
95Size of source file => int(1500)
96Size of destination file => int(1500)
97
98-- Iteration 3 --
99Copy operation => bool(true)
100Existence of destination file => bool(true)
101Destination file name => %s/CopY.TMP
102Size of source file => int(1500)
103Size of destination file => int(1500)
104*** Done ***
105