Files
fil/e2e/php/run_tests.php

48 lines
1.7 KiB
PHP
Raw Normal View History

2026-06-01 23:40:55 +02:00
#!/usr/bin/env php
<?php
// This file is auto-generated by alef — DO NOT EDIT.
// alef:hash:4e15143f4af1ae8bafbdb1506ef057da924484c66a19483966333558ad437e75
// To regenerate: alef generate
// To verify freshness: alef verify --exit-code
// Issues & docs: https://github.com/kreuzberg-dev/alef
declare(strict_types=1);
// Determine platform-specific extension suffix.
$extSuffix = match (PHP_OS_FAMILY) {
'Darwin' => '.dylib',
default => '.so',
};
$extPath = __DIR__ . '/../../target/release/libkreuzberg_php' . $extSuffix;
// If the locally-built extension exists and we have not already restarted with it,
// re-exec PHP with the freshly-built extension loaded explicitly via `-d extension=`.
// The system php.ini is kept (no `-n`) so PHPUnit's required extensions — dom, json,
// libxml, mbstring, tokenizer, xml, xmlwriter — remain available. `-n` drops every
// shared module, which breaks PHPUnit on distributions that ship those as shared
// extensions (e.g. Debian/Ubuntu); they only survive `-n` where compiled statically.
if (file_exists($extPath) && !getenv('ALEF_PHP_LOCAL_EXT_LOADED')) {
putenv('ALEF_PHP_LOCAL_EXT_LOADED=1');
$php = PHP_BINARY;
$phpunitPath = __DIR__ . '/vendor/bin/phpunit';
$cmd = array_merge(
[$php, '-d', 'extension=' . $extPath],
[$phpunitPath],
array_slice($GLOBALS['argv'], 1)
);
passthru(implode(' ', array_map('escapeshellarg', $cmd)), $exitCode);
exit($exitCode);
}
// Extension is now loaded (via the restart above).
// Invoke PHPUnit normally.
$phpunitPath = __DIR__ . '/vendor/bin/phpunit';
if (!file_exists($phpunitPath)) {
echo "PHPUnit not found at $phpunitPath. Run 'composer install' first.\n";
exit(1);
}
require $phpunitPath;