Thread: location reporting in TAP test failures

location reporting in TAP test failures

From
Peter Eisentraut
Date:
Right now, when a TAP test reports a failure, it looks something like this:

 #   Failed test 'creating a replication slot'
 #   at
/....../postgresql/src/bin/pg_basebackup/../../../src/test/perl/TestLib.pm
line 371.

That file location is where we call out to the test function provided by
Test::More.

What we'd really want is

 #   Failed test 'creating a replication slot'
 #   at t/020_pg_receivewal.pl line 36.

because that's where the code that's doing the testing is.

To achieve that, we need to have our test library functions tell that
they are support functions and not the actual tests.  The attached patch
does that.  The mechanism is (somewhat) explained in the Test::Builder
man page.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachment

Re: location reporting in TAP test failures

From
Heikki Linnakangas
Date:
On 05/06/18 18:28, Peter Eisentraut wrote:
> Right now, when a TAP test reports a failure, it looks something like this:
> 
>   #   Failed test 'creating a replication slot'
>   #   at
> /....../postgresql/src/bin/pg_basebackup/../../../src/test/perl/TestLib.pm
> line 371.
> 
> That file location is where we call out to the test function provided by
> Test::More.
> 
> What we'd really want is
> 
>   #   Failed test 'creating a replication slot'
>   #   at t/020_pg_receivewal.pl line 36.
> 
> because that's where the code that's doing the testing is.
> 
> To achieve that, we need to have our test library functions tell that
> they are support functions and not the actual tests.  The attached patch
> does that.  The mechanism is (somewhat) explained in the Test::Builder
> man page.

Looks good. I wish there was some way to remind to do this for any 
future test helper functions, too, but I don't have any ideas off the 
top of my head.

Since this is purely a test change, IMO this could go to master now, no 
need to wait for until v12 development starts.

- Heikki


Re: location reporting in TAP test failures

From
Peter Eisentraut
Date:
On 21.06.18 19:30, Heikki Linnakangas wrote:
> Looks good. I wish there was some way to remind to do this for any 
> future test helper functions, too, but I don't have any ideas off the 
> top of my head.

Committed.

> Since this is purely a test change, IMO this could go to master now, no 
> need to wait for until v12 development starts.

I didn't want to deal with the potential for some version differences in
the test modules to cause rare problems, so v12 only for now.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Re: location reporting in TAP test failures

From
Michael Paquier
Date:
On Sun, Jul 01, 2018 at 01:17:07PM +0200, Peter Eisentraut wrote:
> On 21.06.18 19:30, Heikki Linnakangas wrote:
>> Since this is purely a test change, IMO this could go to master now, no
>> need to wait for until v12 development starts.
>
> I didn't want to deal with the potential for some version differences in
> the test modules to cause rare problems, so v12 only for now.

Totally agreed.  Thanks for taking this approach.
--
Michael

Attachment