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.
This commit is contained in:
Neal Norwitz 2008-04-05 04:26:31 +00:00
parent b2ff8a7b0d
commit 8510195ceb
1 changed files with 8 additions and 0 deletions

View File

@ -113,6 +113,10 @@ class TransactionTests(unittest.TestCase):
self.failUnlessEqual(len(res), 1) self.failUnlessEqual(len(res), 1)
def CheckRaiseTimeout(self): 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("create table test(i)")
self.cur1.execute("insert into test(i) values (5)") self.cur1.execute("insert into test(i) values (5)")
try: try:
@ -128,6 +132,10 @@ class TransactionTests(unittest.TestCase):
This tests the improved concurrency with pysqlite 2.3.4. You needed This tests the improved concurrency with pysqlite 2.3.4. You needed
to roll back con2 before you could commit con1. 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("create table test(i)")
self.cur1.execute("insert into test(i) values (5)") self.cur1.execute("insert into test(i) values (5)")
try: try: