diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/docker/Dockerfile | 33 | ||||
-rwxr-xr-x | scripts/testing/check-pysqlcipher.py | 23 | ||||
-rwxr-xr-x | scripts/testing/ensure-pysqlcipher-has-usleep.sh | 13 |
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) |