On 3/12/18 11:59 AM, Dagfinn Ilmari Mannsåker wrote:
> David Steele <david@pgmasters.net> writes:
>
>> On 3/12/18 11:27 AM, Peter Eisentraut wrote:
>>> On 3/11/18 05:11, Michael Paquier wrote:
>>>> On Fri, Mar 09, 2018 at 05:23:48PM -0500, Peter Eisentraut wrote:
>>>>> This seems like a useful test.
>>>>>
>>>>> On 3/5/18 12:35, David Steele wrote:
>>>>>> +mkdir($tablespaceDir)
>>>>>> + or die "unable to mkdir \"$tablespaceDir\"";
>>>>>
>>>>> Use BAIL_OUT instead of die in tests.
>>>>
>>>> Would it be better to make this practice more uniform? From the code of
>>>> the tests:
>>>> $ git grep die -- */t/*.pl | wc -l
>>>> 50
>>>
>>> Yes, or maybe there is a way to "catch" die and turn it into BAIL_OUT?
>>
>> something like this should work:
>>
>> # Convert die to BAIL_OUT
>> $SIG{__DIE__} = sub {BAIL_OUT(@_)};
>
> $SIG{__DIE__} gets called even for exceptions that would be caught by a
> surrunding eval block, so this should at the very least be:
>
> $SIG{__DIE__} = sub { BAIL_OUT(@_) unless $^S };
>
> However, that is still wrong, because die() and BAIL_OUT() mean
> different things: die() aborts the current test script, while BAIL_OUT()
> aborts the entire 'prove' run, i.e. all subsequent scripts in the same
> test directory.
If that's the case, do we really want to abort all subsequent test
modules if a single module fails? I'm good either way, just throwing it
out there for consideration.
--
-David
david@pgmasters.net