Re: need an opinion / reality check / second pair of eyes
[email protected] (James E Keenan)
| Newsgroups | perl.cpan.testers.discuss |
|---|---|
| Message-ID | <[email protected]> |
On 1/29/20 12:42 PM, Eric Wolf wrote:
> I have a test that tries to catch a die in an eval. This works fine for
> me locally, but the tester report indicates that it fails and bails at
> this point.
> To me this seems to indicate that the test harness is set up to barf on
> this type of error or that my test is written or configured incorrectly.
>
> Should I just skip this test or is there some easy magic that can be
> done for it?
>
> Thanks in advance,
> Eric Wolf aka canid
>
> *Test Code *(you can tell its genuine due to the speeling erorrs)
>
> 1159 eval {
> 1160 my $store = Data::ObjectStore->open_store( $source_dir );
> 1161 fail( "was able to open a store with an old incompatable
> version" );
> 1162 };
> 1163 like( $@, qr/Unable to open|lock file did not exist|Permission
> denied/i, 'error message for opeining store with incompatable message' );
>
To me, seeing a Test::More test within an eval block is a code smell.
There's always a chance that the test may crash in some way that sets $@
-- which would make the value of $@ ambiguous, at best.
I don't completely understand what you're attempting to do, but ... Is
there anything that prevents you from this?
#####
my $store;
eval {
$store = Data::ObjectStore->open_store( $source_dir );
};
like( $@,
qr/Unable to open|lock file did not exist|Permission denied/i,
'error message for opeining store with incompatable message'
);
ok(! $store, "Was not able to open a store with an old incompatible
version");
#####
> *Tester Output*
> *
> *
>
> Output from './Build test':
>
> Permission denied at /tmp/loop_over_bdir-29197-caKZ6Z/Data-RecordStore-6.04-0/blib/lib/Data/RecordStore.pm line 194.
> at t/object_store.t line 20.
> main::__ANON__(" Permission denied at /tmp/loop_over_bdir-29197-caKZ6Z/Data-R"...) called at /tmp/loop_over_bdir-29197-caKZ6Z/Data-RecordStore-6.04-0/blib/lib/Data/RecordStore.pm line 194
> Data::RecordStore::open_store("Data::RecordStore", "DATA_PROVIDER", "/tmp/NWPz3HLh2e", "BASE_PATH", "/tmp/NWPz3HLh2e/RECORDSTORE") called at /tmp/loop_over_bdir-29197-caKZ6Z/Data-ObjectStore-2.12-0/blib/lib/Data/ObjectStore.pm line 53
> Data::ObjectStore::open_store("Data::ObjectStore", "/tmp/NWPz3HLh2e") called at t/object_store.t line 1160
> *eval {...} called at t/object_store.t line 1159*
> main::test_upgrade_db() called at t/object_store.t line 54
> Permission denied at /tmp/loop_over_bdir-29197-caKZ6Z/Data-RecordStore-6.04-0/blib/lib/Data/RecordStore.pm line 194.
> at t/object_store.t line 20.
> main::__ANON__(" Permission denied at /tmp/loop_over_bdir-29197-caKZ6Z/Data-R"...) called at /tmp/loop_over_bdir-29197-caKZ6Z/Data-RecordStore-6.04-0/blib/lib/Data/RecordStore.pm line 194
> Data::RecordStore::open_store("Data::RecordStore", "DATA_PROVIDER", "/tmp/NWPz3HLh2e", "BASE_PATH", "/tmp/NWPz3HLh2e/RECORDSTORE") called at /tmp/loop_over_bdir-29197-caKZ6Z/Data-ObjectStore-2.12-0/blib/lib/Data/ObjectStore.pm line 53
> Data::ObjectStore::open_store("Data::ObjectStore", "/tmp/NWPz3HLh2e") called at t/object_store.t line 1168
> main::test_upgrade_db() called at t/object_store.t line 54
> # Tests were run but no plan was declared and done_testing() was not seen.
> # Looks like your test exited with 13 just after 273.
> t/object_store.t ..
> Dubious, test returned 13 (wstat 3328, 0xd00)
> All 273 subtests passed
> t/cache.t ......... ok
>
>