gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis] branch master updated: migrate test_anastasis_reducer_


From: gnunet
Subject: [taler-anastasis] branch master updated: migrate test_anastasis_reducer_recovery_enter_user_attributes.sh to fakebank
Date: Wed, 23 Aug 2023 22:56:15 +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 58e6b66  migrate 
test_anastasis_reducer_recovery_enter_user_attributes.sh to fakebank
58e6b66 is described below

commit 58e6b66e2fdadbe3818d8385ec8e149384905588
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Wed Aug 23 22:56:11 2023 +0200

    migrate test_anastasis_reducer_recovery_enter_user_attributes.sh to fakebank
---
 src/cli/.gitignore                                 |   1 +
 src/cli/test_anastasis_reducer_enter_secret.sh     |   1 -
 ...tasis_reducer_recovery_enter_user_attributes.sh | 493 ++++++++-------------
 src/testing/.gitignore                             |   1 +
 4 files changed, 188 insertions(+), 308 deletions(-)

diff --git a/src/cli/.gitignore b/src/cli/.gitignore
index 98afc90..111e321 100644
--- a/src/cli/.gitignore
+++ b/src/cli/.gitignore
@@ -1,5 +1,6 @@
 *.log
 *.err
+*.out
 anastasis-reducer
 test_reducer_home
 *.trs
diff --git a/src/cli/test_anastasis_reducer_enter_secret.sh 
b/src/cli/test_anastasis_reducer_enter_secret.sh
index f9d212a..6a52668 100755
--- a/src/cli/test_anastasis_reducer_enter_secret.sh
+++ b/src/cli/test_anastasis_reducer_enter_secret.sh
@@ -9,7 +9,6 @@ BOLD="$(tput bold)"
 NORM="$(tput sgr0)"
 
 set -eu
-set -x
 
 # Replace with 0 for nexus...
 USE_FAKEBANK=1
diff --git a/src/cli/test_anastasis_reducer_recovery_enter_user_attributes.sh 
b/src/cli/test_anastasis_reducer_recovery_enter_user_attributes.sh
index 32f9461..5a2b561 100755
--- a/src/cli/test_anastasis_reducer_recovery_enter_user_attributes.sh
+++ b/src/cli/test_anastasis_reducer_recovery_enter_user_attributes.sh
@@ -1,50 +1,64 @@
 #!/bin/bash
 # This file is in the public domain.
 
+# shellcheck disable=SC2317
+
 set -eu
 
-# Exit, with status code "skip" (no 'real' failure)
-function exit_skip() {
-    echo " SKIP: $1"
-    exit 77
-}
+# 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/";
+    
MERCHANT_PAYTO="payto://x-taler-bank/localhost/anastasis?receiver-name=anastasis"
+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/";
+    MERCHANT_PAYTO="payto://iban/SANDBOXX/DE648226?receiver-name=anastasis"
+fi
 
-# Exit, with error message (hard failure)
-function exit_fail() {
-    echo " FAIL: $1"
-    exit 1
-}
+# Check we can actually run
+echo -n "Testing for jq"
+jq -h > /dev/null || exit_skip "jq required"
+echo " FOUND"
+echo -n "Testing for anastasis-reducer ..."
+anastasis-reducer -h > /dev/null || exit_skip "anastasis-reducer required"
+echo " FOUND"
 
-# 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"
-}
+echo -n "Testing for taler"
+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-wallet-cli"
+taler-wallet-cli -v >/dev/null </dev/null || exit_skip " MISSING"
+echo " FOUND"
+
+echo -n "Testing for anastasis-httpd"
+anastasis-httpd -h >/dev/null </dev/null || exit_skip " MISSING"
+echo " FOUND"
+
+. setup.sh
+# Launch exchange, merchant and bank.
+# shellcheck disable=SC2086
+setup -c "test_reducer.conf" \
+      -aemw \
+      $BANK_FLAGS
 
 # Cleanup to run whenever we exit
 function cleanup()
 {
-    for n in `jobs -p`
+    exit_cleanup
+    for n in $(jobs -p)
     do
-        kill $n 2> /dev/null || true
+        kill "$n" 2> /dev/null || true
     done
-    stop_libeufin
-    rm -rf $CONF $WALLET_DB $R1FILE $R2FILE $B1FILE $B2FILE $TMP_DIR
+    rm -rf "$CONF" "$WALLET_DB" "$R1FILE" "$R2FILE" "$B1FILE" "$B2FILE" 
"$TMP_DIR"
     wait
 }
 
@@ -55,25 +69,28 @@ function sync_providers() {
   # Sync with providers (up to 3 providers aren't synced here)
   for x in 1 2 3; do
     echo "Synchronizing providers (round $x)"
-    anastasis-reducer sync_providers < $infile > $outfile 2> /dev/null || true
-    CODE=$(jq -r -e ".code // 0" < $outfile)
+    anastasis-reducer sync_providers < "$infile" > "$outfile" 2> /dev/null || 
true
+    CODE=$(jq -r -e ".code // 0" < "$outfile")
     # ANASTASIS_REDUCER_PROVIDERS_ALREADY_SYNCED
     # FIXME: Temporary workaround for C reducer. See #7227.
-    if test "$CODE" = "8420"; then
+    if [ "$CODE" = "8420" ]
+    then
       # restore previous non-error state
-      cat $infile > $outfile
+      cat "$infile" > "$outfile"
       break
     fi
     # ANASTASIS_REDUCER_ACTION_INVALID
-    if test "$CODE" = "8400"; then
+    if [ "$CODE" = "8400" ]
+    then
       # restore previous non-error state
-      cat $infile > $outfile
+      cat "$infile" > "$outfile"
       break
     fi
-    if test "$CODE" != "0"; then
+    if [ "$CODE" != "0" ]
+    then
       exit_fail "Expected no error or 8420/8400, got $CODE"
     fi
-    cat $outfile > $infile
+    cat "$outfile" > "$infile"
   done
   echo "Providers synced."
 }
@@ -87,212 +104,56 @@ CONF_4="test_anastasis_reducer_4.conf"
 
 # Configuration file will be edited, so we create one
 # from the template.
-CONF=`mktemp test_reducerXXXXXX.conf`
-cp test_reducer.conf $CONF
+CONF="$(mktemp -p "${TMPDIR:-/tmp}" test_reducerXXXXXX.conf)"
+cp test_reducer.conf "$CONF"
 
-TMP_DIR=`mktemp -d keys-tmp-XXXXXX`
-WALLET_DB=`mktemp test_reducer_walletXXXXXX.json`
-B1FILE=`mktemp test_reducer_stateB1XXXXXX`
-B2FILE=`mktemp test_reducer_stateB2XXXXXX`
-R1FILE=`mktemp test_reducer_stateR1XXXXXX`
-R2FILE=`mktemp test_reducer_stateR2XXXXXX`
+TMP_DIR=$(mktemp -p "${TMPDIR:-/tmp}" -d keys-tmp-XXXXXX)
+WALLET_DB=$(mktemp -p "${TMPDIR:-/tmp}" test_reducer_walletXXXXXX.json)
+B1FILE=$(mktemp -p "${TMPDIR:-/tmp}" test_reducer_stateB1XXXXXX)
+B2FILE=$(mktemp -p "${TMPDIR:-/tmp}" test_reducer_stateB2XXXXXX)
+R1FILE=$(mktemp -p "${TMPDIR:-/tmp}" test_reducer_stateR1XXXXXX)
+R2FILE=$(mktemp -p "${TMPDIR:-/tmp}" test_reducer_stateR2XXXXXX)
 
 # Install cleanup handler (except for kill -9)
 trap cleanup EXIT
 
-# Check we can actually run
-echo -n "Testing for jq"
-jq -h > /dev/null || exit_skip "jq required"
-echo " FOUND"
-echo -n "Testing for anastasis-reducer ..."
-anastasis-reducer -h > /dev/null || exit_skip "anastasis-reducer required"
-echo " FOUND"
-
-echo -n "Testing for taler"
-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"
-
-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
-
-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/"
-
-echo " OK"
-
-echo -n "Setting up exchange ..."
-
-# 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
-
-echo " OK"
-
-# 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 -c $CONF -L INFO 2> taler-merchant-httpd.log &
-taler-exchange-wirewatch --longpoll-timeout=1s -L INFO -c $CONF 2> 
taler-exchange-wirewatch.log &
-taler-auditor-httpd -L INFO -c $CONF 2> taler-auditor-httpd.log &
+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"
 
 echo -n "Launching anastasis services ..."
 PREFIX="" #valgrind
-$PREFIX anastasis-httpd -c $CONF_1 2> anastasis-httpd_1.log &
-$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:18082/ -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
+$PREFIX anastasis-httpd -c "$CONF_1" 2> anastasis-httpd_1.log &
+$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 &
 
 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
@@ -309,7 +170,7 @@ do
     break
 done
 
-if [ 1 != $OK ]
+if [ 1 != "$OK" ]
 then
     exit_skip "Failed to launch anastasis services"
 fi
@@ -318,31 +179,31 @@ 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":{},"use_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":"'"$MERCHANT_PAYTO"'"}],"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 -n "Running backup logic ...,"
-anastasis-reducer -b > $B1FILE
+anastasis-reducer -b > "$B1FILE"
 echo -n "."
 anastasis-reducer -a \
   '{"continent": "Demoworld"}' \
-  select_continent < $B1FILE > $B2FILE
+  select_continent < "$B1FILE" > "$B2FILE"
 echo -n "."
 anastasis-reducer -a \
   '{"country_code": "xx"}' \
-  select_country < $B2FILE > $B1FILE
+  select_country < "$B2FILE" > "$B1FILE"
 echo -n "."
 anastasis-reducer -a \
   '{"identity_attributes": {
     "full_name": "Max Musterman",
     "sq_number": "4",
     "birthdate": "2000-01-01"}}' \
-  enter_user_attributes < $B1FILE > $B2FILE
-cat $B2FILE > $B1FILE
+  enter_user_attributes < "$B1FILE" > "$B2FILE"
+cat "$B2FILE" > "$B1FILE"
 echo -n ","
-sync_providers $B1FILE $B2FILE
+sync_providers "$B1FILE" "$B2FILE"
 echo -n ","
 # "91GPWWR" encodes "Hans"
 anastasis-reducer -a \
@@ -351,7 +212,7 @@ anastasis-reducer -a \
     "instructions": "What is your name?",
     "challenge": "91GPWWR"
     } }' \
-  add_authentication < $B2FILE > $B1FILE
+  add_authentication < "$B2FILE" > "$B1FILE"
 echo -n "."
 # "64S36" encodes "123"
 anastasis-reducer -a \
@@ -360,7 +221,7 @@ anastasis-reducer -a \
     "instructions": "How old are you?",
     "challenge": "64S36"
     } }' \
-  add_authentication < $B1FILE > $B2FILE
+  add_authentication < "$B1FILE" > "$B2FILE"
 echo -n "."
 # "9NGQ4WR" encodes "Mars"
 anastasis-reducer -a \
@@ -369,159 +230,177 @@ anastasis-reducer -a \
     "instructions": "Where do you live?",
     "challenge": "9NGQ4WR"
     } }' \
-  add_authentication < $B2FILE > $B1FILE
+  add_authentication < "$B2FILE" > "$B1FILE"
 echo -n "."
 # Finished adding authentication methods
 anastasis-reducer \
-    next < $B1FILE > $B2FILE
+    next < "$B1FILE" > "$B2FILE"
 
 
 echo -n ","
 # Finished policy review
 anastasis-reducer \
-  next < $B2FILE > $B1FILE
+  next < "$B2FILE" > "$B1FILE"
 echo -n "."
 
 # Note: 'secret' must here be a Crockford base32-encoded value
 anastasis-reducer -a \
   '{"secret": { "value" : "VERYHARDT0GVESSSECRET", "mime" : "text/plain" }}' \
-  enter_secret < $B1FILE > $B2FILE
-mv $B2FILE $B1FILE
-anastasis-reducer next $B1FILE $B2FILE
+  enter_secret < "$B1FILE" > "$B2FILE"
+mv "$B2FILE" "$B1FILE"
+anastasis-reducer next "$B1FILE" "$B2FILE"
 echo " OK"
 
 
 echo -n "Preparing wallet"
-rm $WALLET_DB
-taler-wallet-cli --no-throttle --wallet-db=$WALLET_DB api --expect-success 
'withdrawTestBalance' \
+
+EXCHANGE_URL="$(taler-config -c "$CONF" -s exchange -o BASE_URL)"
+
+rm -f "$WALLET_DB"
+taler-wallet-cli --no-throttle --wallet-db="$WALLET_DB" api --expect-success 
'withdrawTestBalance' \
   "$(jq -n '
     {
         amount: "TESTKUDOS:100",
-        bankBaseUrl: $BANK_URL,
+        bankAccessApiBaseUrl: $BANK_URL,
         exchangeBaseUrl: $EXCHANGE_URL
     }' \
-    --arg BANK_URL "${BANK_URL}demobanks/default/access-api/" \
+    --arg BANK_URL "${BANK_URL}" \
     --arg EXCHANGE_URL "$EXCHANGE_URL"
   )" 2> wallet-withdraw.err > wallet-withdraw.out
-taler-wallet-cli --wallet-db=$WALLET_DB \
-  run-until-done 2>wallet-withdraw-finish.err >wallet-withdraw-finish.out
+taler-wallet-cli \
+    --wallet-db="$WALLET_DB" \
+    run-until-done \
+    2>wallet-withdraw-finish.err \
+    >wallet-withdraw-finish.out
 echo " OK"
 
 echo -en "Making payments for truth uploads ... "
-OBJECT_SIZE=`jq -r -e '.payments | length' < $B2FILE`
-for ((INDEX=0; INDEX < $OBJECT_SIZE; INDEX++))
+OBJECT_SIZE=$(jq -r -e '.payments | length' < "$B2FILE")
+for ((INDEX=0; INDEX < "$OBJECT_SIZE"; INDEX++))
 do
-    PAY_URI=`jq --argjson INDEX $INDEX -r -e '.payments[$INDEX]' < $B2FILE`
+    PAY_URI=$(jq --argjson INDEX $INDEX -r -e '.payments[$INDEX]' < "$B2FILE")
     # run wallet CLI
     echo -n "$INDEX"
-    taler-wallet-cli --wallet-db=$WALLET_DB \
-       handle-uri $PAY_URI -y 2>wallet-pay-truth-$INDEX.err 
>wallet-pay-truth-$INDEX.out
+    taler-wallet-cli \
+        --wallet-db="$WALLET_DB" \
+        handle-uri "$PAY_URI" \
+        -y \
+        2>"wallet-pay-truth-$INDEX.err" \
+        >"wallet-pay-truth-$INDEX.out"
     echo -n ", "
 done
 echo "OK"
 echo -e "Running wallet run-until-done..."
-taler-wallet-cli --wallet-db=$WALLET_DB \
-       run-until-done 2>wallet-pay-truth-finish-$INDEX.err 
>wallet-pay-truth-finish-$INDEX.out
+taler-wallet-cli \
+    --wallet-db="$WALLET_DB" \
+    run-until-done \
+    2>"wallet-pay-truth-finish-$INDEX.err" \
+    >"wallet-pay-truth-finish-$INDEX.out"
 echo -e "Payments done"
 
-export B2FILE
-export B1FILE
-
 echo -en "Try to upload again ..."
-$PREFIX anastasis-reducer pay $B2FILE $B1FILE
-mv $B1FILE $B2FILE
+$PREFIX anastasis-reducer pay "$B2FILE" "$B1FILE"
+mv "$B1FILE" "$B2FILE"
 echo " OK"
 
 echo -en "Making payments for policy uploads ... "
-OBJECT_SIZE=`jq -r -e '.policy_payment_requests | length' < $B2FILE`
-for ((INDEX=0; INDEX < $OBJECT_SIZE; INDEX++))
+OBJECT_SIZE=$(jq -r -e '.policy_payment_requests | length' < "$B2FILE")
+for ((INDEX=0; INDEX < "$OBJECT_SIZE"; INDEX++))
 do
-    PAY_URI=`jq --argjson INDEX $INDEX -r -e 
'.policy_payment_requests[$INDEX].payto' < $B2FILE`
+    PAY_URI=$(jq --argjson INDEX $INDEX -r -e 
'.policy_payment_requests[$INDEX].payto' < "$B2FILE")
     # run wallet CLI
     echo -n "$INDEX"
-    taler-wallet-cli --wallet-db=$WALLET_DB handle-uri $PAY_URI -y 
2>wallet-pay-policy-$INDEX.err >wallet-pay-policy-$INDEX.out
+    taler-wallet-cli \
+        --wallet-db="$WALLET_DB" \
+        handle-uri "$PAY_URI" \
+        -y \
+        2>"wallet-pay-policy-$INDEX.err" \
+        >"wallet-pay-policy-$INDEX.out"
     echo -n ", "
 done
 echo " OK"
 echo -en "Running wallet run-until-done..."
-taler-wallet-cli --wallet-db=$WALLET_DB \
-   run-until-done 2>wallet-pay-policy-finish.err >wallet-pay-policy-finish.out
+taler-wallet-cli \
+    --wallet-db="$WALLET_DB" \
+    run-until-done \
+    2>wallet-pay-policy-finish.err \
+    >wallet-pay-policy-finish.out
 echo -e " payments DONE"
 
 echo -en "Try to upload again ..."
 anastasis-reducer \
-  pay < $B2FILE > $B1FILE
+  pay < "$B2FILE" > "$B1FILE"
 echo " OK: Backup finished"
 echo -n "Final backup checks ..."
-STATE=`jq -r -e .backup_state < $B1FILE`
-if test "$STATE" != "BACKUP_FINISHED"
+STATE=$(jq -r -e .backup_state < "$B1FILE")
+if [ "$STATE" != "BACKUP_FINISHED" ]
 then
     exit_fail "Expected new state to be 'BACKUP_FINISHED', got '$STATE'"
 fi
 
-jq -r -e .core_secret < $B1FILE > /dev/null && exit_fail "'core_secret' was 
not cleared upon success"
+jq -r -e .core_secret < "$B1FILE" > /dev/null && exit_fail "'core_secret' was 
not cleared upon success"
 
 echo " OK"
 
 echo -n "Running recovery basic logic ..."
-anastasis-reducer -r > $R1FILE
+anastasis-reducer -r > "$R1FILE"
 anastasis-reducer -a \
   '{"continent": "Demoworld"}' \
-  select_continent < $R1FILE > $R2FILE
+  select_continent < "$R1FILE" > "$R2FILE"
 anastasis-reducer -a \
   '{"country_code": "xx"}' \
-  select_country < $R2FILE > $R1FILE
-anastasis-reducer -a '{"identity_attributes": { "full_name": "Max Musterman", 
"sq_number": "4", "birthdate": "2000-01-01" }}' enter_user_attributes < $R1FILE 
> $R2FILE
+  select_country < "$R2FILE" > "$R1FILE"
+anastasis-reducer -a '{"identity_attributes": { "full_name": "Max Musterman", 
"sq_number": "4", "birthdate": "2000-01-01" }}' enter_user_attributes < 
"$R1FILE" > "$R2FILE"
 
 
-STATE=`jq -r -e .recovery_state < $R2FILE`
-if test "$STATE" != "SECRET_SELECTING"
+STATE=$(jq -r -e .recovery_state < "$R2FILE")
+if [ "$STATE" != "SECRET_SELECTING" ]
 then
     exit_fail "Expected new state to be 'SECRET_SELECTING', got '$STATE'"
 fi
 echo " OK"
 
 echo -n "Adding provider (to ensure it is loaded)"
-anastasis-reducer -a '{"provider_url" : "http://localhost:8086/"; }' 
add_provider < $R2FILE > $R1FILE
+anastasis-reducer -a '{"provider_url" : "http://localhost:8086/"; }' 
add_provider < "$R2FILE" > "$R1FILE"
 echo " OK"
 
 echo -n "Selecting secret to recover"
-anastasis-reducer -a '{"attribute_mask": 0, "providers" : [ { "version": 1, 
"url" : "http://localhost:8086/"; } ] }' select_version < $R1FILE > $R2FILE
+anastasis-reducer -a '{"attribute_mask": 0, "providers" : [ { "version": 1, 
"url" : "http://localhost:8086/"; } ] }' select_version < "$R1FILE" > "$R2FILE"
 
-STATE=`jq -r -e .recovery_state < $R2FILE`
-if test "$STATE" != "CHALLENGE_SELECTING"
+STATE=$(jq -r -e .recovery_state < "$R2FILE")
+if [ "$STATE" != "CHALLENGE_SELECTING" ]
 then
     exit_fail "Expected new state to be 'CHALLENGE_SELECTING', got '$STATE'"
 fi
 echo " OK"
 
-cat $R2FILE > $R1FILE
+cat "$R2FILE" > "$R1FILE"
 
-sync_providers $R1FILE $R2FILE
+sync_providers "$R1FILE" "$R2FILE"
 
 echo -n "Running challenge logic ..."
 
-UUID0=`jq -r -e .recovery_information.challenges[0].uuid < $R2FILE`
-UUID1=`jq -r -e .recovery_information.challenges[1].uuid < $R2FILE`
-UUID2=`jq -r -e .recovery_information.challenges[2].uuid < $R2FILE`
-UUID0Q=`jq -r -e .recovery_information.challenges[0].instructions < $R2FILE`
-UUID1Q=`jq -r -e .recovery_information.challenges[1].instructions < $R2FILE`
-UUID2Q=`jq -r -e .recovery_information.challenges[2].instructions < $R2FILE`
+UUID0=$(jq -r -e .recovery_information.challenges[0].uuid < "$R2FILE")
+UUID1=$(jq -r -e .recovery_information.challenges[1].uuid < "$R2FILE")
+UUID2=$(jq -r -e .recovery_information.challenges[2].uuid < "$R2FILE")
+#UUID0Q=$(jq -r -e .recovery_information.challenges[0].instructions < 
"$R2FILE")
+UUID1Q=$(jq -r -e .recovery_information.challenges[1].instructions < "$R2FILE")
+UUID2Q=$(jq -r -e .recovery_information.challenges[2].instructions < "$R2FILE")
 
-if test "$UUID2Q" = 'How old are you?'
+if [ "$UUID2Q" = 'How old are you?' ]
 then
     AGE_UUID=$UUID2
-elif test "$UUID1Q" = 'How old are you?'
+elif [ "$UUID1Q" = 'How old are you?' ]
 then
     AGE_UUID=$UUID1
 else
     AGE_UUID=$UUID0
 fi
 
-if test "$UUID2Q" = 'What is your name?'
+if [ "$UUID2Q" = 'What is your name?' ]
 then
     NAME_UUID=$UUID2
-elif test "$UUID1Q" = 'What is your name?'
+elif [ "$UUID1Q" = 'What is your name?' ]
 then
     NAME_UUID=$UUID1
 else
@@ -535,10 +414,10 @@ anastasis-reducer -a \
     }' \
     --arg UUID "$NAME_UUID"
   )" \
-  select_challenge < $R2FILE > $R1FILE
+  select_challenge < "$R2FILE" > "$R1FILE"
 
 anastasis-reducer -a '{"answer": "Hans"}' \
-  solve_challenge < $R1FILE > $R2FILE
+  solve_challenge < "$R1FILE" > "$R2FILE"
 
 anastasis-reducer -a \
   "$(jq -n '
@@ -547,34 +426,34 @@ anastasis-reducer -a \
     }' \
     --arg UUID "$AGE_UUID"
   )" \
-  select_challenge < $R2FILE > $R1FILE
+  select_challenge < "$R2FILE" > "$R1FILE"
 
 anastasis-reducer -a '{"answer": "123"}' \
-  solve_challenge < $R1FILE > $R2FILE
+  solve_challenge < "$R1FILE" > "$R2FILE"
 
 echo " OK"
 
 echo -n "Checking recovered secret ..."
 # finally: check here that we recovered the secret...
 
-STATE=`jq -r -e .recovery_state < $R2FILE`
-if test "$STATE" != "RECOVERY_FINISHED"
+STATE=$(jq -r -e .recovery_state < "$R2FILE")
+if [ "$STATE" != "RECOVERY_FINISHED" ]
 then
-    jq -e . $R2FILE
+    jq -e . "$R2FILE"
     exit_fail "Expected new state to be 'RECOVERY_FINISHED', got '$STATE'"
 fi
 
-SECRET=`jq -r -e .core_secret.value < $R2FILE`
-if test "$SECRET" != "VERYHARDT0GVESSSECRET"
+SECRET=$(jq -r -e .core_secret.value < "$R2FILE")
+if [ "$SECRET" != "VERYHARDT0GVESSSECRET" ]
 then
-    jq -e . $R2FILE
+    jq -e . "$R2FILE"
     exit_fail "Expected recovered secret to be 'VERYHARDT0GVESSSECRET', got 
'$SECRET'"
 fi
 
-MIME=`jq -r -e .core_secret.mime < $R2FILE`
-if test "$MIME" != "text/plain"
+MIME=$(jq -r -e .core_secret.mime < "$R2FILE")
+if [ "$MIME" != "text/plain" ]
 then
-    jq -e . $R2FILE
+    jq -e . "$R2FILE"
     exit_fail "Expected recovered mime to be 'text/plain', got '$MIME'"
 fi
 
diff --git a/src/testing/.gitignore b/src/testing/.gitignore
index a6eb294..704d3b7 100644
--- a/src/testing/.gitignore
+++ b/src/testing/.gitignore
@@ -1,3 +1,4 @@
 test_anastasis
 test_anastasisrest_api
 test_anastasis_api_home/.local/share/taler/crypto-*
+test_anastasis_api.conf.edited

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