develooper Front page | perl.cpan.testers.discuss | Postings from January 2020

Re: need an opinion / reality check / second pair of eyes

Thread Previous | Thread Next
From:
James E Keenan
Date:
January 30, 2020 22:39
Subject:
Re: need an opinion / reality check / second pair of eyes
Message ID:
20200130223940.17719.qmail@lists-nntp.develooper.com
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
> 
> 

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About