]> granicus.if.org Git - postgresql/commitdiff
Use $Test::Builder::Level in TAP test functions
authorPeter Eisentraut <peter_e@gmx.net>
Tue, 22 May 2018 18:25:01 +0000 (14:25 -0400)
committerPeter Eisentraut <peter_e@gmx.net>
Sun, 1 Jul 2018 10:58:32 +0000 (12:58 +0200)
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>
src/bin/pg_rewind/RewindTest.pm
src/test/perl/PostgresNode.pm
src/test/perl/TestLib.pm
src/test/ssl/ServerSetup.pm

index 60b54119e7a743165820c66404bab103d17185c1..057b08f9a49d6bb4bbcc16efd0f07ac5d5e80c36 100644 (file)
@@ -87,6 +87,8 @@ sub standby_psql
 # expected
 sub check_query
 {
+       local $Test::Builder::Level = $Test::Builder::Level + 1;
+
        my ($query, $expected_stdout, $test_name) = @_;
        my ($stdout, $stderr);
 
index 5f848a0db7a285946764124547ed705db1198570..a08af65695bc9715e45729c1767851fe314f997b 100644 (file)
@@ -1366,6 +1366,8 @@ PostgresNode.
 
 sub command_ok
 {
+       local $Test::Builder::Level = $Test::Builder::Level + 1;
+
        my $self = shift;
 
        local $ENV{PGPORT} = $self->port;
@@ -1384,6 +1386,8 @@ TestLib::command_fails with our PGPORT. See command_ok(...)
 
 sub command_fails
 {
+       local $Test::Builder::Level = $Test::Builder::Level + 1;
+
        my $self = shift;
 
        local $ENV{PGPORT} = $self->port;
@@ -1402,6 +1406,8 @@ TestLib::command_like with our PGPORT. See command_ok(...)
 
 sub command_like
 {
+       local $Test::Builder::Level = $Test::Builder::Level + 1;
+
        my $self = shift;
 
        local $ENV{PGPORT} = $self->port;
@@ -1420,6 +1426,8 @@ TestLib::command_checks_all with our PGPORT. See command_ok(...)
 
 sub command_checks_all
 {
+       local $Test::Builder::Level = $Test::Builder::Level + 1;
+
        my $self = shift;
 
        local $ENV{PGPORT} = $self->port;
@@ -1442,6 +1450,8 @@ The log file is truncated prior to running the command, however.
 
 sub issues_sql_like
 {
+       local $Test::Builder::Level = $Test::Builder::Level + 1;
+
        my ($self, $cmd, $expected_sql, $test_name) = @_;
 
        local $ENV{PGPORT} = $self->port;
index fda6760226dc19ac2149ace9d7ecdc6176582c60..3a184a4fadde3d18f14064aa090df5858062320b 100644 (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
index 5ffc0b5385dc769ea6122d28ae0f6c80f1436780..3b451a360ad3998cebe35bdda89da1f3dbc7fe9d 100644 (file)
@@ -38,6 +38,8 @@ our @EXPORT = qw(
 # The second argument is a complementary connection string.
 sub test_connect_ok
 {
+       local $Test::Builder::Level = $Test::Builder::Level + 1;
+
        my ($common_connstr, $connstr, $test_name) = @_;
 
        my $cmd = [
@@ -52,6 +54,8 @@ sub test_connect_ok
 
 sub test_connect_fails
 {
+       local $Test::Builder::Level = $Test::Builder::Level + 1;
+
        my ($common_connstr, $connstr, $expected_stderr, $test_name) = @_;
 
        my $cmd = [