gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis] branch master updated: try to migrate test_anastasis_r


From: gnunet
Subject: [taler-anastasis] branch master updated: try to migrate test_anastasis_reducer_enter_secret to fakebank
Date: Wed, 23 Aug 2023 22:05:57 +0200

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

grothoff pushed a commit to branch master
in repository anastasis.

The following commit(s) were added to refs/heads/master by this push:
     new 7916db6  try to migrate test_anastasis_reducer_enter_secret to fakebank
7916db6 is described below

commit 7916db6bdabb83cc903aec692ab59957a0e13a88
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Wed Aug 23 22:05:53 2023 +0200

    try to migrate test_anastasis_reducer_enter_secret to fakebank
---
 src/cli/Makefile.am                            |   1 +
 src/cli/setup.sh                               |  72 ++++
 src/cli/test_anastasis_reducer_enter_secret.sh | 440 +++++++++----------------
 src/cli/test_reducer.conf                      |  27 +-
 4 files changed, 258 insertions(+), 282 deletions(-)

diff --git a/src/cli/Makefile.am b/src/cli/Makefile.am
index 44cad27..dde974d 100644
--- a/src/cli/Makefile.am
+++ b/src/cli/Makefile.am
@@ -32,6 +32,7 @@ TESTS = \
 
 EXTRA_DIST = \
   $(check_SCRIPTS) \
+  setup.sh \
   test_reducer.conf \
   test_reducer_free.conf \
   test_free_reducer.conf \
diff --git a/src/cli/setup.sh b/src/cli/setup.sh
new file mode 100755
index 0000000..6d26168
--- /dev/null
+++ b/src/cli/setup.sh
@@ -0,0 +1,72 @@
+#!/bin/sh
+# This file is in the public domain
+
+# Script to be inlined into the main test scripts. Defines function 'setup()'
+# which wraps around 'taler-unified-setup.sh' to launch GNU Taler services.
+# Call setup() with the arguments to pass to 'taler-unified-setup'. setup()
+# will then launch GNU Taler, wait for the process to be complete before
+# returning. The script will also install an exit handler to ensure the GNU
+# Taler processes are stopped when the shell exits.
+
+set -eu
+
+# Cleanup to run whenever we exit
+function exit_cleanup()
+{
+    if [ ! -z ${SETUP_PID+x} ]
+    then
+        echo "Killing taler-unified-setup ($SETUP_PID)" >&2
+        kill -TERM "$SETUP_PID" 2> /dev/null || true
+        wait "$SETUP_PID" 2> /dev/null || true
+    fi
+}
+
+# Install cleanup handler (except for kill -9)
+trap exit_cleanup EXIT
+
+function setup()
+{
+    echo "Starting test system ..." >&2
+    # Create a named pipe in a temp directory we own.
+    FIFO_DIR=$(mktemp -p "${TMPDIR:-/tmp}" -d fifo-XXXXXX)
+    FIFO_OUT=$(echo "$FIFO_DIR/out")
+    mkfifo "$FIFO_OUT"
+    # Open pipe as FD 3 (RW) and FD 4 (RO)
+    exec 3<> "$FIFO_OUT" 4< "$FIFO_OUT"
+    rm -rf "$FIFO_DIR"
+    # We require '-W' for our termination logic to work.
+    taler-unified-setup.sh -W "$@" >&3 &
+    SETUP_PID=$!
+    # Close FD3
+    exec 3>&-
+    sed -u '/<<READY>>/ q' <&4
+    # Close FD4
+    exec 4>&-
+    echo "Test system ready" >&2
+}
+
+# Exit, with status code "skip" (no 'real' failure)
+function exit_fail() {
+    echo "$@" >&2
+    exit 1
+}
+
+# Exit, with status code "skip" (no 'real' failure)
+function exit_skip() {
+    echo "SKIPPING: $1"
+    exit 77
+}
+
+function get_payto_uri() {
+    export LIBEUFIN_SANDBOX_USERNAME="$1"
+    export LIBEUFIN_SANDBOX_PASSWORD="$2"
+    export LIBEUFIN_SANDBOX_URL="http://localhost:18082";
+    libeufin-cli sandbox demobank info --bank-account "$1" | jq --raw-output 
'.paytoUri'
+}
+
+function get_bankaccount_transactions() {
+    export LIBEUFIN_SANDBOX_USERNAME=$1
+    export LIBEUFIN_SANDBOX_PASSWORD=$2
+    export LIBEUFIN_SANDBOX_URL="http://localhost:18082";
+    libeufin-cli sandbox demobank list-transactions --bank-account $1
+}
diff --git a/src/cli/test_anastasis_reducer_enter_secret.sh 
b/src/cli/test_anastasis_reducer_enter_secret.sh
index e6b6610..e54dd40 100755
--- a/src/cli/test_anastasis_reducer_enter_secret.sh
+++ b/src/cli/test_anastasis_reducer_enter_secret.sh
@@ -1,6 +1,7 @@
 #!/bin/bash
 # This file is in the public domain.
 
+# shellcheck disable=SC2317
 ## Coloring style Text shell script
 COLOR='\033[0;35m'
 NOCOLOR='\033[0m'
@@ -10,68 +11,20 @@ NORM="$(tput sgr0)"
 set -eu
 set -x
 
-# Exit, with status code "skip" (no 'real' failure)
-function exit_skip() {
-    echo " SKIP: $1"
-    exit 77
-}
-
-# Exit, with error message (hard failure)
-function exit_fail() {
-    echo " FAIL: $1"
-    exit 1
-}
-
-# Stop libeufin sandbox and nexus (if running)
-function stop_libeufin()
-{
-    echo "Stopping libeufin..."
-    if test -f libeufin-sandbox.pid
-    then
-        PID=`cat libeufin-sandbox.pid 2> /dev/null`
-        echo "Killing libeufin sandbox $PID"
-        rm libeufin-sandbox.pid
-        kill $PID 2> /dev/null || true
-    fi
-    if test -f libeufin-nexus.pid
-    then
-        PID=`cat libeufin-nexus.pid 2> /dev/null`
-        echo "Killing libeufin nexus $PID"
-        rm libeufin-nexus.pid
-        kill $PID 2> /dev/null || true
-    fi
-    echo "Stopping libeufin DONE"
-}
-
-# Cleanup to run whenever we exit
-function cleanup()
-{
-    for n in `jobs -p`
-    do
-        kill $n 2> /dev/null || true
-    done
-    stop_libeufin
-    rm -rf $CONF $WALLET_DB $TFILE $UFILE $TMP_DIR
-    wait
-}
-
-CONF_1="test_anastasis_reducer_1.conf"
-CONF_2="test_anastasis_reducer_2.conf"
-CONF_3="test_anastasis_reducer_3.conf"
-CONF_4="test_anastasis_reducer_4.conf"
-
-# Exchange configuration file will be edited, so we create one
-# from the template.
-CONF=`mktemp test_reducerXXXXXX.conf`
-cp test_reducer.conf $CONF
-
-TMP_DIR=`mktemp -d keys-tmp-XXXXXX`
-WALLET_DB=`mktemp test_reducer_walletXXXXXX.json`
-TFILE=`mktemp test_reducer_statePPXXXXXX`
-UFILE=`mktemp test_reducer_stateBFXXXXXX`
-
-# Install cleanup handler (except for kill -9)
-trap cleanup EXIT
+# Replace with 0 for nexus...
+USE_FAKEBANK=1
+if [ 1 = "$USE_FAKEBANK" ]
+then
+    ACCOUNT="exchange-account-2"
+    WIRE_METHOD="x-taler-bank"
+    BANK_FLAGS="-f -d $WIRE_METHOD -u $ACCOUNT"
+    BANK_URL="http://localhost:18082/taler-bank-access/";
+else
+    ACCOUNT="exchange-account-1"
+    WIRE_METHOD="iban"
+    BANK_FLAGS="-ns -d $WIRE_METHOD -u $ACCOUNT"
+    BANK_URL="http://localhost:18082/demobanks/default/access-api/";
+fi
 
 # Check we can actually run
 echo -n "Testing for jq"
@@ -86,9 +39,6 @@ taler-exchange-httpd -h > /dev/null || exit_skip " 
taler-exchange required"
 taler-merchant-httpd -h > /dev/null || exit_skip " taler-merchant required"
 echo " FOUND"
 
-echo -n "Testing for taler-bank-manage-testing"
-taler-bank-manage-testing --help >/dev/null </dev/null || exit_skip " MISSING"
-echo " FOUND"
 echo -n "Testing for taler-wallet-cli"
 taler-wallet-cli -v >/dev/null </dev/null || exit_skip " MISSING"
 echo " FOUND"
@@ -97,89 +47,65 @@ echo -n "Testing for anastasis-httpd"
 anastasis-httpd -h >/dev/null </dev/null || exit_skip " MISSING"
 echo " FOUND"
 
-echo -n "Initialize anastasis database ..."
-# Name of the Postgres database we will use for the script.
-# Will be dropped, do NOT use anything that might be used
-# elsewhere
-TARGET_DB_1=`anastasis-config -c $CONF_1 -s stasis-postgres -o CONFIG | sed -e 
"s/^postgres:\/\/\///"`
-TARGET_DB_2=`anastasis-config -c $CONF_2 -s stasis-postgres -o CONFIG | sed -e 
"s/^postgres:\/\/\///"`
-TARGET_DB_3=`anastasis-config -c $CONF_3 -s stasis-postgres -o CONFIG | sed -e 
"s/^postgres:\/\/\///"`
-TARGET_DB_4=`anastasis-config -c $CONF_4 -s stasis-postgres -o CONFIG | sed -e 
"s/^postgres:\/\/\///"`
-
-dropdb $TARGET_DB_1 >/dev/null 2>/dev/null || true
-createdb $TARGET_DB_1 || exit_skip "Could not create database $TARGET_DB_1"
-anastasis-dbinit -c $CONF_1 2> anastasis-dbinit_1.log
-dropdb $TARGET_DB_2 >/dev/null 2>/dev/null || true
-createdb $TARGET_DB_2 || exit_skip "Could not create database $TARGET_DB_2"
-anastasis-dbinit -c $CONF_2 2> anastasis-dbinit_2.log
-dropdb $TARGET_DB_3 >/dev/null 2>/dev/null || true
-createdb $TARGET_DB_3 || exit_skip "Could not create database $TARGET_DB_3"
-anastasis-dbinit -c $CONF_3 2> anastasis-dbinit_3.log
-dropdb $TARGET_DB_4 >/dev/null 2>/dev/null || true
-createdb $TARGET_DB_4 || exit_skip "Could not create database $TARGET_DB_4"
-anastasis-dbinit -c $CONF_4 2> anastasis-dbinit_4.log
+. setup.sh
+# Launch exchange, merchant and bank.
+# shellcheck disable=SC2086
+setup -c "test_reducer.conf" \
+      -aemw \
+      $BANK_FLAGS
 
-echo " OK"
 
-echo -n "Generating Taler auditor, exchange and merchant configurations ..."
-
-DATA_DIR=`taler-config -f -c $CONF -s PATHS -o TALER_HOME`
-rm -rf $DATA_DIR
-
-# obtain key configuration data
-MASTER_PRIV_FILE=`taler-config -f -c $CONF -s "EXCHANGE-OFFLINE" -o 
"MASTER_PRIV_FILE"`
-MASTER_PRIV_DIR=`dirname $MASTER_PRIV_FILE`
-mkdir -p $MASTER_PRIV_DIR
-gnunet-ecc -g1 $MASTER_PRIV_FILE > /dev/null 2> /dev/null
-MASTER_PUB=`gnunet-ecc -p $MASTER_PRIV_FILE`
-EXCHANGE_URL=`taler-config -c $CONF -s EXCHANGE -o BASE_URL`
-MERCHANT_PORT=`taler-config -c $CONF -s MERCHANT -o PORT`
-MERCHANT_URL=http://localhost:${MERCHANT_PORT}/
-NEXUS_PORT=8082
-BANK_URL=http://localhost:1${NEXUS_PORT}/
-AUDITOR_URL=http://localhost:8083/
-AUDITOR_PRIV_FILE=`taler-config -f -c $CONF -s AUDITOR -o AUDITOR_PRIV_FILE`
-AUDITOR_PRIV_DIR=`dirname $AUDITOR_PRIV_FILE`
-mkdir -p $AUDITOR_PRIV_DIR
-gnunet-ecc -g1 $AUDITOR_PRIV_FILE > /dev/null 2> /dev/null
-AUDITOR_PUB=`gnunet-ecc -p $AUDITOR_PRIV_FILE`
-
-# patch configuration
-TALER_DB=talercheck
-taler-config -c $CONF -s exchange -o MASTER_PUBLIC_KEY -V $MASTER_PUB
-taler-config -c $CONF -s merchant-exchange-default -o MASTER_KEY -V $MASTER_PUB
-taler-config -c $CONF -s exchangedb-postgres -o CONFIG -V postgres:///$TALER_DB
-taler-config -c $CONF -s auditordb-postgres -o CONFIG -V postgres:///$TALER_DB
-taler-config -c $CONF -s merchantdb-postgres -o CONFIG -V postgres:///$TALER_DB
-taler-config -c $CONF -s bank -o database -V postgres:///$TALER_DB
-taler-config -c $CONF -s exchange -o KEYDIR -V "${TMP_DIR}/keydir/"
-taler-config -c $CONF -s exchange -o REVOCATION_DIR -V "${TMP_DIR}/revdir/"
+# Cleanup to run whenever we exit
+function cleanup()
+{
+    exit_cleanup
+    for n in $(jobs -p)
+    do
+        kill "$n" 2> /dev/null || true
+    done
+    rm -rf "$CONF" "$WALLET_DB" "$TFILE" "$UFILE" "$TMP_DIR"
+    wait
+}
 
-echo " OK"
+CONF_1="test_anastasis_reducer_1.conf"
+CONF_2="test_anastasis_reducer_2.conf"
+CONF_3="test_anastasis_reducer_3.conf"
+CONF_4="test_anastasis_reducer_4.conf"
 
-echo -n "Setting up exchange ..."
+# Exchange configuration file will be edited, so we create one
+# from the template.
+CONF="test_reducer.conf.edited"
 
-# reset database
-dropdb $TALER_DB >/dev/null 2>/dev/null || true
-createdb $TALER_DB || exit_skip "Could not create database $TALER_DB"
-taler-exchange-dbinit -c $CONF
-taler-merchant-dbinit -c $CONF
-taler-auditor-dbinit -c $CONF
-taler-auditor-exchange -c $CONF -m $MASTER_PUB -u $EXCHANGE_URL
+TMP_DIR=$(mktemp -p "${TMPDIR:-/tmp}" -d keys-tmp-XXXXXX)
+WALLET_DB=$(mktemp -p "${TMPDIR:-/tmp}"  test_reducer_walletXXXXXX.json)
+TFILE=$(mktemp -p "${TMPDIR:-/tmp}" test_reducer_statePPXXXXXX)
+UFILE=$(mktemp -p "${TMPDIR:-/tmp}" test_reducer_stateBFXXXXXX)
 
-echo " OK"
+# Install cleanup handler (except for kill -9)
+trap cleanup EXIT
 
-# Launch services
-echo -n "Launching taler services ..."
-rm -f $TALER_DB
-taler-bank-manage-testing $NEXUS_PORT $TALER_DB $EXCHANGE_URL $CONF > 
taler-bank.log 2> taler-bank.err &
-taler-exchange-secmod-eddsa -c $CONF 2> taler-exchange-secmod-eddsa.log &
-taler-exchange-secmod-rsa -c $CONF 2> taler-exchange-secmod-rsa.log &
-taler-exchange-secmod-cs -c $CONF 2> taler-exchange-secmod-cs.log &
-taler-exchange-httpd -L INFO -c $CONF 2> taler-exchange-httpd.log &
-taler-merchant-httpd -L INFO -c $CONF -L INFO 2> taler-merchant-httpd.log &
-taler-exchange-wirewatch -L INFO --longpoll-timeout=1s -c $CONF 2> 
taler-exchange-wirewatch.log &
-taler-auditor-httpd -L INFO -c $CONF 2> taler-auditor-httpd.log &
+
+echo -n "Initialize anastasis databases ..."
+# Name of the Postgres database we will use for the script.
+# Will be dropped, do NOT use anything that might be used
+# elsewhere
+TARGET_DB_1=$(anastasis-config -c "$CONF_1" -s stasis-postgres -o CONFIG | sed 
-e "s/^postgres:\/\/\///")
+TARGET_DB_2=$(anastasis-config -c "$CONF_2" -s stasis-postgres -o CONFIG | sed 
-e "s/^postgres:\/\/\///")
+TARGET_DB_3=$(anastasis-config -c "$CONF_3" -s stasis-postgres -o CONFIG | sed 
-e "s/^postgres:\/\/\///")
+TARGET_DB_4=$(anastasis-config -c "$CONF_4" -s stasis-postgres -o CONFIG | sed 
-e "s/^postgres:\/\/\///")
+
+dropdb "$TARGET_DB_1" >/dev/null 2>/dev/null || true
+createdb "$TARGET_DB_1" || exit_skip "Could not create database $TARGET_DB_1"
+anastasis-dbinit -c "$CONF_1" 2> anastasis-dbinit_1.log
+dropdb "$TARGET_DB_2" >/dev/null 2>/dev/null || true
+createdb "$TARGET_DB_2" || exit_skip "Could not create database $TARGET_DB_2"
+anastasis-dbinit -c "$CONF_2" 2> anastasis-dbinit_2.log
+dropdb "$TARGET_DB_3" >/dev/null 2>/dev/null || true
+createdb "$TARGET_DB_3" || exit_skip "Could not create database $TARGET_DB_3"
+anastasis-dbinit -c "$CONF_3" 2> anastasis-dbinit_3.log
+dropdb "$TARGET_DB_4" >/dev/null 2>/dev/null || true
+createdb "$TARGET_DB_4" || exit_skip "Could not create database $TARGET_DB_4"
+anastasis-dbinit -c "$CONF_4" 2> anastasis-dbinit_4.log
 
 echo " OK"
 
@@ -190,82 +116,9 @@ $PREFIX anastasis-httpd -c $CONF_2 2> 
anastasis-httpd_2.log &
 $PREFIX anastasis-httpd -c $CONF_3 2> anastasis-httpd_3.log &
 $PREFIX anastasis-httpd -c $CONF_4 2> anastasis-httpd_4.log &
 
-# Wait for bank to be available (usually the slowest)
-for n in `seq 1 50`
-do
-    echo -n "."
-    sleep 0.2
-    OK=0
-    # bank
-    wget --tries=1 --timeout=1 http://localhost:8082/ -o /dev/null -O 
/dev/null >/dev/null || continue
-    OK=1
-    break
-done
-
-if [ 1 != $OK ]
-then
-    exit_skip "Failed to launch services (bank)"
-fi
-
-# Wait for all other taler services to be available
-for n in `seq 1 50`
-do
-    echo -n "."
-    sleep 0.1
-    OK=0
-    # exchange
-    wget --tries=1 --timeout=1 http://localhost:8081/seed -o /dev/null -O 
/dev/null >/dev/null || continue
-    # merchant
-    wget --tries=1 --timeout=1 http://localhost:9966/ -o /dev/null -O 
/dev/null >/dev/null || continue
-    # auditor
-    wget --tries=1 --timeout=1 http://localhost:8083/ -o /dev/null -O 
/dev/null >/dev/null || continue
-    OK=1
-    break
-done
-
-if [ 1 != $OK ]
-then
-    exit_skip "Failed to launch taler services"
-fi
-
-echo "OK"
-
-echo -n "Setting up keys ..."
-taler-exchange-offline -c $CONF \
-  download \
-  sign \
-  enable-account `taler-config -c $CONF -s exchange-account-1 -o PAYTO_URI` \
-  enable-auditor $AUDITOR_PUB $AUDITOR_URL "TESTKUDOS Auditor" \
-  wire-fee now iban TESTKUDOS:0.01 TESTKUDOS:0.01 \
-  upload &> taler-exchange-offline.log
-
-echo -n "."
-
-for n in `seq 1 3`
-do
-    echo -n "."
-    OK=0
-    wget --tries=1 --timeout=1 http://localhost:8081/keys -o /dev/null -O 
/dev/null >/dev/null || continue
-    OK=1
-    break
-done
-
-if [ 1 != $OK ]
-then
-    exit_skip "Failed to setup keys"
-fi
-
-echo " OK"
-
-echo -n "Setting up auditor signatures ..."
-taler-auditor-offline -c $CONF \
-  download sign upload &> taler-auditor-offline.log
-echo " OK"
-
 echo -n "Waiting for anastasis services ..."
-
 # Wait for anastasis services to be available
-for n in `seq 1 50`
+for n in $(seq 1 50)
 do
     echo -n "."
     sleep 0.1
@@ -282,7 +135,7 @@ do
     break
 done
 
-if [ 1 != $OK ]
+if [ 1 != "$OK" ]
 then
     exit_skip "Failed to launch anastasis services"
 fi
@@ -291,70 +144,70 @@ echo "OK"
 echo -n "Configuring merchant instance ..."
 # Setup merchant
 
-curl -H "Content-Type: application/json" -X POST -d 
'{"auth":{"method":"external"},"accounts":[{"payto_uri":"payto://iban/SANDBOXX/DE648226?receiver-name=anastasis"}],"id":"default","name":"default","user_type":"business","address":{},"jurisdiction":{},"enable_stefan":true,"default_wire_transfer_delay":{"d_us"
 : 3600000000},"default_pay_delay":{"d_us": 3600000000}}' 
http://localhost:9966/management/instances
+curl -H "Content-Type: application/json" -X POST -d 
'{"auth":{"method":"external"},"accounts":[{"payto_uri":"payto://iban/SANDBOXX/DE648226?receiver-name=anastasis"}],"id":"default","name":"default","user_type":"business","address":{},"jurisdiction":{},"use_stefan":true,"default_wire_transfer_delay":{"d_us"
 : 3600000000},"default_pay_delay":{"d_us": 3600000000}}' 
http://localhost:9966/management/instances
 
 
 echo " DONE"
 
-echo -en $COLOR$BOLD"Test enter secret in a backup state ..."$NORM$NOCOLOR
+echo -en "${COLOR}${BOLD}Test enter secret in a backup state 
...${NORM}${NOCOLOR}"
 
 $PREFIX anastasis-reducer -a \
   '{"secret": { "value" : "veryhardtoguesssecret", "mime" : "text/plain" } }' \
-  enter_secret resources/06-backup.json $TFILE
+  enter_secret resources/06-backup.json "$TFILE"
 
-STATE=`jq -r -e .backup_state < $TFILE`
-if test "$STATE" != "SECRET_EDITING"
+STATE=$(jq -r -e .backup_state < "$TFILE")
+if [ "$STATE" != "SECRET_EDITING" ]
 then
-    jq -e . $TFILE
+    jq -e . "$TFILE"
     exit_fail "Expected new state to be 'SECRET_EDITING', got '$STATE'"
 fi
 
 echo " DONE"
-echo -en $COLOR$BOLD"Test expiration change ..."$NORM$NOCOLOR
+echo -en "${COLOR}${BOLD}Test expiration change ...${NORM}${NOCOLOR}"
 
-SECS=`date '+%s'`
+SECS=$(date '+%s')
 # Use 156 days into the future to get 1 year
-SECS=`expr $SECS + 13478400`
+SECS=$(( SECS + 13478400 ))
 
 $PREFIX anastasis-reducer -a \
   "$(jq -n '
    {"expiration": { "t_s" : $SEC } }' \
-   --argjson SEC $SECS
+   --argjson SEC "$SECS"
   )" \
-  update_expiration $TFILE $UFILE
+  update_expiration "$TFILE" "$UFILE"
 
-STATE=`jq -r -e .backup_state < $UFILE`
+STATE=$(jq -r -e .backup_state < "$UFILE")
 if test "$STATE" != "SECRET_EDITING"
 then
-    jq -e . $UFILE
+    jq -e . "$UFILE"
     exit_fail "Expected new state to be 'SECRET_EDITING', got '$STATE'"
 fi
 
-FEES=`jq -r -e '.upload_fees[0].fee' < $UFILE`
+FEES=$(jq -r -e '.upload_fees[0].fee' < "$UFILE")
 # 4x 4.99 for annual fees, plus 4x0.01 for truth uploads
-if test "$FEES" != "TESTKUDOS:20"
+if [ "$FEES" != "TESTKUDOS:20" ]
 then
-    jq -e . $UFILE
+    jq -e . "$UFILE"
     exit_fail "Expected upload fees to be 'TESTKUDOS:20', got '$FEES'"
 fi
 
 
 echo " DONE"
-echo -en $COLOR$BOLD"Test advance to payment ..."$NORM$NOCOLOR
+echo -en "${COLOR}${BOLD}Test advance to payment ...${NORM}${NOCOLOR}"
 
-$PREFIX anastasis-reducer next $UFILE $TFILE
+$PREFIX anastasis-reducer next "$UFILE" "$TFILE"
 
-STATE=`jq -r -e .backup_state < $TFILE`
-if test "$STATE" != "TRUTHS_PAYING"
+STATE=$(jq -r -e .backup_state < "$TFILE")
+if [ "$STATE" != "TRUTHS_PAYING" ]
 then
-    jq -e . $TFILE
+    jq -e . "$TFILE"
     exit_fail "Expected new state to be 'TRUTHS_PAYING', got '$STATE'"
 fi
 
 # FIXME: this test is specific to how the
 # C reducer stores state (redundantly!), should converge eventually!
 
-#TMETHOD=`jq -r -e '.policies[0].methods[0].truth.type' < $TFILE`
+#TMETHOD=$(jq -r -e '.policies[0].methods[0].truth.type' < $TFILE)
 #if test $TMETHOD != "question"
 #then
 #    exit_fail "Expected method to be >='question', got $TMETHOD"
@@ -365,85 +218,116 @@ fi
 
 #Pay
 
-echo -en $COLOR$BOLD"Withdrawing amount to wallet ..."$NORM$NOCOLOR
+echo -en "${COLOR}${BOLD}Withdrawing amount to wallet ...${NORM}${NOCOLOR}"
+
+EXCHANGE_URL="$(taler-config -c "$CONF" -s exchange -o BASE_URL)"
 
-rm $WALLET_DB
-taler-wallet-cli --no-throttle --wallet-db=$WALLET_DB api --expect-success 
'withdrawTestBalance' \
+rm "$WALLET_DB"
+taler-wallet-cli \
+    --no-throttle \
+    --wallet-db="$WALLET_DB" \
+    api \
+    --expect-success 'withdrawTestBalance' \
   "$(jq -n '
     {
         amount: "TESTKUDOS:40",
-        bankBaseUrl: $BANK_URL,
+        bankAccessApiBaseUrl: $BANK_URL,
         exchangeBaseUrl: $EXCHANGE_URL
     }' \
-    --arg BANK_URL "${BANK_URL}demobanks/default/access-api/" \
-    --arg EXCHANGE_URL "$EXCHANGE_URL"
-  )" 2>wallet-withdraw.err >wallet-withdraw.log
-taler-wallet-cli --no-throttle --wallet-db=$WALLET_DB run-until-done 
2>wallet-withdraw-finish.err >wallet-withdraw-finish.log
+    --arg BANK_URL "${BANK_URL}" \
+    --arg EXCHANGE_URL "${EXCHANGE_URL}"
+  )" 2>wallet-withdraw.err \
+      >wallet-withdraw.log
+taler-wallet-cli \
+    --no-throttle \
+    --wallet-db="$WALLET_DB" \
+    run-until-done \
+    2>wallet-withdraw-finish.err \
+    >wallet-withdraw-finish.log
 
 echo " OK"
 
-echo -en $COLOR$BOLD"Making payments for truth uploads ... "$NORM$NOCOLOR
-OBJECT_SIZE=`jq -r -e '.payments | length' < $TFILE`
-for ((INDEX=0; INDEX < $OBJECT_SIZE; INDEX++))
+echo -en "${COLOR}${BOLD}Making payments for truth uploads ... 
${NORM}${NOCOLOR}"
+OBJECT_SIZE=$(jq -r -e '.payments | length' < "$TFILE")
+for ((INDEX=0; INDEX < "$OBJECT_SIZE"; INDEX++))
 do
-    PAY_URI=`jq --argjson INDEX $INDEX -r -e '.payments[$INDEX]' < $TFILE`
+    PAY_URI=$(jq --argjson INDEX $INDEX -r -e '.payments[$INDEX]' < "$TFILE")
     # run wallet CLI
     echo -n "$INDEX"
-    taler-wallet-cli --no-throttle --wallet-db=$WALLET_DB handle-uri 
${PAY_URI} -y 2>wallet-pay1.err >wallet-pay1.log
+    taler-wallet-cli \
+        --no-throttle \
+        --wallet-db="$WALLET_DB" \
+        handle-uri "${PAY_URI}" \
+        -y \
+        2>wallet-pay1.err \
+        >wallet-pay1.log
     echo -n ","
 done
 echo " OK"
-echo -e $COLOR$BOLD"Running wallet run-until-done..."$NORM$NOCOLOR
-taler-wallet-cli --wallet-db=$WALLET_DB run-until-done 2>wallet-pay-finish.err 
>wallet-pay-finish.log
-echo -e $COLOR$BOLD"Payments done"$NORM$NOCOLOR
-
-
-echo -en $COLOR$BOLD"Try to upload again ..."$NORM$NOCOLOR
-$PREFIX anastasis-reducer pay $TFILE $UFILE
-mv $UFILE $TFILE
+echo -e "${COLOR}${BOLD}Running wallet run-until-done...${NORM}${NOCOLOR}"
+taler-wallet-cli \
+    --wallet-db="$WALLET_DB" \
+    run-until-done \
+    2>wallet-pay-finish.err \
+    >wallet-pay-finish.log
+echo -e "${COLOR}${BOLD}Payments done${NORM}${NOCOLOR}"
+
+
+echo -en "${COLOR}${BOLD}Try to upload again ...${NORM}${NOCOLOR}"
+$PREFIX anastasis-reducer pay "$TFILE" "$UFILE"
+mv "$UFILE" "$TFILE"
 echo " OK"
 
 
-STATE=`jq -r -e .backup_state < $TFILE`
-if test "$STATE" != "POLICIES_PAYING"
+STATE="$(jq -r -e .backup_state < "$TFILE")"
+if [ "$STATE" != "POLICIES_PAYING" ]
 then
     exit_fail "Expected new state to be 'POLICIES_PAYING', got '$STATE'"
 fi
 
-export TFILE
-export UFILE
-
-echo -en $COLOR$BOLD"Making payments for policy uploads ... "$NORM$NOCOLOR
-OBJECT_SIZE=`jq -r -e '.policy_payment_requests | length' < $TFILE`
-for ((INDEX=0; INDEX < $OBJECT_SIZE; INDEX++))
+echo -en "${COLOR}${BOLD}Making payments for policy uploads ... 
${NORM}${NOCOLOR}"
+OBJECT_SIZE="$(jq -r -e '.policy_payment_requests | length' < "$TFILE")"
+for ((INDEX=0; INDEX < "$OBJECT_SIZE"x; INDEX++))
 do
-    PAY_URI=`jq --argjson INDEX $INDEX -r -e 
'.policy_payment_requests[$INDEX].payto' < $TFILE`
+    PAY_URI="$(jq --argjson INDEX "$INDEX" -r -e 
'.policy_payment_requests[$INDEX].payto' < "$TFILE")"
     # run wallet CLI
     export PAY_URI
     echo -n "$INDEX"
-    taler-wallet-cli --wallet-db=$WALLET_DB handle-uri $PAY_URI -y 
2>wallet-pay2-$INDEX.err >wallet-pay2-$INDEX.log
+    taler-wallet-cli \
+        --wallet-db="$WALLET_DB" \
+        handle-uri "$PAY_URI" \
+        -y \
+        2>"wallet-pay2-$INDEX.err" \
+        >"wallet-pay2-$INDEX.log"
     echo -n ","
 done
 echo " OK"
-echo -e $COLOR$BOLD"Running wallet run-until-done..."$NORM$NOCOLOR
-taler-wallet-cli --wallet-db=$WALLET_DB run-until-done 
2>wallet-pay2-finish.err >wallet-pay2-finish.log
-echo -e $COLOR$BOLD"Payments done"$NORM$NOCOLOR
+echo -e "${COLOR}${BOLD}Running wallet run-until-done...${NORM}${NOCOLOR}"
+taler-wallet-cli \
+    --wallet-db="$WALLET_DB" \
+    run-until-done \
+    2>wallet-pay2-finish.err \
+    >wallet-pay2-finish.log
+echo -e "${COLOR}${BOLD}Payments done${NORM}${NOCOLOR}"
 
-echo -en $COLOR$BOLD"Try to upload again ..."$NORM$NOCOLOR
-$PREFIX anastasis-reducer pay $TFILE $UFILE
+echo -en "${COLOR}${BOLD}Try to upload again ...${NORM}${NOCOLOR}"
+$PREFIX anastasis-reducer pay "$TFILE" "$UFILE"
 
 echo " OK"
 
 echo -n "Final checks ..."
 
-STATE=`jq -r -e .backup_state < $UFILE`
-if test "$STATE" != "BACKUP_FINISHED"
+STATE=$(jq -r -e .backup_state < "$UFILE")
+if [ "$STATE" != "BACKUP_FINISHED" ]
 then
     exit_fail "Expected new state to be BACKUP_FINISHED, got $STATE"
 fi
 
-jq -r -e .core_secret < $UFILE > /dev/null && exit_fail "'core_secret' was not 
cleared upon success"
+jq -r -e .core_secret \
+   < "$UFILE" \
+   > /dev/null \
+    && exit_fail "'core_secret' was not cleared upon success"
 
 echo " OK"
-rm -f $TALER_DB
+rm -f "$TALER_DB"
 exit 0
diff --git a/src/cli/test_reducer.conf b/src/cli/test_reducer.conf
index 5fa5d46..83cc6a4 100644
--- a/src/cli/test_reducer.conf
+++ b/src/cli/test_reducer.conf
@@ -26,10 +26,10 @@ COST = TESTKUDOS:0.0
 
 
 [exchange]
+MASTER_PUBLIC_KEY = 05PFE7Z2VR074MD07ARZJY937VQ7THA648PSVN3PZ2R2RS54HG0G
 AML_THRESHOLD = TESTKUDOS:1000000
 MAX_KEYS_CACHING = forever
 DB = postgres
-MASTER_PRIV_FILE = ${TALER_DATA_HOME}/exchange/offline-keys/master.priv
 SERVE = tcp
 UNIXPATH = ${TALER_RUNTIME_DIR}/exchange.http
 UNIXPATH_MODE = 660
@@ -40,8 +40,6 @@ SIGNKEY_LEGAL_DURATION = 2 years
 LEGAL_DURATION = 2 years
 LOOKAHEAD_SIGN = 3 weeks 1 day
 LOOKAHEAD_PROVIDE = 2 weeks 1 day
-KEYDIR = ${TALER_DATA_HOME}/exchange/live-keys/
-REVOCATION_DIR = ${TALER_DATA_HOME}/exchange/revocations/
 TERMS_ETAG = 0
 PRIVACY_ETAG = 0
 
@@ -53,11 +51,22 @@ ENABLE_DEBIT = YES
 ENABLE_CREDIT = YES
 
 [exchange-accountcredentials-1]
-WIRE_GATEWAY_URL = 
http://localhost:8082/facades/test-facade/taler-wire-gateway/
+WIRE_GATEWAY_URL = 
http://localhost:18082/facades/test-facade/taler-wire-gateway/
 WIRE_GATEWAY_AUTH_METHOD = basic
 USERNAME = exchange
 PASSWORD = x
 
+
+[exchange-account-2]
+PAYTO_URI = "payto://x-taler-bank/localhost/exchange?receiver-name=exchange"
+ENABLE_DEBIT = YES
+ENABLE_CREDIT = YES
+
+[exchange-accountcredentials-2]
+WIRE_GATEWAY_AUTH_METHOD = none
+WIRE_GATEWAY_URL = "http://localhost:18082/exchange/";
+
+
 [merchant]
 SERVE = tcp
 PORT = 9966
@@ -103,9 +112,19 @@ SERVE = http
 IDLE_RESERVE_EXPIRATION_TIME = 4 weeks
 LEGAL_RESERVE_EXPIRATION_TIME = 7 years
 
+[auditordb-postgres]
+CONFIG = "postgres:///talercheck"
+
+[exchangedb-postgres]
+CONFIG = "postgres:///talercheck"
+
+[merchantdb-postgres]
+CONFIG = "postgres:///talercheck"
+
 [merchant-exchange-default]
 EXCHANGE_BASE_URL = http://localhost:8081/
 CURRENCY = TESTKUDOS
+MASTER_KEY = 05PFE7Z2VR074MD07ARZJY937VQ7THA648PSVN3PZ2R2RS54HG0G
 
 [payments-generator]
 currency = TESTKUDOS

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