http://qs1969.pair.com?node_id=1092151


in reply to Re: Timeout on prove
in thread Timeout on prove

Thanks, but the issue is not caused by slow connections to external resources. We already mock those. The issue was caused by a bug in normal perl code that had no external dependencies.

What happened, is that the unit test contained code to set-up the initial test data, but that setup code was broken by a change elsewhere in the code base. A bit like:

my @objects = map { My::Object->new() } 1..100; # Give a random 10 object the bar property, skip any where foo is set. for( 1..10 ) { my $object = $objects[ int rand 100 ]; redo if $object->is_foo(); $object->is_bar(1); } # Use the object array in the unit tests.

The problem was that someone else changed the default constructor for My::Object, so that foo was always set to true, so the while loop above looped forever.

Nothing to do with external resources, just quick and dirty test code broken by an API change.