summaryrefslogtreecommitdiff
path: root/testing/check-pysqlcipher.py
diff options
context:
space:
mode:
authordrebs <drebs@leap.se>2017-04-05 13:45:46 +0200
committerdrebs <drebs@leap.se>2017-04-15 13:11:54 +0200
commit639569f611963d8b876f7705accba4b88a1c871d (patch)
tree2503f1d3e6024de71c06d57d5a221364c39eab01 /testing/check-pysqlcipher.py
parent8a1d160f9e753b8a201bca964b44df3832d3bee8 (diff)
[test] enforce bundled pysqlcipher in benchmark tests
The debian package for libsqlcipher does not enable the use of usleep(), and that might cause timeouts when doing concurrent access to sqlcipher databases. See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859685 In benchmark tests we use twisted's asynchronous dbapi for creating thousands of documents, and if usleep() is not enabled this operation is very likelly to fail with a "db is locked" error. This commit adds a workaround for benchmark tests by reinstalling pysqlcipher with the "--bundled" option, what causes libsqlcipher to be built and bundled in the python package, with usleep() enabled. Resolves: #8835
Diffstat (limited to 'testing/check-pysqlcipher.py')
-rwxr-xr-xtesting/check-pysqlcipher.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/testing/check-pysqlcipher.py b/testing/check-pysqlcipher.py
new file mode 100755
index 00000000..4202b13b
--- /dev/null
+++ b/testing/check-pysqlcipher.py
@@ -0,0 +1,23 @@
+#!/usr/bin/env python
+
+import os
+import tempfile
+
+from pysqlcipher import dbapi2
+
+
+def have_usleep():
+ fname = tempfile.mktemp()
+ db = dbapi2.connect(fname)
+ cursor = db.cursor()
+ cursor.execute('PRAGMA compile_options;')
+ options = map(lambda t: t[0], cursor.fetchall())
+ db.close()
+ os.unlink(fname)
+ return u'HAVE_USLEEP' in options
+
+
+if __name__ == '__main__':
+ if not have_usleep():
+ raise Exception('pysqlcipher was not built with HAVE_USLEEP flag.')
+ print "All ok, pysqlcipher was built with HAVE_USLEEP flag. :-)"