summaryrefslogtreecommitdiff
path: root/ext/standard/tests/file/fopen_variation19.phpt
blob: 031ba45734e037b2f78b76331130541c0c6a3940 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
--TEST--
Test fopen() function : variation: test opening linked files
--CREDITS--
Dave Kelsey <d_kelsey@uk.ibm.com>
--SKIPIF--
<?php
if(substr(PHP_OS, 0, 3) == "WIN")
  die("skip Not for Windows");
?>
--FILE--
<?php
/* Prototype  : resource fopen(string filename, string mode [, bool use_include_path [, resource context]])
 * Description: Open a file or a URL and return a file pointer 
 * Source code: ext/standard/file.c
 * Alias to functions: 
 */

$tmpDir = 'fopenVar19.Dir';
$realFilename = __FILE__.'.real';
$sortFilename = __FILE__.'.soft';
$hardFilename = __FILE__.'.hard';
$linkOfLink = __FILE__.'.soft2';

echo "*** Testing fopen() : variation ***\n";
// start the test
mkdir($tmpDir);
chdir($tmpDir);

$h = fopen($realFilename, "w");
fwrite($h, "Hello World");
fclose($h);

symlink($realFilename, $sortFilename);
symlink($sortFilename, $linkOfLink);
link($realFilename, $hardFilename);



echo "*** testing reading of links ***\n";
echo "soft link:";
readFile2($sortFilename);
echo "hard link:";
readFile2($hardFilename);
echo "link of link:";
readFile2($linkOfLink);

echo "*** test appending to links ***\n";
echo "soft link:";
appendFile($sortFilename);
echo "hard link:";
appendFile($hardFilename);
echo "link of link:";
appendFile($linkOfLink);

echo "*** test overwriting links ***\n";
echo "soft link:";
writeFile($sortFilename);
echo "hard link:";
writeFile($hardFilename);
echo "link of link:";
writeFile($linkOfLink);

unlink($linkOfLink);
unlink($sortFilename);
unlink($hardFilename);
unlink($realFilename);
chdir("..");
rmdir($tmpDir);

function readFile2($file) {
   $h = fopen($file, 'r');
   fpassthru($h);
   fclose($h);
   echo "\n";
}

function appendFile($file) {
   $h = fopen($file, 'a+');
   fwrite($h, ' again!');
   fseek($h, 0);
   fpassthru($h);
   fclose($h);
   echo "\n";
}

function writeFile($file) {
   $h = fopen($file, 'w');
   fwrite($h, 'Goodbye World');
   fclose($h);
   readFile2($file);
}


?>
===DONE===
--EXPECT--
*** Testing fopen() : variation ***
*** testing reading of links ***
soft link:Hello World
hard link:Hello World
link of link:Hello World
*** test appending to links ***
soft link:Hello World again!
hard link:Hello World again! again!
link of link:Hello World again! again! again!
*** test overwriting links ***
soft link:Goodbye World
hard link:Goodbye World
link of link:Goodbye World
===DONE===