test(compiler): update test configuration and execution setup

- Add empty ini directory placeholders for test isolation
- Set PHP_INI_SCAN_DIR environment in include_require and python tests
- Replace no-leak.ini with descriptive comment for dedicated configuration
- Modify ref-call-arg.phpt to use temporary files instead of fixed paths
- Add ZipArchive operations in ref-call-arg.phpt for proper test data generation
- Update expected output values in ref-call-arg.phpt test results
- Add display_startup_errors=1 to php ini-values in workflow configuration
- Enable opcache.jit=0 setting in workflow configuration for consistency
- Increase
master
韩天峰 11 hours ago
parent e4bb7b2605
commit 2986f3db70
  1. 8
      .github/workflows/tests.yml
  2. 1
      tests/compiler/include_require/001.phpt
  3. 1
      tests/compiler/include_require/empty-ini-dir/.gitkeep
  4. 2
      tests/compiler/include_require/no-leak.ini
  5. 1
      tests/compiler/python/empty-ini-dir/.gitkeep
  6. 1
      tests/compiler/python/missing-phpy.phpt
  7. 18
      tests/compiler/ref/ref-call-arg.phpt

@ -44,7 +44,7 @@ jobs:
php-version: ${{ matrix.php }} php-version: ${{ matrix.php }}
coverage: none coverage: none
extensions: embed extensions: embed
ini-values: precision=17, memory_limit=4G, error_reporting=E_ERROR|E_WARNING, display_errors=1, log_errors=0 ini-values: precision=17, memory_limit=4G, error_reporting=E_ERROR|E_WARNING, display_errors=1, display_startup_errors=1, log_errors=0
tools: composer:v2 tools: composer:v2
- name: Patch php_hash.h C++ compatibility - name: Patch php_hash.h C++ compatibility
@ -115,7 +115,7 @@ jobs:
php-version: ${{ matrix.php }} php-version: ${{ matrix.php }}
coverage: none coverage: none
extensions: embed, curl, redis, mbstring, ffi extensions: embed, curl, redis, mbstring, ffi
ini-values: ffi.enable=1, phpy.enable_operator_overloading=0, precision=17, memory_limit=4G, error_reporting=E_ERROR|E_WARNING, display_errors=1, log_errors=0 ini-values: ffi.enable=1, phpy.enable_operator_overloading=0, precision=17, memory_limit=4G, error_reporting=E_ERROR|E_WARNING, display_errors=1, display_startup_errors=1, log_errors=0
tools: composer:v2 tools: composer:v2
- name: Patch php_hash.h C++ compatibility - name: Patch php_hash.h C++ compatibility
@ -181,7 +181,7 @@ jobs:
php-version: ${{ matrix.php }} php-version: ${{ matrix.php }}
coverage: none coverage: none
extensions: embed, curl, redis, mbstring, ffi extensions: embed, curl, redis, mbstring, ffi
ini-values: ffi.enable=1, phpy.enable_operator_overloading=0, precision=17, memory_limit=4G, error_reporting=E_ERROR|E_WARNING, display_errors=1, log_errors=0 ini-values: ffi.enable=1, phpy.enable_operator_overloading=0, opcache.jit=0, precision=17, memory_limit=4G, error_reporting=E_ERROR|E_WARNING, display_errors=1, display_startup_errors=1, log_errors=0
tools: composer:v2 tools: composer:v2
- name: Patch php_hash.h C++ compatibility - name: Patch php_hash.h C++ compatibility
@ -238,7 +238,7 @@ jobs:
- name: Run compiler PHPT suite with bootstrap compiler - name: Run compiler PHPT suite with bootstrap compiler
run: | run: |
mkdir -p build mkdir -p build
php run-tests.php -q -j4 --compiler ./tpc \ php run-tests.php -q -j8 --compiler ./tpc \
-w build/failed-tests.txt -W build/test-results.txt tests/compiler -w build/failed-tests.txt -W build/test-results.txt tests/compiler
- name: Upload PHPT failure artifacts - name: Upload PHPT failure artifacts

@ -2,6 +2,7 @@
include/require unwind safely when ZendVM calls a compiled function that throws include/require unwind safely when ZendVM calls a compiled function that throws
--ENV-- --ENV--
PHPRC=tests/compiler/include_require/no-leak.ini PHPRC=tests/compiler/include_require/no-leak.ini
PHP_INI_SCAN_DIR={PWD}/empty-ini-dir
--FILE-- --FILE--
<?php <?php
declare(strict_types=1); declare(strict_types=1);

@ -1 +1 @@
report_memleaks=0 ; Keep a dedicated empty configuration so this test does not inherit local PHP settings.

@ -2,6 +2,7 @@
Using a Python module without phpy raises a catchable PHP Error Using a Python module without phpy raises a catchable PHP Error
--ENV-- --ENV--
PHPRC=tests/compiler/python/empty.ini PHPRC=tests/compiler/python/empty.ini
PHP_INI_SCAN_DIR={PWD}/empty-ini-dir
--FILE-- --FILE--
<?php <?php
use python\math; use python\math;

@ -4,8 +4,15 @@ ref call arg
<?php <?php
function main() function main()
{ {
$path = tempnam(sys_get_temp_dir(), 'typephp-ref-');
$zip = new ZipArchive(); $zip = new ZipArchive();
$path = realpath(__DIR__ . '/../../../../data/test.zip'); $zip->open($path, ZipArchive::CREATE | ZipArchive::OVERWRITE);
for ($idx = 0; $idx < 4; $idx++) {
$zip->addFromString('entry-' . $idx, 'data');
$zip->setExternalAttributesIndex($idx, ZipArchive::OPSYS_UNIX, 0100644 << 16);
}
$zip->close();
if ($zip->open($path) === TRUE) { if ($zip->open($path) === TRUE) {
for ($idx = 0; $s = $zip->statIndex($idx); $idx++) { for ($idx = 0; $s = $zip->statIndex($idx); $idx++) {
$rs = $zip->getExternalAttributesIndex($idx, $opsys, $attr); $rs = $zip->getExternalAttributesIndex($idx, $opsys, $attr);
@ -14,6 +21,7 @@ function main()
$zip->close(); $zip->close();
echo "OK\n"; echo "OK\n";
} }
unlink($path);
$str = "first=value&arr[]=foo+bar&arr[]=baz"; $str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str, $output); parse_str($str, $output);
@ -27,19 +35,19 @@ function main()
bool(true) bool(true)
int(0) int(0)
int(3) int(3)
int(1107099648) int(2175008768)
bool(true) bool(true)
int(1) int(1)
int(3) int(3)
int(2176057344) int(2175008768)
bool(true) bool(true)
int(2) int(2)
int(3) int(3)
int(2176057344) int(2175008768)
bool(true) bool(true)
int(3) int(3)
int(3) int(3)
int(2176057344) int(2175008768)
OK OK
value value
foo bar foo bar

Loading…
Cancel
Save