summaryrefslogtreecommitdiff
path: root/ext/zlib/tests/gzopen_variation4.phpt
blob: 3fe924a282fc05037b0a6fdb8a85f2685ce3b2ce (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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
--TEST--
Test gzopen() function : variation: use include path (relative directories in path)
--SKIPIF--
<?php
if (!extension_loaded("zlib")) {
	print "skip - ZLIB extension not loaded";
}
?>
--FILE--
<?php
echo "*** Testing gzopen() : usage variation ***\n";

$testName = 'gzopen_variation4';
require_once('reading_include_path.inc');

//define the files to go into these directories, create one in dir2
echo "\n--- testing include path ---\n";
set_include_path($newIncludePath);
$modes = array("r", "r+", "rt");
foreach($modes as $mode) {
    test_gzopen($mode);
}

// remove the directory structure
chdir($baseDir);
rmdir($workingDir);
foreach($newdirs as $newdir) {
    rmdir($newdir);
}

chdir("..");
rmdir($thisTestDir);

function test_gzopen($mode) {
    global $scriptFile, $secondFile, $firstFile, $filename;

    // create a file in the middle directory
    $h = gzopen($secondFile, "w");
    gzwrite($h, "This is a file in dir2");
    gzclose($h);

    echo "\n** testing with mode=$mode **\n";
    // should read dir2 file
    $h = gzopen($filename, $mode, true);
    if ($h) {
        gzpassthru($h);
        gzclose($h);
        echo "\n";
    }

    //create a file in dir1
    $h = gzopen($firstFile, "w");
    gzwrite($h, "This is a file in dir1");
    gzclose($h);

    //should now read dir1 file
    $h = gzopen($filename, $mode, true);
    if ($h) {
        gzpassthru($h);
        gzclose($h);
        echo "\n";
    }

    // create a file in working directory
    $h = gzopen($filename, "w");
    gzwrite($h, "This is a file in working dir");
    gzclose($h);

    //should still read dir1 file
    $h = gzopen($filename, $mode, true);
    if ($h) {
        gzpassthru($h);
        gzclose($h);
        echo "\n";
    }

    unlink($firstFile);
    unlink($secondFile);

    //should read the file in working dir
    $h = gzopen($filename, $mode, true);
    if ($h) {
        gzpassthru($h);
        gzclose($h);
        echo "\n";
    }

    // create a file in the script directory
    $h = gzopen($scriptFile, "w");
    gzwrite($h, "This is a file in script dir");
    gzclose($h);

    //should read the file in script dir
    $h = gzopen($filename, $mode, true);
    if ($h) {
        gzpassthru($h);
        gzclose($h);
        echo "\n";
    }

    //cleanup
    unlink($filename);
    unlink($scriptFile);
}

?>
--EXPECTF--
*** Testing gzopen() : usage variation ***

--- testing include path ---

** testing with mode=r **
This is a file in dir2
This is a file in dir1
This is a file in dir1
This is a file in working dir
This is a file in script dir

** testing with mode=r+ **

Warning: gzopen(): Cannot open a zlib stream for reading and writing at the same time! in %s on line %d

Warning: gzopen(): Cannot open a zlib stream for reading and writing at the same time! in %s on line %d

Warning: gzopen(): Cannot open a zlib stream for reading and writing at the same time! in %s on line %d

Warning: gzopen(): Cannot open a zlib stream for reading and writing at the same time! in %s on line %d

Warning: gzopen(): Cannot open a zlib stream for reading and writing at the same time! in %s on line %d

** testing with mode=rt **
This is a file in dir2
This is a file in dir1
This is a file in dir1
This is a file in working dir
This is a file in script dir