gnunet-svn
[Top][All Lists]
Advanced

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

[taler-exchange] branch master updated: -fix test-auditor.sh


From: gnunet
Subject: [taler-exchange] branch master updated: -fix test-auditor.sh
Date: Fri, 23 Sep 2022 16:18:12 +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 7b40c38a -fix test-auditor.sh
7b40c38a is described below

commit 7b40c38a02e4c9850ce320e388ef08d8bd78dd71
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Fri Sep 23 16:18:07 2022 +0200

    -fix test-auditor.sh
---
 src/auditor/test-auditor.sh | 113 +++++++++++++++++---------------------------
 1 file changed, 44 insertions(+), 69 deletions(-)

diff --git a/src/auditor/test-auditor.sh b/src/auditor/test-auditor.sh
index 9601c2f5..b77f1422 100755
--- a/src/auditor/test-auditor.sh
+++ b/src/auditor/test-auditor.sh
@@ -61,29 +61,27 @@ function exit_fail() {
     exit 1
 }
 
-# Clean up leftovers on start
-rm -f libeufin-sandbox.pid libeufin-nexus.pid
-
+# Stop libeufin sandbox and nexus (if running)
 function stop_libeufin()
 {
-    echo "killing libeufin..."
-    if test -f libeufin-sandbox.pid
+    echo "Stopping libeufin..."
+    if test -f ${MYDIR:-/}/libeufin-sandbox.pid
     then
-        echo "Killing libeufin sandbox"
-        PID=`cat libeufin-sandbox.pid 2> /dev/null`
+        PID=`cat ${MYDIR}/libeufin-sandbox.pid 2> /dev/null`
+        echo "Killing libeufin sandbox $PID"
+        rm ${MYDIR}/libeufin-sandbox.pid
         kill $PID 2> /dev/null || true
         wait $PID || true
-        rm libeufin-sandbox.pid
     fi
-    if test -f libeufin-nexus.pid
+    if test -f ${MYDIR:-/}/libeufin-nexus.pid
     then
-        echo "Killing libeufin nexus"
-        PID=`cat libeufin-nexus.pid 2> /dev/null`
+        PID=`cat ${MYDIR}/libeufin-nexus.pid 2> /dev/null`
+        echo "Killing libeufin nexus $PID"
+        rm ${MYDIR}/libeufin-nexus.pid
         kill $PID 2> /dev/null || true
         wait $PID || true
-        rm libeufin-nexus.pid
     fi
-    echo "killing libeufin DONE"
+    echo "Stopping libeufin DONE"
 }
 
 # Cleanup exchange and libeufin between runs.
@@ -342,6 +340,8 @@ function full_reload()
     # Import pre-generated database, -q(ietly) using single (-1) transaction
     psql -Aqt $DB -q -1 -f ${BASEDB}.sql > /dev/null || exit_skip "Failed to 
load database $DB from ${BASEDB}.sql"
     echo "DONE"
+    # Technically, this call shouldn't be needed as libeufin should already be 
stopped here...
+    stop_libeufin
     cd $MYDIR
     rm -f ${DB}-nexus.sqlite3 ${DB}-sandbox.sqlite3 2> /dev/null || true # 
libeufin
     echo -n "Loading libeufin Nexus basedb: ${BASEDB}-libeufin-nexus.sql "
@@ -844,11 +844,13 @@ function test_7() {
 function test_8() {
 
     echo "===========8: wire-transfer-subject disagreement==========="
+    # Technically, this call shouldn't be needed, as libeufin should already 
be stopped here.
+    stop_libeufin
     cd $MYDIR
-    OLD_ID=`echo "SELECT id FROM NexusBankTransactions WHERE amount='10' AND 
currency='TESTKUDOS' ORDER BY id LIMIT 1;" | sqlite3 ${DB}-nexus.sqlite3`
+    OLD_ID=`echo "SELECT id FROM NexusBankTransactions WHERE amount='10' AND 
currency='TESTKUDOS' ORDER BY id LIMIT 1;" | sqlite3 ${DB}-nexus.sqlite3` || 
exit_fail "Failed to SELECT FROM NexusBankTransactions nexus DB!"
     OLD_WTID=`echo "SELECT reservePublicKey FROM TalerIncomingPayments WHERE 
payment='$OLD_ID';" | sqlite3 ${DB}-nexus.sqlite3`
     NEW_WTID="CK9QBFY972KR32FVA1MW958JWACEB6XCMHHKVFMCH1A780Q12SVG"
-    echo "UPDATE TalerIncomingPayments SET reservePublicKey='$NEW_WTID' WHERE 
payment='$OLD_ID';" | sqlite3 ${DB}-nexus.sqlite3
+    echo "UPDATE TalerIncomingPayments SET reservePublicKey='$NEW_WTID' WHERE 
payment='$OLD_ID';" | sqlite3 ${DB}-nexus.sqlite3 || exit_fail "Failed to 
update TalerIncomingPayments"
     cd $ORIGIN
 
     run_audit
@@ -917,6 +919,8 @@ function test_8() {
 function test_9() {
 
     echo "===========9: wire-origin disagreement==========="
+    # Technically, this call shouldn't be needed, as libeufin should already 
be stopped here.
+    stop_libeufin
     OLD_ID=`echo "SELECT id FROM NexusBankTransactions WHERE amount='10' AND 
currency='TESTKUDOS' ORDER BY id LIMIT 1;" | sqlite3 
${MYDIR}/${DB}-nexus.sqlite3`
     OLD_ACC=`echo "SELECT incomingPaytoUri FROM TalerIncomingPayments WHERE 
payment='$OLD_ID';" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3`
     echo "UPDATE TalerIncomingPayments SET 
incomingPaytoUri='payto://iban/SANDBOXX/DE144373?receiver-name=New+Exchange+Company'
 WHERE payment='$OLD_ID';" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3
@@ -946,6 +950,8 @@ function test_9() {
 function test_10() {
     NOW_MS=`date +%s`000
     echo "===========10: wire-timestamp disagreement==========="
+    # Technically, this call shouldn't be needed, as libeufin should already 
be stopped here.
+    stop_libeufin
     OLD_ID=`echo "SELECT id FROM NexusBankTransactions WHERE amount='10' AND 
currency='TESTKUDOS' ORDER BY id LIMIT 1;" | sqlite3 
${MYDIR}/${DB}-nexus.sqlite3`
     OLD_DATE=`echo "SELECT timestampMs FROM TalerIncomingPayments WHERE 
payment='$OLD_ID';" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3`
     echo "UPDATE TalerIncomingPayments SET timestampMs=$NOW_MS WHERE 
payment=$OLD_ID;" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3
@@ -976,6 +982,8 @@ function test_10() {
 # ingested table: 
'.batches[0].batchTransactions[0].details.unstructuredRemittanceInformation'
 function test_11() {
     echo "===========11: spurious outgoing transfer ==========="
+    # Technically, this call shouldn't be needed, as libeufin should already 
be stopped here.
+    stop_libeufin
     OLD_ID=`echo "SELECT id FROM NexusBankTransactions WHERE amount='10' AND 
currency='TESTKUDOS' ORDER BY id LIMIT 1;" | sqlite3 
${MYDIR}/${DB}-nexus.sqlite3`
     OLD_TX=`echo "SELECT transactionJson FROM NexusBankTransactions WHERE 
id='$OLD_ID';" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3`
     # Change wire transfer to be FROM the exchange (#2) to elsewhere!
@@ -1167,29 +1175,11 @@ function test_16() {
     # have a wire_out to modify.
     pre_audit aggregator
 
-    # This function helps to retry when the database is locked by
-    # libEufin.
-    # Modify wire amount, such that it is inconsistent with 'aggregation'
-    # (Only one payment out exist, so the logic below should select the 
outgoing
-    # wire transfer):
-    function test_16_db () {
-        OLD_AMOUNT=`echo "SELECT amount FROM TalerRequestedPayments WHERE 
id='1';" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3`
-        NEW_AMOUNT="TESTKUDOS:50"
-        echo "UPDATE TalerRequestedPayments SET amount='${NEW_AMOUNT}' WHERE 
id='1';" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3
-    }
-    echo -n Trying to patch the SQLite database..
-    for try in `seq 1 10`; do
-        if test_16_db 2>&1 > /dev/null; then
-            break
-        fi
-        echo -n .
-        if test $try = 10; then
-            exit_fail "Could not modify the SQLite database"
-        fi
-        sleep 0.3
-    done
-    echo DONE
-
+    stop_libeufin
+    OLD_AMOUNT=`echo "SELECT amount FROM TalerRequestedPayments WHERE id='1';" 
| sqlite3 ${MYDIR}/${DB}-nexus.sqlite3`
+    NEW_AMOUNT="TESTKUDOS:50"
+    echo "UPDATE TalerRequestedPayments SET amount='${NEW_AMOUNT}' WHERE 
id='1';" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3
+    launch_libeufin
     audit_only
 
     echo -n "Testing inconsistency detection... "
@@ -1216,11 +1206,13 @@ function test_16() {
     fi
     echo PASS
 
-    echo "Second modification: wire nothing"
+    stop_libeufin
+    echo "Second modification: wire nothing" 
     NEW_AMOUNT="TESTKUDOS:0"
     echo "UPDATE TalerRequestedPayments SET amount='${NEW_AMOUNT}' WHERE 
id='1';" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3
+    launch_libeufin
     audit_only
-
+    stop_libeufin
     echo -n "Testing inconsistency detection... "
 
     AMOUNT=`jq -r .wire_out_amount_inconsistencies[0].amount_justified < 
test-audit-wire.json`
@@ -1260,32 +1252,15 @@ function test_17() {
     # First, we need to run the aggregator so we even
     # have a wire_out to modify.
     pre_audit aggregator
-
-    # This function helps to retry when the database is locked
-    # already by libEufin.
-    # Modify wire amount, such that it is inconsistent with 'aggregation'
-    # (exchange paid only once, so the logic below should select the outgoing
-    # wire transfer).
-    function test_17_db () {
-        OLD_ID=1
-        OLD_PREP=`echo "SELECT payment FROM TalerRequestedPayments WHERE 
id='${OLD_ID}';" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3`
-        OLD_DATE=`echo "SELECT preparationDate FROM PaymentInitiations WHERE 
id='${OLD_ID}';" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3`
-        # Note: need - interval '1h' as "NOW()" may otherwise be exactly what 
is already in the DB
-        # (due to rounding, if this machine is fast...)
-        NOW_1HR=$(expr $(date +%s) - 3600)
-        echo "UPDATE PaymentInitiations SET preparationDate='$NOW_1HR' WHERE 
id='${OLD_PREP}';" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3
-    }
-    echo -n Trying to patch the SQLite database..
-    for try in `seq 1 10`; do
-        if test_17_db 2>&1 > /dev/null; then
-            break
-        fi
-        echo -n .
-        if test $try = 10; then
-            exit_fail "Could not modify the SQLite database"
-        fi
-        sleep 0.3
-    done
+    stop_libeufin
+    OLD_ID=1
+    OLD_PREP=`echo "SELECT payment FROM TalerRequestedPayments WHERE 
id='${OLD_ID}';" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3`
+    OLD_DATE=`echo "SELECT preparationDate FROM PaymentInitiations WHERE 
id='${OLD_ID}';" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3`
+    # Note: need - interval '1h' as "NOW()" may otherwise be exactly what is 
already in the DB
+    # (due to rounding, if this machine is fast...)
+    NOW_1HR=$(expr $(date +%s) - 3600)
+    echo "UPDATE PaymentInitiations SET preparationDate='$NOW_1HR' WHERE 
id='${OLD_PREP}';" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3
+    launch_libeufin
     echo DONE
     audit_only
     post_audit
@@ -1433,10 +1408,11 @@ function test_21() {
 
     # Need to first run the aggregator so the transfer is marked as done exists
     pre_audit aggregator
-
+    stop_libeufin
     # remove transaction from bank DB
     # Currently emulating this (to be deleted):
     echo "DELETE FROM TalerRequestedPayments WHERE 
amount='TESTKUDOS:${VAL_DELTA}'" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3
+    launch_libeufin
     audit_only
     post_audit
 
@@ -1685,12 +1661,11 @@ function test_27() {
     echo "===========27: duplicate WTID detection ================="
 
     pre_audit aggregator
-
+    stop_libeufin
     # Obtain data to duplicate.
     WTID=`echo SELECT wtid FROM TalerRequestedPayments WHERE id=1 | sqlite3 
${MYDIR}/${DB}-nexus.sqlite3`
     echo WTID=$WTID
     OTHER_IBAN=`echo -e "SELECT iban FROM BankAccounts WHERE label='fortytwo'" 
| sqlite3 ${MYDIR}/${DB}-sandbox.sqlite3`
-    stop_libeufin
     # 'rawConfirmation' is set to 2 here, that doesn't
     # point to any record.  That's only needed to set a non null value.
     echo -e "INSERT INTO PaymentInitiations 
(bankAccount,preparationDate,submissionDate,sum,currency,endToEndId,paymentInformationId,instructionId,subject,creditorIban,creditorBic,creditorName,submitted,messageId,rawConfirmation)
 VALUES (1,$(date +%s),$(expr $(date +%s) + 
2),10,'TESTKUDOS','NOTGIVEN','unused','unused','$WTID 
http://exchange.example.com/','$OTHER_IBAN','SANDBOXX','Forty 
Two','unused',1,2)" | sqlite3 ${MYDIR}/${DB}-nexus.sqlite3

-- 
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]