summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/docker/Dockerfile33
-rwxr-xr-xscripts/testing/check-pysqlcipher.py23
-rwxr-xr-xscripts/testing/ensure-pysqlcipher-has-usleep.sh13
3 files changed, 69 insertions, 0 deletions
diff --git a/scripts/docker/Dockerfile b/scripts/docker/Dockerfile
new file mode 100644
index 00000000..2dea3ec8
--- /dev/null
+++ b/scripts/docker/Dockerfile
@@ -0,0 +1,33 @@
+# start with a fresh debian image
+# we use backports because of libsqlcipher-dev
+FROM 0xacab.org:4567/leap/docker/debian:jessie_amd64
+
+RUN apt-get update
+RUN apt-get -y dist-upgrade
+
+# needed to build python twisted module
+RUN apt-get -y install --no-install-recommends libpython2.7-dev \
+ # add unbuffer and ts for timestamping
+ moreutils expect tcl8.6 \
+ # needed to build python cryptography module
+ libssl-dev libffi-dev \
+ # needed to build pysqlcipher
+ libsqlcipher-dev \
+ # needed to support keymanager
+ libsqlite3-dev \
+ # install pip, so later we can install tox
+ python-pip \
+ # used to show connection to couchdb during CI
+ curl \
+ # needed to build pysqlcipher module
+ build-essential \
+ # needed to build docker images
+ docker.io
+
+# We need git from backports because it has
+# the "%cI: committer date, strict ISO 8601 format"
+# pretty format which is used by pytest-benchmark
+RUN apt-get -y install -t jessie-backports git
+
+RUN pip install -U pip
+RUN pip install tox
diff --git a/scripts/testing/check-pysqlcipher.py b/scripts/testing/check-pysqlcipher.py
new file mode 100755
index 00000000..4202b13b
--- /dev/null
+++ b/scripts/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/scripts/testing/ensure-pysqlcipher-has-usleep.sh b/scripts/testing/ensure-pysqlcipher-has-usleep.sh
new file mode 100755
index 00000000..d3d93d86
--- /dev/null
+++ b/scripts/testing/ensure-pysqlcipher-has-usleep.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# make sure that the current installed version of pysqlcipher has the
+# HAVE_USLEEP flag set so we don't have problems with concurrent db access.
+
+set -e
+
+install_bundled_pysqlcipher() {
+ pip uninstall -y pysqlcipher
+ pip install --install-option="--bundled" pysqlcipher
+}
+
+./check-pysqlcipher.py || (install_bundled_pysqlcipher && ./check-pysqlcipher.py)