Move tmpdir() to DBICTest::Util where it belongs
authorPeter Rabbitson <ribasushi@cpan.org>
Wed, 17 Feb 2016 10:01:20 +0000 (11:01 +0100)
committerPeter Rabbitson <ribasushi@cpan.org>
Tue, 1 Mar 2016 14:11:21 +0000 (15:11 +0100)
commit439a7283a981f27a56e745d99e456fc50a5a018f
treee4725dbb0f49916546958ae74b43c402bda567d1
parent7b87b77c04e07cfea1103dba8ecbd3f219e949d2
Move tmpdir() to DBICTest::Util where it belongs

This detangles things even more. Add some extra logic fixes to the hideous
routine while we are at it...

Some notes on the actual test pefrormed: there have been cases on smokers
where a returned directory was not in fact writable [1]. Thus work harder
making sure everything works. The check is expensive but not terribly so:
about 14ms on cold caches ( echo 3 > /proc/sys/vm/drop_caches ) and ~6ms
thereafter. This adds up to 2 seconds over the current 320 tests. Timed via:

~$ perl -It/lib -Ilib -MANFANG -MDBICTest::Util=tmpdir -MTime::HiRes=time -e '
  my $t0 = time;
  sub delta_t { my $t = time; printf "%.06f\n", $t - $t0; $t0 = $t }

  delta_t();
  print tmpdir . "\n";
  delta_t();
  print tmpdir . "\n";
  delta_t();
  print tmpdir . "\n";
  delta_t();
'

[1] http://www.cpantesters.org/cpan/report/36d4436d-7888-1014-a278-e5322b825c07
lib/DBIx/Class/_Util.pm
t/35exception_inaction.t
t/52leaks.t
t/inflate/file_column.t
t/lib/DBICTest.pm
t/lib/DBICTest/BaseSchema.pm
t/lib/DBICTest/RunMode.pm
t/lib/DBICTest/Util.pm