gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-exchange] branch master updated: -use private DB for tests


From: gnunet
Subject: [taler-exchange] branch master updated: -use private DB for tests
Date: Mon, 12 Sep 2022 11:34:04 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository exchange.

The following commit(s) were added to refs/heads/master by this push:
     new 05cf62b3 -use private DB for tests
05cf62b3 is described below

commit 05cf62b3973236c8646005e27a50cc27be559408
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Mon Sep 12 11:33:56 2022 +0200

    -use private DB for tests
---
 contrib/gana                           |  2 +-
 doc/prebuilt                           |  2 +-
 src/auditor/generate-auditor-basedb.sh |  5 +--
 src/auditor/generate-revoke-basedb.sh  | 14 ++++++--
 src/auditor/test-auditor.sh            | 55 +++++++++++++++++++++++-----
 src/auditor/test-revocation.sh         | 66 ++++++++++++++++++++++++----------
 src/auditor/test-sync.sh               | 63 ++++++++++++++++++++++++++------
 7 files changed, 163 insertions(+), 44 deletions(-)

diff --git a/contrib/gana b/contrib/gana
index 5f6a1413..75c838e7 160000
--- a/contrib/gana
+++ b/contrib/gana
@@ -1 +1 @@
-Subproject commit 5f6a1413a6053d1999064768188f1671eb015897
+Subproject commit 75c838e74c41bf9a6c02cdfe8109a444056bf26d
diff --git a/doc/prebuilt b/doc/prebuilt
index b988d98d..74d9c44e 160000
--- a/doc/prebuilt
+++ b/doc/prebuilt
@@ -1 +1 @@
-Subproject commit b988d98d4856758484eb23c27bfdc9e602d4235a
+Subproject commit 74d9c44ebc257a3d8b9c2c0a806508bd0cc5269a
diff --git a/src/auditor/generate-auditor-basedb.sh 
b/src/auditor/generate-auditor-basedb.sh
index 396f85cf..1a42a7b0 100755
--- a/src/auditor/generate-auditor-basedb.sh
+++ b/src/auditor/generate-auditor-basedb.sh
@@ -65,11 +65,14 @@ rm -f $WALLET_DB
 # delete libeufin database
 rm -f $TARGET_DB
 
+
 # Configuration file will be edited, so we create one
 # from the template.
 CONF_ONCE=${BASEDB}.conf
 cp generate-auditor-basedb.conf $CONF_ONCE
 taler-config -c ${CONF_ONCE} -s exchange-offline -o MASTER_PRIV_FILE -V 
${BASEDB}.mpriv
+
+
 echo -n "Testing for libeufin"
 libeufin-cli --help >/dev/null </dev/null || exit_skip " MISSING"
 echo " FOUND"
@@ -80,8 +83,6 @@ echo -n "Testing for curl"
 curl --help >/dev/null </dev/null || exit_skip " MISSING"
 echo " FOUND"
 
-
-pwd
 # Clean up
 
 DATA_DIR=`taler-config -f -c $CONF_ONCE -s PATHS -o TALER_HOME`
diff --git a/src/auditor/generate-revoke-basedb.sh 
b/src/auditor/generate-revoke-basedb.sh
index 3832876d..64e25d59 100755
--- a/src/auditor/generate-revoke-basedb.sh
+++ b/src/auditor/generate-revoke-basedb.sh
@@ -14,10 +14,18 @@ function cleanup()
     do
         kill $n 2> /dev/null || true
     done
-    echo Killing euFin..
-    kill `cat libeufin-sandbox.pid 2> /dev/null` &> /dev/null || true
-    kill `cat libeufin-nexus.pid 2> /dev/null` &> /dev/null || true
     wait
+    if test -f libeufin-sandbox.pid
+    then
+        echo "Killing libeufin sandbox"
+        kill `cat libeufin-sandbox.pid 2> /dev/null` &> /dev/null || true
+    fi
+    if test -f libeufin-nexus.pid
+    then
+        echo "Killing libeufin nexus"
+        kill `cat libeufin-nexus.pid 2> /dev/null` &> /dev/null || true
+    fi
+    rm -f libeufin-sandbox.pid libeufin-nexus.pid
 }
 
 function get_payto_uri() {
diff --git a/src/auditor/test-auditor.sh b/src/auditor/test-auditor.sh
index 352ba593..297225fe 100755
--- a/src/auditor/test-auditor.sh
+++ b/src/auditor/test-auditor.sh
@@ -35,28 +35,39 @@ LIBEUFIN_SETTLE_TIME=1
 
 # Exit, with status code "skip" (no 'real' failure)
 function exit_skip() {
-    echo $1
+    echo "SKIPPING test: $1"
     exit 77
 }
 
 # Exit, with error message (hard failure)
 function exit_fail() {
-    echo $1
+    echo "FAILING test: $1"
     exit 1
 }
 
 # Cleanup to run whenever we exit
 function cleanup()
 {
+    if test ! -z ${POSTGRES_PATH:-}
+    then
+        ${POSTGRES_PATH}/pg_ctl -D $TMPDIR -l /dev/null stop &> /dev/null || 
true
+    fi
     for n in `jobs -p`
     do
         kill $n 2> /dev/null || true
     done
     wait
     # kill euFin
-    echo -n "Killing euFin.."
-    kill `cat libeufin-sandbox.pid 2> /dev/null` &> /dev/null || true
-    kill `cat libeufin-nexus.pid 2> /dev/null` &> /dev/null || true
+    if test -f libeufin-sandbox.pid
+    then
+        echo "Killing libeufin sandbox"
+        kill `cat libeufin-sandbox.pid 2> /dev/null` &> /dev/null || true
+    fi
+    if test -f libeufin-nexus.pid
+    then
+        echo "Killing libeufin nexus"
+        kill `cat libeufin-nexus.pid 2> /dev/null` &> /dev/null || true
+    fi
     echo DONE
 }
 
@@ -1978,14 +1989,41 @@ echo "Testing for faketime"
 faketime -h > /dev/null || exit_skip "faketime required"
 # NOTE: really check for all three libeufin commands?
 echo "Testing for libeufin"
-libeufin-cli --help >/dev/null </dev/null || exit_skip "libeufin required"
+libeufin-cli --help >/dev/null 2> /dev/null </dev/null || exit_skip "libeufin 
required"
 echo "Testing for pdflatex"
 which pdflatex > /dev/null </dev/null || exit_skip "pdflatex required"
-
-# check if we should regenerate the database
 echo "Testing for taler-wallet-cli"
 taler-wallet-cli -h >/dev/null </dev/null 2>/dev/null || exit_skip 
"taler-wallet-cli required"
 MYDIR=`mktemp -d /tmp/taler-auditor-basedbXXXXXX`
+
+
+echo -n "Testing for Postgres"
+HAVE_INITDB=`find /usr -name "initdb" | grep postgres` || exit_skip " MISSING"
+echo " FOUND"
+echo -n "Setting up Postgres DB"
+INITDB_BIN=`find /usr -name "initdb" | grep bin/initdb | grep postgres | sort 
-n | tail -n1` 
+POSTGRES_PATH=`basename $INITDB_BIN`
+TMPDIR=`mktemp -d /tmp/taler-test-postgresXXXXXX`
+$INITDB_BIN --no-sync --auth=trust -D ${TMPDIR} > postgres-dbinit.log 2> 
postgres-dbinit.err
+echo " DONE"
+mkdir ${TMPDIR}/sockets
+echo -n "Launching Postgres service"
+cat - >> $TMPDIR/postgresql.conf <<EOF
+unix_socket_directories='${TMPDIR}/sockets'
+fsync=off
+max_wal_senders=0
+synchronous_commit=off
+wal_level=minimal
+listen_addresses=''
+EOF
+cat $TMPDIR/pg_hba.conf | grep -v host > $TMPDIR/pg_hba.conf.new
+mv $TMPDIR/pg_hba.conf.new  $TMPDIR/pg_hba.conf
+${POSTGRES_PATH}/pg_ctl -D $TMPDIR -l /dev/null start > postgres-start.log 2> 
postgres-start.err
+echo " DONE"
+PGHOST="$TMPDIR/sockets"
+EXPORT PGHOST="@POSTGRES_SOCKET"
+
+
 echo "Generating fresh database at $MYDIR"
 if faketime -f '-1 d' ./generate-auditor-basedb.sh $MYDIR/basedb
 then
@@ -1996,6 +2034,7 @@ then
     else
         echo "Cleaning up $MYDIR..."
         rm -rf $MYDIR || echo "Removing $MYDIR failed"
+        rm -rf $TMPDIR || echo "Removing $TMPDIR failed"
     fi
 else
     echo "Generation failed"
diff --git a/src/auditor/test-revocation.sh b/src/auditor/test-revocation.sh
index 3f7a399f..d9737ed5 100755
--- a/src/auditor/test-revocation.sh
+++ b/src/auditor/test-revocation.sh
@@ -29,39 +29,39 @@ VALGRIND=""
 
 # Exit, with status code "skip" (no 'real' failure)
 function exit_skip() {
-    echo $1
+    echo "SKIPPING test: $1"
     exit 77
 }
 
 # Exit, with error message (hard failure)
 function exit_fail() {
-    echo $1
+    echo "FAILING test: $1"
     exit 1
 }
 
 # Cleanup to run whenever we exit
 function cleanup()
 {
+    if test ! -z ${POSTGRES_PATH:-}
+    then
+        ${POSTGRES_PATH}/pg_ctl -D $TMPDIR -l /dev/null stop &> /dev/null || 
true
+    fi
     for n in `jobs -p`
     do
         kill $n 2> /dev/null || true
     done
     wait
-    # kill euFin
-    echo Killing euFin..
-    kill `cat libeufin-sandbox.pid 2> /dev/null` &> /dev/null || true
-    kill `cat libeufin-nexus.pid 2> /dev/null` &> /dev/null || true
-    # So far only Sandbox gave exit issues / delays ..
-    count=0
-    while ps xo pid | grep `cat libeufin-sandbox.pid`; do
-        if test $count = 5; then
-            echo "Sandbox unkillable, failing now .."
-               exit 1
-        fi
-        echo "Sandbox didn't exit yet.."
-        sleep 1;
-        count=`expr $count + 1`
-    done
+    if test -f libeufin-sandbox.pid
+    then
+        echo "Killing libeufin sandbox"
+        kill `cat libeufin-sandbox.pid 2> /dev/null` &> /dev/null || true
+    fi
+    if test -f libeufin-nexus.pid
+    then
+        echo "Killing libeufin nexus"
+        kill `cat libeufin-nexus.pid 2> /dev/null` &> /dev/null || true
+    fi
+    rm -f libeufin-sandbox.pid libeufin-nexus.pid
 }
 
 # Install cleanup handler (except for kill -9)
@@ -576,12 +576,39 @@ jq -h > /dev/null || exit_skip "jq required"
 echo "Testing for faketime"
 faketime -h > /dev/null || exit_skip "faketime required"
 echo "Testing for libeufin(-cli)"
-libeufin-cli --help >/dev/null </dev/null || exit_skip "libeufin required"
+libeufin-cli --help >/dev/null 2> /dev/null </dev/null || exit_skip "libeufin 
required"
 echo "Testing for pdflatex"
 which pdflatex > /dev/null </dev/null || exit_skip "pdflatex required"
-
 echo "Testing for taler-wallet-cli"
 taler-wallet-cli -h >/dev/null </dev/null 2>/dev/null || exit_skip 
"taler-wallet-cli required"
+
+echo -n "Testing for Postgres"
+HAVE_INITDB=`find /usr -name "initdb" | grep postgres` || exit_skip " MISSING"
+echo " FOUND"
+echo -n "Setting up Postgres DB"
+INITDB_BIN=`find /usr -name "initdb" | grep bin/initdb | grep postgres | sort 
-n | tail -n1` 
+POSTGRES_PATH=`basename $INITDB_BIN`
+TMPDIR=`mktemp -d /tmp/taler-test-postgresXXXXXX`
+$INITDB_BIN --no-sync --auth=trust -D ${TMPDIR} > postgres-dbinit.log 2> 
postgres-dbinit.err
+echo " DONE"
+mkdir ${TMPDIR}/sockets
+echo -n "Launching Postgres service"
+cat - >> $TMPDIR/postgresql.conf <<EOF
+unix_socket_directories='${TMPDIR}/sockets'
+fsync=off
+max_wal_senders=0
+synchronous_commit=off
+wal_level=minimal
+listen_addresses=''
+EOF
+cat $TMPDIR/pg_hba.conf | grep -v host > $TMPDIR/pg_hba.conf.new
+mv $TMPDIR/pg_hba.conf.new  $TMPDIR/pg_hba.conf
+${POSTGRES_PATH}/pg_ctl -D $TMPDIR -l /dev/null start > postgres-start.log 2> 
postgres-start.err
+echo " DONE"
+PGHOST="$TMPDIR/sockets"
+EXPORT PGHOST="@POSTGRES_SOCKET"
+
+
 MYDIR=`mktemp -d /tmp/taler-auditor-basedbXXXXXX`
 echo "Generating fresh database at $MYDIR"
 if faketime -f '-1 d' ./generate-revoke-basedb.sh $MYDIR/basedb
@@ -593,6 +620,7 @@ then
     else
         echo "Cleaning up $MYDIR..."
         rm -rf $MYDIR || echo "Removing $MYDIR failed"
+        rm -rf $TMPDIR || echo "Removing $TMPDIR failed"
     fi
 else
     echo "Generation failed"
diff --git a/src/auditor/test-sync.sh b/src/auditor/test-sync.sh
index b40f1155..0c9327d6 100755
--- a/src/auditor/test-sync.sh
+++ b/src/auditor/test-sync.sh
@@ -1,20 +1,36 @@
-#!/bin/sh
+#!/bin/bash
 
 set -eu
 
 # Exit, with status code "skip" (no 'real' failure)
-exit_skip() {
-    echo $1
+function exit_skip() {
+    echo "SKIPPING test: $1"
     exit 77
 }
 
 # Exit, with error message (hard failure)
-exit_fail() {
-    echo $1
+function exit_fail() {
+    echo "FAILING test: $1"
     exit 1
 }
 
-check_with_database()
+# Cleanup to run whenever we exit
+function cleanup() {
+    if test ! -z ${POSTGRES_PATH:-}
+    then
+        ${POSTGRES_PATH}/pg_ctl -D $TMPDIR stop &> /dev/null || true
+    fi
+    for n in `jobs -p`
+    do
+        kill $n 2> /dev/null || true
+    done
+    wait
+}
+
+# Install cleanup handler (except for kill -9)
+trap cleanup EXIT
+
+function check_with_database()
 {
     echo -n "Testing synchronization logic ..."
 
@@ -68,15 +84,41 @@ echo "Testing for jq"
 jq -h > /dev/null || exit_skip "jq required"
 echo "Testing for faketime"
 faketime -h > /dev/null || exit_skip "faketime required"
-# NOTE: really check for all three libeufin commands?
 echo "Testing for libeufin"
-libeufin-cli --help >/dev/null </dev/null || exit_skip "libeufin required"
+libeufin-cli --help >/dev/null </dev/null 2> /dev/null || exit_skip "libeufin 
required"
 echo "Testing for pdflatex"
 which pdflatex > /dev/null </dev/null || exit_skip "pdflatex required"
-
-# check if we should regenerate the database
 echo "Testing for taler-wallet-cli"
 taler-wallet-cli -h >/dev/null </dev/null 2>/dev/null || exit_skip 
"taler-wallet-cli required"
+
+echo -n "Testing for Postgres"
+HAVE_INITDB=`find /usr -name "initdb" | grep postgres` || exit_skip " MISSING"
+echo " FOUND"
+echo -n "Setting up Postgres DB"
+INITDB_BIN=`find /usr -name "initdb" | grep bin/initdb | grep postgres | sort 
-n | tail -n1` 
+POSTGRES_PATH=`basename $INITDB_BIN`
+TMPDIR=`mktemp -d /tmp/taler-test-postgresXXXXXX`
+$INITDB_BIN --no-sync --auth=trust -D ${TMPDIR} > postgres-dbinit.log 2> 
postgres-dbinit.err
+echo " DONE"
+mkdir ${TMPDIR}/sockets
+echo -n "Launching Postgres service"
+cat - >> $TMPDIR/postgresql.conf <<EOF
+unix_socket_directories='${TMPDIR}/sockets'
+fsync=off
+max_wal_senders=0
+synchronous_commit=off
+wal_level=minimal
+listen_addresses=''
+EOF
+cat $TMPDIR/pg_hba.conf | grep -v host > $TMPDIR/pg_hba.conf.new
+mv $TMPDIR/pg_hba.conf.new  $TMPDIR/pg_hba.conf
+${POSTGRES_PATH}/pg_ctl -D $TMPDIR -l /dev/null start > postgres-start.log 2> 
postgres-start.err
+echo " DONE"
+PGHOST="$TMPDIR/sockets"
+EXPORT PGHOST="@POSTGRES_SOCKET"
+
+
+
 MYDIR=`mktemp -d /tmp/taler-auditor-basedbXXXXXX`
 echo "Generating fresh database at $MYDIR"
 if faketime -f '-1 d' ./generate-auditor-basedb.sh $MYDIR/basedb
@@ -88,6 +130,7 @@ then
     else
         echo "Cleaning up $MYDIR..."
         rm -rf $MYDIR || echo "Removing $MYDIR failed"
+        rm -rf $TMPDIR || echo "Removing $TMPDIR failed"
     fi
 else
     echo "Generation failed"

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]