Fix testsuite to run with the latest sqlite (bugs.debian.org/591111).

Signed-off-by: Adam Tkac <atkac@redhat.com>
f38
Adam Tkac 15 years ago
parent 5be71f9381
commit acf6c396c2

@ -0,0 +1,49 @@
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

@ -1,6 +1,6 @@
Name: perl-DBD-SQLite Name: perl-DBD-SQLite
Version: 1.29 Version: 1.29
Release: 3%{?dist} Release: 4%{?dist}
Summary: SQLite DBI Driver Summary: SQLite DBI Driver
Group: Development/Libraries Group: Development/Libraries
@ -8,6 +8,7 @@ License: GPL+ or Artistic
URL: http://search.cpan.org/dist/DBD-SQLite/ URL: http://search.cpan.org/dist/DBD-SQLite/
Source0: http://search.cpan.org/CPAN/authors/id/A/AD/ADAMK/DBD-SQLite-%{version}.tar.gz Source0: http://search.cpan.org/CPAN/authors/id/A/AD/ADAMK/DBD-SQLite-%{version}.tar.gz
patch0: perl-DBD-SQLite-bz543982.patch patch0: perl-DBD-SQLite-bz543982.patch
Patch1: 0001-Don-t-clean-temporary-files-in-child-processes.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
# if sqlite >= 3.1.3 then # if sqlite >= 3.1.3 then
@ -35,6 +36,7 @@ libraries.
%prep %prep
%setup -q -n DBD-SQLite-%{version} %setup -q -n DBD-SQLite-%{version}
%patch0 -p1 %patch0 -p1
%patch1 -p1
%build %build
CFLAGS="$RPM_OPT_FLAGS" %{__perl} Makefile.PL INSTALLDIRS=vendor CFLAGS="$RPM_OPT_FLAGS" %{__perl} Makefile.PL INSTALLDIRS=vendor
@ -67,6 +69,9 @@ rm -rf $RPM_BUILD_ROOT
%changelog %changelog
* Tue Aug 24 2010 Adam Tkac <atkac redhat com> - 1.29-4
- fix testsuite to run with the latest sqlite (bugs.debian.org/591111)
* Tue Aug 24 2010 Adam Tkac <atkac redhat com> - 1.29-3 * Tue Aug 24 2010 Adam Tkac <atkac redhat com> - 1.29-3
- rebuild - rebuild

Loading…
Cancel
Save