Re: [HACKERS] A note about debugging TAP failures - Mailing list pgsql-hackers

From Daniel Gustafsson
Subject Re: [HACKERS] A note about debugging TAP failures
Date
Msg-id FEA925B2-C3AE-4BA9-9194-5F5616AD0794@yesql.se
Whole thread Raw
In response to Re: [HACKERS] A note about debugging TAP failures  (Craig Ringer <craig.ringer@2ndquadrant.com>)
Responses Re: [HACKERS] A note about debugging TAP failures  (Craig Ringer <craig.ringer@2ndquadrant.com>)
List pgsql-hackers
> On 23 Apr 2017, at 15:05, Craig Ringer <craig.ringer@2ndquadrant.com> wrote:
>
> On 23 Apr. 2017 10:32, "Michael Paquier" <michael.paquier@gmail.com <mailto:michael.paquier@gmail.com>> wrote:
> On Sun, Apr 23, 2017 at 7:48 AM, Daniel Gustafsson <daniel@yesql.se <mailto:daniel@yesql.se>> wrote:
> > Skipping the tempdir and instead using ${testname}_data_${name} without a
> > random suffix, we can achieve this with something along the lines of the
> > attached PoC.  It works as now (retain of failure, remove on success unless
> > overridden) but that logic can easily be turned around if we want that.  If
> > it’s of interest I can pursue this after some sleep (tomorrow has become today
> > at this point).
>
> Yes, something like that may make sense as well for readability.
>
> Keeping folders in case of failures is something that I have been
> advocating in favor of for some time, but this never got into the tree
> :(
>
> Huh? We do keep test temp datadirs etc in case of failure. Just not on success.
>
> Our definition of failure there sucks a bit though. We keep the datadirs if any test fails in a script. If the script
itsself crashes we still blow away the datadirs which is kind of counterintuitive. 
>
> I'd like to change the __DIE__ sig handler to only delete on clean script exit code, tap reporting success, and if
someenv bar like PG_TESTS_NOCLEAN is undefined. The later could also be used in pg_regress etc. 

That sounds like a good idea, even though END might be enough when not using
tempdir() for the datadirs since die() should set a non-zero $?  afaik (still
doesn’t hurt to capture with __DIE__ though).  I extended my previous test with
this, and other comments in this thread: it produces non-random datadirs,
retains them on die|exit|test-failure or if PG_TESTS_NOCLEAN is set.  Theres
also a check-clean target for cleaning out retained datadirs.

Given that the datadirs do occupy quite some space, perhaps a PG_TESTS_DOCLEAN
(or similar) would be good as well to always blow away the datadirs regardless
of test status?

I’m np Perl expert though so there might be better/cleaner ways to achieve
this, in testing it seems to work though.  rmtree() is supported at least since
Perl 5.6 from what I can see.

cheers ./daniel



-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Attachment

pgsql-hackers by date:

Previous
From: Rajkumar Raghuwanshi
Date:
Subject: Re: [HACKERS] Partition-wise join for join between (declaratively)partitioned tables
Next
From: Ashutosh Bapat
Date:
Subject: Re: [HACKERS] Adding support for Default partition in partitioning