You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
perl-DBD-SQLite/0001-Don-t-clean-temporary-...

50 lines
1.2 KiB

From 89c8a661e61bbf0fb1d1e5050262390649e13f2a Mon Sep 17 00:00:00 2001
From: Niko Tyni <ntyni@debian.org>
Date: Mon, 23 Aug 2010 08:15:15 +0300
Subject: [PATCH] Don't clean temporary files in child processes
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