Annotation of embedaddon/php/ext/phar/tests/opendir_edgecases.phpt, revision 1.1.1.2
1.1 misho 1: --TEST--
2: Phar: test edge cases of opendir() function interception
3: --SKIPIF--
4: <?php if (!extension_loaded("phar")) die("skip");?>
5: --INI--
6: phar.readonly=0
7: --FILE--
8: <?php
9:
10: Phar::interceptFileFuncs();
11:
12: $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
13: $pname = 'phar://' . $fname;
14:
15: opendir(array());
16:
17: mkdir(dirname(__FILE__) . '/poo');
18: chdir(dirname(__FILE__));
19:
20: $a = opendir('poo');
21:
22: $arr = array();
23: while (false !== ($b = readdir($a))) {
24: $arr[] = $b;
25: }
26: sort($arr);
27: foreach ($arr as $b) {
28: echo "$b\n";
29: }
30:
31: closedir($a);
32:
33: file_put_contents($pname . '/foo', '<?php
34: $context = stream_context_create();
35: $a = opendir(".", $context);
36: $res = array();
37: while (false !== ($b = readdir($a))) {
38: $res[] = $b;
39: }
40: sort($res);
41: foreach ($res as $b) {
42: echo "$b\n";
43: }
44: opendir("oops");
45: ?>');
46:
47: include $pname . '/foo';
48:
49: ?>
50: ===DONE===
51: --CLEAN--
52: <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
53: <?php rmdir(dirname(__FILE__) . '/poo');
54: --EXPECTF--
1.1.1.2 ! misho 55: Warning: opendir() expects parameter 1 to be a valid path, array given in %sopendir_edgecases.php on line %d
1.1 misho 56: .
57: ..
58: foo
59:
60: Warning: opendir(phar://%sopendir_edgecases.phar.php/oops): failed to open dir: %s in phar://%sopendir_edgecases.phar.php/foo on line %d
1.1.1.2 ! misho 61: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>