#!/bin/bash set -e export LC_ALL=C.UTF-8 export LANG=C.UTF-8 export TZ=UTC # suppress UnknownTimeZoneError('Etc/UTC',) DCS=$1 if [ $(id -u) -eq 0 ] then # required so that the postgres user can create .coverage* and features/output/ chmod 777 . chmod 777 features SU='su postgres -p -c' # zookeeper must be started manually (as root) if [ "$DCS" = "zookeeper" ]; then # JAVA_OPTS need to be set, otherwise zookeeper is not reachable via IPV4 sed -i -e 's/#JAVA_OPTS=""/JAVA_OPTS="-Djava.net.preferIPv4Stack=true"/' /etc/default/zookeeper /etc/init.d/zookeeper start # let Java have some more time to startup sleep 5 fi else SU='bash -c' fi # clean up afterwards trap 'rm -f /tmp/pgpass?; if [ $(id -u) -eq 0 ] && [ -x /etc/init.d/zookeeper ]; then /etc/init.d/zookeeper stop; fi' 0 2 3 15 # set ETCD_ARCH for ETCD_UNSUPPORTED_ARCH # see https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/supported-platform.md#current-support ETCD_ARCH= DEB_HOST_ARCH=$(dpkg-architecture -qDEB_HOST_ARCH) case $DEB_HOST_ARCH in arm64) ETCD_ARCH=arm64 ;; armel) ETCD_ARCH=arm ;; armhf) ETCD_ARCH=arm ;; i386) ETCD_ARCH=386 ;; esac set -x for PG_VERSION in /usr/lib/postgresql/*; do $SU "ETCD_UNSUPPORTED_ARCH=$ETCD_ARCH DCS=$DCS PATH=/usr/lib/postgresql/$(basename \ ${PG_VERSION})/bin:$PATH behave" || \ (for file in $(ls features/output/*_failed/*); do echo "$file:"; cat $file; done && exit 1) done