X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=t%2Fintegration%2Ftest_lib.sh;h=78aa3be2fb81e7d72c3d794dc3fb52c41385d84d;hb=e5cdc52af5132aba291c623cada6ef585eb72089;hp=f6898e4678a9359e7e3b78949e095f8d2f36e9fc;hpb=13fe0f9ec3d161fab7a015054649910541d75f5e;p=sysdb.git diff --git a/t/integration/test_lib.sh b/t/integration/test_lib.sh index f6898e4..78aa3be 100644 --- a/t/integration/test_lib.sh +++ b/t/integration/test_lib.sh @@ -29,14 +29,29 @@ # TOP_SRCDIR="$( readlink -f "$( dirname "$0" )/../.." )" +TOP_BUILDDIR="$TOP_SRCDIR" +if test -n "$VPATH"; then + # We'll have to guess. + if test -d ../t; then + TOP_BUILDDIR="$( readlink -f .. )" + else if test -d t; then + TOP_BUILDDIR="$( readlink -f . )" + fi; fi +fi + TESTDIR="$( mktemp -d )" trap "rm -rf '$TESTDIR'; test -z \$SYSDBD_PID || kill \$SYSDBD_PID" EXIT mkdir "$TESTDIR/backend" -cp "$TOP_SRCDIR/t/integration/.libs/mock_plugin.so" "$TESTDIR/backend" +cp "$TOP_BUILDDIR/t/integration/.libs/mock_timeseries.so" "$TESTDIR" +cp "$TOP_BUILDDIR/t/integration/.libs/mock_plugin.so" "$TESTDIR/backend" + +mkdir "$TESTDIR/store" +cp "$TOP_BUILDDIR/src/plugins/store/.libs/memory.so" "$TESTDIR/store" +cp "$TOP_BUILDDIR/src/plugins/store/.libs/network.so" "$TESTDIR/store" -cp "$TOP_SRCDIR"/src/sysdb "$TESTDIR" -cp "$TOP_SRCDIR"/src/sysdbd "$TESTDIR" +cp "$TOP_BUILDDIR"/src/sysdb "$TESTDIR" +cp "$TOP_BUILDDIR"/src/sysdbd "$TESTDIR" MEMCHECK="valgrind --quiet --tool=memcheck --error-exitcode=1" MEMCHECK="$MEMCHECK --trace-children=yes" @@ -50,6 +65,13 @@ SYSDBD_CONF="$TESTDIR/sysdbd.conf" SOCKET_FILE="$TESTDIR/sock" PLUGIN_DIR="$TESTDIR" +CA_KEY="" +CA_CERT="" +SERVER_KEY="" +SERVER_CERT="" +CLIENT_KEY="" +CLIENT_CERT="" + SYSDB_USER="$( id -un )" function run_sysdb() { @@ -81,6 +103,9 @@ function stop_sysdbd() { function wait_for_sysdbd() { local socket="$SOCKET_FILE" + if test -n "$1"; then + socket="$1" + fi local i for (( i=0; i<10; i++ )); do if test -e "$socket"; then @@ -94,3 +119,46 @@ function wait_for_sysdbd() { fi } +function wait_for_sysdbd_tcp() { + local host="$1" + local port="$2" + local i + for (( i=0; i<10; i++ )); do + if echo | nc "$host" "$port"; then + break + fi + sleep 1 + done + if test $i -eq 10; then + echo 'SysDBd did not start within 10 seconds' >&2 + exit 1 + fi +} + +function setup_ssl() { + CA_KEY="$TESTDIR/cacert.key" + CA_CERT="$TESTDIR/cacert.cert" + openssl genrsa -out "$CA_KEY" 2048 + openssl req -batch -subj '/CN=Some CA' \ + -x509 -new -key "$CA_KEY" -out "$CA_CERT" -days 1 + + SERVER_KEY="$TESTDIR/server.key" + SERVER_CERT="$TESTDIR/server.cert" + openssl genrsa -out "$SERVER_KEY" 2048 + openssl req -batch -subj '/CN=localhost' \ + -new -out "${SERVER_CERT}.csr" -key "$SERVER_KEY" + openssl x509 -req -in "${SERVER_CERT}.csr" -out "$SERVER_CERT" -days 1 \ + -CAkey "$CA_KEY" -CA "$CA_CERT" -CAcreateserial \ + -CAserial ${TESTDIR}/serial + + CLIENT_KEY="$TESTDIR/client.key" + CLIENT_CERT="$TESTDIR/client.cert" + openssl genrsa -out "$CLIENT_KEY" 2048 + openssl req -batch -subj "/CN=$SYSDB_USER" \ + -new -out "${CLIENT_CERT}.csr" -key "$CLIENT_KEY" + openssl x509 -req -in "${CLIENT_CERT}.csr" -out "$CLIENT_CERT" -days 1 \ + -CAkey "$CA_KEY" -CA "$CA_CERT" -CAcreateserial \ + -CAserial ${TESTDIR}/serial +} + +# vim: set tw=78 sw=4 ts=4 noexpandtab :