php-src/ext/zlib/tests/gzopen_variation4.phpt

162 lines
4.1 KiB
PHP

--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
/* Prototype : resource gzopen(string filename, string mode [, int use_include_path])
* Description: Open a .gz-file and return a .gz-file pointer
* Source code: ext/zlib/zlib.c
* Alias to functions:
*/
echo "*** Testing gzopen() : usage variation ***\n";
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);
}
restore_include_path();
// 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);
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);
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);
gzpassthru($h);
gzclose($h);
echo "\n";
unlink($firstFile);
unlink($secondFile);
//should read the file in working dir
$h = gzopen($filename, $mode, true);
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);
gzpassthru($h);
gzclose($h);
echo "\n";
//cleanup
unlink($filename);
unlink($scriptFile);
}
?>
===DONE===
--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: gzpassthru() expects parameter 1 to be resource, boolean given in %s on line %d
Warning: gzclose() expects parameter 1 to be resource, boolean given 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: gzpassthru() expects parameter 1 to be resource, boolean given in %s on line %d
Warning: gzclose() expects parameter 1 to be resource, boolean given 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: gzpassthru() expects parameter 1 to be resource, boolean given in %s on line %d
Warning: gzclose() expects parameter 1 to be resource, boolean given 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: gzpassthru() expects parameter 1 to be resource, boolean given in %s on line %d
Warning: gzclose() expects parameter 1 to be resource, boolean given 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: gzpassthru() expects parameter 1 to be resource, boolean given in %s on line %d
Warning: gzclose() expects parameter 1 to be resource, boolean given 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
===DONE===