Prevent test_sqlite from hanging on older versions of sqlite.
The problem is that when trying to do the second insert, sqlite seems to sleep
for a very long time. Here is the output from strace:
read(6, "SQLite format 3\0\4\0\1\1\0@ \0\0\0\1\0\0\0\0"..., 1024) = 1024
nanosleep({4294, 966296000}, <unfinished ...>
I don't know which version this was fixed in, but 3.2.1 definitely fails.
diff --git a/Lib/sqlite3/test/transactions.py b/Lib/sqlite3/test/transactions.py
index d4f7d62..9cc6e10 100644
--- a/Lib/sqlite3/test/transactions.py
+++ b/Lib/sqlite3/test/transactions.py
@@ -113,6 +113,10 @@
self.failUnlessEqual(len(res), 1)
def CheckRaiseTimeout(self):
+ if sqlite.sqlite_version_info < (3, 2, 2):
+ # This will fail (hang) on earlier versions of sqlite.
+ # Determine exact version it was fixed. 3.2.1 hangs.
+ return
self.cur1.execute("create table test(i)")
self.cur1.execute("insert into test(i) values (5)")
try:
@@ -128,6 +132,10 @@
This tests the improved concurrency with pysqlite 2.3.4. You needed
to roll back con2 before you could commit con1.
"""
+ if sqlite.sqlite_version_info < (3, 2, 2):
+ # This will fail (hang) on earlier versions of sqlite.
+ # Determine exact version it was fixed. 3.2.1 hangs.
+ return
self.cur1.execute("create table test(i)")
self.cur1.execute("insert into test(i) values (5)")
try: