mirror of
https://github.com/php/php-src.git
synced 2025-08-17 14:38:49 +02:00

This testing mode executes the test multiple times in the same process (but in different requests). It is primarily intended to catch tracing JIT bugs, but also catches state leaks across requests. Closes GH-6365.
50 lines
1.2 KiB
PHP
50 lines
1.2 KiB
PHP
<?php
|
|
// This script prints "skip" unless:
|
|
// * the pgsql extension is built-in or loadable, AND
|
|
// * there is a database called "test" accessible
|
|
// with no username/password, AND
|
|
// * we have create/drop privileges on the entire "test"
|
|
// database
|
|
|
|
include("config.inc");
|
|
include("lcmess.inc");
|
|
|
|
if (!extension_loaded("pgsql")) {
|
|
die("skip pgsql extension not loaded\n");
|
|
}
|
|
if (getenv("SKIP_REPEAT")) {
|
|
// pgsql tests are order-dependent.
|
|
// We should probably change that, but in the meantime do not allow repetition.
|
|
die("skip Cannot repeat pgsql tests");
|
|
}
|
|
$conn = @pg_connect($conn_str);
|
|
if (!is_resource($conn)) {
|
|
die("skip could not connect\n");
|
|
}
|
|
|
|
function skip_server_version($version, $op = '<')
|
|
{
|
|
$pg = pg_parameter_status('server_version');
|
|
if (version_compare($pg, $version, $op)) {
|
|
die("skip Server version {$pg} is {$op} {$version}\n");
|
|
}
|
|
return $pg;
|
|
}
|
|
|
|
function skip_bytea_not_hex()
|
|
{
|
|
$out = pg_escape_bytea("\xFF");
|
|
if (strpos($out, '377') !== false) {
|
|
die("skip libpq or backend < 9.0\n");
|
|
}
|
|
}
|
|
|
|
function skip_bytea_not_escape()
|
|
{
|
|
$out = pg_escape_bytea("\xFF");
|
|
if (strpos($out, '377') === false) {
|
|
die("skip libpq or backend >= 9.0\n");
|
|
}
|
|
}
|
|
|
|
?>
|