--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$modetrue);
   
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$modetrue);
   
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$modetrue);
   
gzpassthru($h);
   
gzclose($h);
   echo 
"\n";
   
   
unlink($firstFile);
   
unlink($secondFile);
   
   
//should read the file in working dir
   
$h gzopen($filename$modetrue);
   
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$modetrue);
   
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===