X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=t%2Fintegration%2Ftest_lib.sh;h=78aa3be2fb81e7d72c3d794dc3fb52c41385d84d;hp=469198afd4c7341bb56c0ce841158d28ee3d6261;hb=dc7d88e992d19870cbec25244e0f1d4ddc0541b7;hpb=d01cf06de423b934d028f8ae0a5d76376e333c4e diff --git a/t/integration/test_lib.sh b/t/integration/test_lib.sh index 469198a..78aa3be 100644 --- a/t/integration/test_lib.sh +++ b/t/integration/test_lib.sh @@ -29,15 +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_timeseries.so" "$TESTDIR" -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" @@ -51,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() { @@ -82,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 @@ -95,4 +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 :