Thread: location reporting in TAP test failures
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
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
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
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