diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
---|---|---|
committer | <> | 2013-04-03 16:25:08 +0000 |
commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /ext/standard/tests/file/fopen_variation5.phpt | |
download | php2-master.tar.gz |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/standard/tests/file/fopen_variation5.phpt')
-rw-r--r-- | ext/standard/tests/file/fopen_variation5.phpt | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/ext/standard/tests/file/fopen_variation5.phpt b/ext/standard/tests/file/fopen_variation5.phpt new file mode 100644 index 0000000..975560f --- /dev/null +++ b/ext/standard/tests/file/fopen_variation5.phpt @@ -0,0 +1,151 @@ +--TEST-- +Test fopen() function : variation: use include path and stream context (absolute directories in path) +--CREDITS-- +Dave Kelsey <d_kelsey@uk.ibm.com> +--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: + */ + + + +//create the include directory structure +$thisTestDir = basename(__FILE__, ".php") . ".dir"; +mkdir($thisTestDir); +chdir($thisTestDir); + +$workingDir = "workdir"; +$filename = basename(__FILE__, ".php") . ".tmp"; +$scriptDir = dirname(__FILE__); +$baseDir = getcwd(); +$secondFile = $baseDir."/dir2/".$filename; +$firstFile = "../dir1/".$filename; +$scriptFile = $scriptDir.'/'.$filename; + +$newdirs = array("dir1", "dir2", "dir3"); +$pathSep = ":"; +$newIncludePath = ""; +if(substr(PHP_OS, 0, 3) == 'WIN' ) { + $pathSep = ";"; +} +foreach($newdirs as $newdir) { + mkdir($newdir); + $newIncludePath .= $baseDir.'/'.$newdir.$pathSep; +} +mkdir($workingDir); +chdir($workingDir); + +//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_fopen($mode); +} +restore_include_path(); + +// remove the directory structure +chdir($baseDir); +rmdir($workingDir); +foreach($newdirs as $newdir) { + rmdir($newdir); +} + +chdir(".."); +rmdir($thisTestDir); + + +function test_fopen($mode) { + global $scriptFile, $secondFile, $firstFile, $filename; + + // create a file in the middle directory + $h = fopen($secondFile, "w"); + fwrite($h, (binary) "in dir2"); + fclose($h); + + echo "\n** testing with mode=$mode **\n"; + // should read dir2 file + $h = fopen($filename, $mode, true); + fpassthru($h); + fclose($h); + echo "\n"; + + //create a file in dir1 + $h = fopen($firstFile, "w"); + fwrite($h, (binary) "in dir1"); + fclose($h); + + //should now read dir1 file + $h = fopen($filename, $mode, true); + fpassthru($h); + fclose($h); + echo "\n"; + + // create a file in working directory + $h = fopen($filename, "w"); + fwrite($h, (binary) "in working dir"); + fclose($h); + + //should still read dir1 file + $h = fopen($filename, $mode, true); + fpassthru($h); + fclose($h); + echo "\n"; + + unlink($firstFile); + unlink($secondFile); + + //should read the file in working dir + $h = fopen($filename, $mode, true); + fpassthru($h); + fclose($h); + echo "\n"; + + // create a file in the script directory + $h = fopen($scriptFile, "w"); + fwrite($h, (binary) "in script dir"); + fclose($h); + + //should read the file in script dir + $h = fopen($filename, $mode, true); + fpassthru($h); + fclose($h); + echo "\n"; + + //cleanup + unlink($filename); + unlink($scriptFile); + +} + +?> +===DONE=== +--EXPECTF-- + +--- testing include path --- + +** testing with mode=r ** +in dir2 +in dir1 +in dir1 +in working dir +in script dir + +** testing with mode=r+ ** +in dir2 +in dir1 +in dir1 +in working dir +in script dir + +** testing with mode=rt ** +in dir2 +in dir1 +in dir1 +in working dir +in script dir +===DONE=== + |