diff options
Diffstat (limited to 'ext/standard/tests/file/tempnam_variation3-win32.phpt')
-rw-r--r-- | ext/standard/tests/file/tempnam_variation3-win32.phpt | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/ext/standard/tests/file/tempnam_variation3-win32.phpt b/ext/standard/tests/file/tempnam_variation3-win32.phpt new file mode 100644 index 0000000..fb457cb --- /dev/null +++ b/ext/standard/tests/file/tempnam_variation3-win32.phpt @@ -0,0 +1,115 @@ +--TEST-- +Test tempnam() function: usage variations - obscure prefixes +--SKIPIF-- +<?php +if(substr(PHP_OS, 0, 3) != "WIN") + die("skip run only on Windows"); +?> +--FILE-- +<?php +/* Prototype: string tempnam ( string $dir, string $prefix ); + Description: Create file with unique file name. +*/ + +/* Passing invalid/non-existing args for $prefix */ + +echo "*** Testing tempnam() with obscure prefixes ***\n"; +$file_path = dirname(__FILE__)."/tempnamVar3"; +if (!mkdir($file_path)) { + echo "Failed, cannot create temp dir $filepath\n"; + exit(1); +} + +$file_path = realpath($file_path); + +/* An array of prefixes */ +$names_arr = array( + /* Valid args (casting)*/ + -1, + TRUE, + FALSE, + NULL, + "", + " ", + "\0", + /* Invalid args */ + array(), + + /* Valid args*/ + /* prefix with path separator of a non existing directory*/ + "/no/such/file/dir", + "php/php" +); + +$res_arr = array( + /* Invalid args */ + true, + true, + true, + true, + true, + true, + true, + false, + + /* prefix with path separator of a non existing directory*/ + true, + true +); + +for( $i=0; $i<count($names_arr); $i++ ) { + echo "-- Iteration $i --\n"; + $file_name = tempnam($file_path, $names_arr[$i]); + + /* creating the files in existing dir */ + if (file_exists($file_name) && !$res_arr[$i]) { + echo "Failed\n"; + } + if ($res_arr[$i]) { + $file_dir = dirname($file_name); + if (realpath($file_dir) == $file_path || realpath($file_dir . "\\") == $file_path) { + echo "OK\n"; + } else { + echo "Failed, not created in the correct directory " . realpath($file_dir) . ' vs ' . $file_path ."\n"; + } + + if (!is_writable($file_name)) { + printf("%o\n", fileperms($file_name) ); + + } + } else { + echo "OK\n"; + } + @unlink($file_name); +} + +rmdir($file_path); +echo "\n*** Done. ***\n"; +?> +--EXPECTF-- +*** Testing tempnam() with obscure prefixes *** +-- Iteration 0 -- +OK +-- Iteration 1 -- +OK +-- Iteration 2 -- +OK +-- Iteration 3 -- +OK +-- Iteration 4 -- +OK +-- Iteration 5 -- +Failed, not created in the correct directory %s vs %s +0 +-- Iteration 6 -- +OK +-- Iteration 7 -- + +Warning: tempnam() expects parameter 2 to be string, array given in %s\ext\standard\tests\file\tempnam_variation3-win32.php on line %d +OK +-- Iteration 8 -- +OK +-- Iteration 9 -- +OK + +*** Done. *** |