summaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
Diffstat (limited to 'testing')
-rwxr-xr-xtesting/check-pysqlcipher.py23
-rw-r--r--testing/tox.ini9
2 files changed, 31 insertions, 1 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. :-)"
diff --git a/testing/tox.ini b/testing/tox.ini
index 2acbf4fb..48c1afb9 100644
--- a/testing/tox.ini
+++ b/testing/tox.ini
@@ -67,7 +67,14 @@ deps =
git+https://github.com/drebs/pytest-benchmark.git@fix-update-machine-info-hook-spec
elasticsearch
certifi
-commands = py.test --benchmark-only {posargs}
+commands =
+# use a bundled version of pysqlcipher to ensure HAVE_USLEEP is set and we
+# don't have problems with concurrent db access.
+ pip uninstall -y pysqlcipher
+ pip install --install-option="--bundled" pysqlcipher
+ ./check-pysqlcipher.py
+# and only then run benchmark
+ py.test --benchmark-only {posargs}
passenv = HOST_HOSTNAME
[testenv:code-check]