diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-10-21 10:34:34 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-10-21 12:16:56 +0200 |
commit | 3966c0f8a47225486865d7cdef2552f746dd274c (patch) | |
tree | 9a233fa7dd9c3b69ca8ac6062b98e0ea2ef84a65 /sapi/cli | |
parent | 5998b2a3a65042dc7fc4f70945dd72e4e258500f (diff) | |
download | php-git-3966c0f8a47225486865d7cdef2552f746dd274c.tar.gz |
Add test for zend_extension loading
Closes GH-6363.
Diffstat (limited to 'sapi/cli')
-rw-r--r-- | sapi/cli/tests/ext_loading.phpt | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/sapi/cli/tests/ext_loading.phpt b/sapi/cli/tests/ext_loading.phpt new file mode 100644 index 0000000000..220302da62 --- /dev/null +++ b/sapi/cli/tests/ext_loading.phpt @@ -0,0 +1,65 @@ +--TEST-- +Extension loading +--SKIPIF-- +<?php +$extDir = ini_get('extension_dir'); +if (!file_exists($extDir . '/opcache.so') && !file_exists($extDir . '/php_opcache.dll')) { + die('skip Opcache shared object not found in extension_dir'); +} +?> +--FILE-- +<?php + + +function loadZendExt($extension) { + $cmd = [ + PHP_BINARY, '-n', + '-dextension_dir=' . ini_get('extension_dir'), + '-dzend_extension=' . $extension, + '-r', 'echo "Done.";' + ]; + $proc = proc_open($cmd, [['null'], ['pipe', 'w'], ['redirect', 1]], $pipes); + echo "Output: ", stream_get_contents($pipes[1]), "\n"; +} + +echo "Only extension name:\n"; +loadZendExt('opcache'); + +echo "Name with file extension:\n"; +$name = PHP_OS_FAMILY == 'Windows' ? 'php_opcache.dll' : 'opcache.so'; +loadZendExt($name); + +echo "Absolute path:\n"; +$path = ini_get('extension_dir') . DIRECTORY_SEPARATOR . $name; +loadZendExt($path); + +echo "Unknown extension name (unknown):\n"; +loadZendExt('unknown_ext'); + +echo "Name with file extension (unknown):\n"; +$name = PHP_OS_FAMILY == 'Windows' ? 'php_unknown_ext.dll' : 'unknown_ext.so'; +loadZendExt($name); + +echo "Absolute path (unknown):\n"; +$path = ini_get('extension_dir') . DIRECTORY_SEPARATOR . $name; +loadZendExt($path); + +?> +--EXPECTF-- +Only extension name: +Output: Done. +Name with file extension: +Output: Done. +Absolute path: +Output: Done. +Unknown extension name (unknown): +Output: +Warning: Failed loading Zend extension 'unknown_ext' (tried: %s) in Unknown on line 0 +Done. +Name with file extension (unknown): +Output: +Warning: Failed loading Zend extension '%Sunknown_ext%S' (tried: %s) in Unknown on line 0 +Done. +Absolute path (unknown): +Output: Failed loading %s +Done. |