TypePHP 编译器
https://swoole.com/aot/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.4 KiB
1.4 KiB
EXT/LIB integration tests
This suite lives below .github because repository test fixtures with a .php
suffix are intentionally ignored below tests/. It protects build-mode
boundaries rather than duplicating the PHP syntax coverage in tests/compiler.
ext/lifecyclebuilds a real Zend extension and loads it through CLI,php -S, and PHP-FPM. The long-running hosts alternate implementations of the same request-local class and function, while the extension also calls an internal class and method. This protects request cache cleanup and persistent cache reuse across repeated RINIT/RSHUTDOWN cycles.libbuilds a provider library, consumes its generated@import-librarystub from a second TypePHP binary, links the two artifacts, and runs the consumer. Both modes include a throwingmain()declaration to verify that only bin mode executes the entrypoint.
Run from the repository root:
PHPX_HOME=../phpx php bin/run-integration-tests.php \
--compiler=./tpc \
--php="$(command -v php)" \
--php-fpm="$(php-config --prefix)/sbin/php-fpm"
Successful runs remove their temporary build tree. On failure the generated
C++ sources, shared libraries, server configuration, and logs remain under
build/integration-* for CI artifact collection. Pass --keep to retain a
successful build as well. --suite=ext and --suite=lib can isolate one mode
while debugging; the default is --suite=all.