summaryrefslogtreecommitdiff
path: root/ext/phar/tests/stat2.phpt
diff options
context:
space:
mode:
authorGreg Beaver <cellog@php.net>2008-05-11 19:17:51 +0000
committerGreg Beaver <cellog@php.net>2008-05-11 19:17:51 +0000
commit38d5943ee6e31f921fe40d7f0049cb14e8222b27 (patch)
tree6c5ec5fa4edd3435fd0d6a27a8af01304d2467b5 /ext/phar/tests/stat2.phpt
parent5ddb49caec245fd9e055d348350198e0e57592a0 (diff)
downloadphp-git-38d5943ee6e31f921fe40d7f0049cb14e8222b27.tar.gz
increase code coverage of funcinterceptors to 90%+, fix many bugs, fix errant wrong test condition in fgc_edgecases
Diffstat (limited to 'ext/phar/tests/stat2.phpt')
-rw-r--r--ext/phar/tests/stat2.phpt59
1 files changed, 59 insertions, 0 deletions
diff --git a/ext/phar/tests/stat2.phpt b/ext/phar/tests/stat2.phpt
new file mode 100644
index 0000000000..559a28d3f0
--- /dev/null
+++ b/ext/phar/tests/stat2.phpt
@@ -0,0 +1,59 @@
+--TEST--
+Phar: test stat function interceptions and is_file/is_link edge cases
+--SKIPIF--
+<?php if (!extension_loaded("phar")) die("skip");?>
+--INI--
+phar.readonly=0
+--FILE--
+<?php
+Phar::interceptFileFuncs();
+is_file();
+is_link();
+var_dump(is_file(__FILE__));
+
+$fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.tar';
+$fname3 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.tar';
+copy(dirname(__FILE__) . '/tar/files/links.tar', $fname2);
+$a = new PharData($fname2);
+$b = $a->convertToExecutable();
+unset($a);
+Phar::unlinkArchive($fname2);
+$b['foo/stat.php'] = '<?php
+echo "is_link\n";
+var_dump(is_link("./stat.php"),is_file("./stat.php"), is_link("./oops"), is_file("./oops"));
+var_dump(is_link("testit/link"), filetype("testit/link"), filetype("testit"), is_file("testit/link"));
+echo "not found\n";
+var_dump(is_link("notfound"));
+echo "dir\n";
+var_dump(is_dir("./bar"), is_file("foo/bar/blah"));
+?>';
+$b->addEmptyDir('foo/bar/blah');
+$b->setStub('<?php
+include "phar://" . __FILE__ . "/foo/stat.php";
+__HALT_COMPILER();');
+include $fname3;
+?>
+===DONE===
+--CLEAN--
+<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.tar'); ?>
+<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.tar'); ?>
+--EXPECTF--
+Warning: Wrong parameter count for is_file() in %sstat2.php on line %d
+
+Warning: Wrong parameter count for is_link() in %sstat2.php on line %d
+bool(true)
+is_link
+bool(false)
+bool(true)
+bool(false)
+bool(false)
+bool(true)
+string(4) "link"
+string(3) "dir"
+bool(true)
+not found
+bool(false)
+dir
+bool(true)
+bool(false)
+===DONE=== \ No newline at end of file