This commit is contained in:
47
e2e/php/run_tests.php
generated
Executable file
47
e2e/php/run_tests.php
generated
Executable file
@@ -0,0 +1,47 @@
|
||||
#!/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;
|
||||
Reference in New Issue
Block a user