mirror of
https://github.com/postgres/postgres.git
synced 2025-06-03 00:02:26 -04:00
Fix more portability issues in new pgbench TAP tests.
* Remove no-such-user test case, output isn't stable, and we really don't need to be testing such cases here anyway. * Fix the process exit code test logic to match PostgresNode::psql (but I didn't bother with looking at the "core" flag). * Give up on inf/nan tests. Per buildfarm.
This commit is contained in:
parent
ee24d2b5cf
commit
77d63b7eaf
@ -68,14 +68,6 @@ pgbench(
|
|||||||
qr{FATAL: database "no-such-database" does not exist} ],
|
qr{FATAL: database "no-such-database" does not exist} ],
|
||||||
'no such database');
|
'no such database');
|
||||||
|
|
||||||
pgbench(
|
|
||||||
'-U no-such-user template0',
|
|
||||||
1,
|
|
||||||
[qr{^$}],
|
|
||||||
[ qr{connection to database "template0" failed},
|
|
||||||
qr{FATAL: role "no-such-user" does not exist} ],
|
|
||||||
'no such user');
|
|
||||||
|
|
||||||
pgbench(
|
pgbench(
|
||||||
'-S -t 1', 1, [qr{^$}],
|
'-S -t 1', 1, [qr{^$}],
|
||||||
[qr{Perhaps you need to do initialization}],
|
[qr{Perhaps you need to do initialization}],
|
||||||
@ -89,7 +81,7 @@ pgbench(
|
|||||||
|
|
||||||
# Again, with all possible options
|
# Again, with all possible options
|
||||||
pgbench(
|
pgbench(
|
||||||
'--initialize --scale=1 --unlogged-tables --fillfactor=98 --foreign-keys --quiet --tablespace=pg_default --index-tablespace=pg_default',
|
'--initialize --scale=1 --unlogged-tables --fillfactor=98 --foreign-keys --quiet --tablespace=pg_default --index-tablespace=pg_default',
|
||||||
0,
|
0,
|
||||||
[qr{^$}i],
|
[qr{^$}i],
|
||||||
[ qr{creating tables},
|
[ qr{creating tables},
|
||||||
@ -217,10 +209,7 @@ pgbench(
|
|||||||
qr{command=18.: double 18\b},
|
qr{command=18.: double 18\b},
|
||||||
qr{command=19.: double 19\b},
|
qr{command=19.: double 19\b},
|
||||||
qr{command=20.: double 20\b},
|
qr{command=20.: double 20\b},
|
||||||
qr{command=21.: double -?nan}i,
|
qr{command=21.: int 9223372036854775807\b}, ],
|
||||||
qr{command=22.: double inf}i,
|
|
||||||
qr{command=23.: double -inf}i,
|
|
||||||
qr{command=24.: int 9223372036854775807\b}, ],
|
|
||||||
'pgbench expressions',
|
'pgbench expressions',
|
||||||
{ '001_pgbench_expressions' => q{-- integer functions
|
{ '001_pgbench_expressions' => q{-- integer functions
|
||||||
\set i1 debug(random(1, 100))
|
\set i1 debug(random(1, 100))
|
||||||
@ -246,10 +235,7 @@ pgbench(
|
|||||||
\set d6 debug((0.5 * 12.1 - 0.05) * (31.0 / 10))
|
\set d6 debug((0.5 * 12.1 - 0.05) * (31.0 / 10))
|
||||||
\set d7 debug(11.1 + 7.9)
|
\set d7 debug(11.1 + 7.9)
|
||||||
\set d8 debug(:foo * -2)
|
\set d8 debug(:foo * -2)
|
||||||
-- special values
|
-- forced overflow
|
||||||
\set nan debug(0.0 / 0.0)
|
|
||||||
\set pin debug(1.0 / 0.0)
|
|
||||||
\set nin debug(-1.0 / 0.0)
|
|
||||||
\set maxint debug(:minint - 1)
|
\set maxint debug(:minint - 1)
|
||||||
-- reset a variable
|
-- reset a variable
|
||||||
\set i1 0
|
\set i1 0
|
||||||
|
@ -340,20 +340,22 @@ sub command_fails_like
|
|||||||
# - test_name: name of test
|
# - test_name: name of test
|
||||||
sub command_checks_all
|
sub command_checks_all
|
||||||
{
|
{
|
||||||
my ($cmd, $ret, $out, $err, $test_name) = @_;
|
my ($cmd, $expected_ret, $out, $err, $test_name) = @_;
|
||||||
|
|
||||||
# run command
|
# run command
|
||||||
my ($stdout, $stderr);
|
my ($stdout, $stderr);
|
||||||
print("# Running: " . join(" ", @{$cmd}) . "\n");
|
print("# Running: " . join(" ", @{$cmd}) . "\n");
|
||||||
IPC::Run::run($cmd, '>', \$stdout, '2>', \$stderr);
|
IPC::Run::run($cmd, '>', \$stdout, '2>', \$stderr);
|
||||||
|
|
||||||
# On Windows, the exit status of the process is returned directly as the
|
# See http://perldoc.perl.org/perlvar.html#%24CHILD_ERROR
|
||||||
# process's exit code, while on Unix, it's returned in the high bits
|
my $ret = $?;
|
||||||
# of the exit code.
|
die "command exited with signal " . ($ret & 127)
|
||||||
my $status = $windows_os ? $? : $? >> 8;
|
if $ret & 127;
|
||||||
|
$ret = $ret >> 8;
|
||||||
|
|
||||||
# check status
|
# check status
|
||||||
ok($ret == $status, "$test_name status (got $status vs expected $ret)");
|
ok($ret == $expected_ret,
|
||||||
|
"$test_name status (got $ret vs expected $expected_ret)");
|
||||||
|
|
||||||
# check stdout
|
# check stdout
|
||||||
for my $re (@$out)
|
for my $re (@$out)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user