[PATCH] Don't clean temporary files in child processes
Niko Tyni
ntyni at debian.org
Mon Aug 23 05:15:15 UTC 2010
As of SQLite 3.7.0, write locks try to stat() the database
file and fail with a 'Disk I/O error' if it is missing. This
breaks those tests that fork child processes (namely 08_busy.t
and t/28_schemachange.t) because the child process removes
the database file in the END block.
The fix is to disable the clean() function for child processes.
See <http://bugs.debian.org/591111>
---
t/lib/Test.pm | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/t/lib/Test.pm b/t/lib/Test.pm
index 80e50ce..8d1be25 100644
--- a/t/lib/Test.pm
+++ b/t/lib/Test.pm
@@ -7,6 +7,7 @@ use Exporter ();
use File::Spec ();
use Test::More ();
+my $parent;
use vars qw{$VERSION @ISA @EXPORT @CALL_FUNCS};
BEGIN {
$VERSION = '1.29';
@@ -15,6 +16,7 @@ BEGIN {
# Allow tests to load modules bundled in /inc
unshift @INC, 'inc';
+ $parent = $$;
}
# Always load the DBI module
@@ -22,6 +24,7 @@ use DBI ();
# Delete temporary files
sub clean {
+ return if $$ != $parent;
unlink( 'foo' );
unlink( 'foo-journal' );
}
--
1.7.1
--n8g4imXOkfNTN/H1--
More information about the pkg-perl-maintainers
mailing list