1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-16 06:01:02 +03:00

Use $Test::Builder::Level in TAP test functions

In TAP test functions, that is, those that produce test results, locally
increment $Test::Builder::Level.  This has the effect that test failures
are reported at the callers location rather than somewhere in the test
support libraries.

Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi>
This commit is contained in:
Peter Eisentraut
2018-05-22 14:25:01 -04:00
parent 65782346a4
commit c4309f4aee
4 changed files with 27 additions and 0 deletions

View File

@ -366,6 +366,7 @@ sub check_pg_config
#
sub command_ok
{
local $Test::Builder::Level = $Test::Builder::Level + 1;
my ($cmd, $test_name) = @_;
my $result = run_log($cmd);
ok($result, $test_name);
@ -374,6 +375,7 @@ sub command_ok
sub command_fails
{
local $Test::Builder::Level = $Test::Builder::Level + 1;
my ($cmd, $test_name) = @_;
my $result = run_log($cmd);
ok(!$result, $test_name);
@ -382,6 +384,7 @@ sub command_fails
sub command_exit_is
{
local $Test::Builder::Level = $Test::Builder::Level + 1;
my ($cmd, $expected, $test_name) = @_;
print("# Running: " . join(" ", @{$cmd}) . "\n");
my $h = IPC::Run::start $cmd;
@ -404,6 +407,7 @@ sub command_exit_is
sub program_help_ok
{
local $Test::Builder::Level = $Test::Builder::Level + 1;
my ($cmd) = @_;
my ($stdout, $stderr);
print("# Running: $cmd --help\n");
@ -417,6 +421,7 @@ sub program_help_ok
sub program_version_ok
{
local $Test::Builder::Level = $Test::Builder::Level + 1;
my ($cmd) = @_;
my ($stdout, $stderr);
print("# Running: $cmd --version\n");
@ -430,6 +435,7 @@ sub program_version_ok
sub program_options_handling_ok
{
local $Test::Builder::Level = $Test::Builder::Level + 1;
my ($cmd) = @_;
my ($stdout, $stderr);
print("# Running: $cmd --not-a-valid-option\n");
@ -443,6 +449,7 @@ sub program_options_handling_ok
sub command_like
{
local $Test::Builder::Level = $Test::Builder::Level + 1;
my ($cmd, $expected_stdout, $test_name) = @_;
my ($stdout, $stderr);
print("# Running: " . join(" ", @{$cmd}) . "\n");
@ -455,6 +462,7 @@ sub command_like
sub command_like_safe
{
local $Test::Builder::Level = $Test::Builder::Level + 1;
# Doesn't rely on detecting end of file on the file descriptors,
# which can fail, causing the process to hang, notably on Msys
@ -475,6 +483,7 @@ sub command_like_safe
sub command_fails_like
{
local $Test::Builder::Level = $Test::Builder::Level + 1;
my ($cmd, $expected_stderr, $test_name) = @_;
my ($stdout, $stderr);
print("# Running: " . join(" ", @{$cmd}) . "\n");
@ -493,6 +502,8 @@ sub command_fails_like
# - test_name: name of test
sub command_checks_all
{
local $Test::Builder::Level = $Test::Builder::Level + 1;
my ($cmd, $expected_ret, $out, $err, $test_name) = @_;
# run command