diff options
author | Anatol Belski <ab@php.net> | 2019-04-10 14:57:04 +0200 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2019-04-10 14:57:04 +0200 |
commit | db7aba538d2813fca7c69fdb8c004e8df06173ed (patch) | |
tree | 0918b2a747aeea2325564524ac96d17d428a5066 /ext/phar/tests | |
parent | 33a149afba405ca39818cf14ad9d404bb5927d1d (diff) | |
parent | 1aa30bb71c3222ae61cf6a4887d682817588be8e (diff) | |
download | php-git-db7aba538d2813fca7c69fdb8c004e8df06173ed.tar.gz |
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Fix phar:// include handling with file cache
Diffstat (limited to 'ext/phar/tests')
-rw-r--r-- | ext/phar/tests/024-opcache-win32.phpt | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/ext/phar/tests/024-opcache-win32.phpt b/ext/phar/tests/024-opcache-win32.phpt new file mode 100644 index 0000000000..81eedd9668 --- /dev/null +++ b/ext/phar/tests/024-opcache-win32.phpt @@ -0,0 +1,61 @@ +--TEST-- +Phar: phar:// include with Opcache +--SKIPIF-- +<?php if (strpos(PHP_OS, 'WIN') === false) die("skip Extra warning on Windows."); ?> +<?php if (!extension_loaded("phar")) die("skip"); ?> +<?php if (!extension_loaded('Zend OPcache')) die('skip Zend OPcache extension not available'); ?> +<?php + $cache_dir = dirname(__FILE__) . "/024-file_cache"; + if (!is_dir($cache_dir) && !mkdir($cache_dir)) die("skip unable to create file_cache dir"); +?> +--INI-- +phar.require_hash=0 +opcache.enable=1 +opcache.enable_cli=1 +opcache.file_cache={PWD}/024-file_cache +opcache.memory_consumption=64 +opcache.interned_strings_buffer=8 +opcache.max_accelerated_files=4000 +opcache.jit_buffer_size=6M +opcache.revalidate_freq=60 +opcache.fast_shutdown=1 +--FILE-- +<?php + +$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php'; +$pname = 'phar://' . $fname; +$file = "<?php __HALT_COMPILER(); ?>"; + +$files = array(); +$files['a.php'] = '<?php echo "This is a\n"; ?>'; +$files['b.php'] = '<?php echo "This is b\n"; ?>'; +$files['b/c.php'] = '<?php echo "This is b/c\n"; ?>'; + +include 'files/phar_test.inc'; + +include $pname . '/a.php'; +include $pname . '/b.php'; +include $pname . '/b/c.php'; + +$cache_dir = ini_get("opcache.file_cache"); +if (is_dir($cache_dir)) { + $it = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($cache_dir, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST + ); + foreach ($it as $fi) { + $fn = ($fi->isDir() ? 'rmdir' : 'unlink'); + $fn($fi->getRealPath()); + } + + rmdir($cache_dir); +} + +?> +===DONE=== +--CLEAN-- +<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?> +--EXPECT-- +This is a +This is b +This is b/c +===DONE=== |