summaryrefslogtreecommitdiff
path: root/src/auditor
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2019-09-03 11:01:53 +0200
committerChristian Grothoff <christian@grothoff.org>2019-09-03 11:01:53 +0200
commit77da8db0534eaf62b6e402afaf11b82153ae59f4 (patch)
treee1877bccd11127bf34a53767af5d38ff529faae8 /src/auditor
parente9e58b735496f35f2eff60f83af3536bcaf7f937 (diff)
downloadexchange-77da8db0534eaf62b6e402afaf11b82153ae59f4.tar.gz
exchange-77da8db0534eaf62b6e402afaf11b82153ae59f4.tar.bz2
exchange-77da8db0534eaf62b6e402afaf11b82153ae59f4.zip
add test for wrong signature in reserve_out
Diffstat (limited to 'src/auditor')
-rwxr-xr-xsrc/auditor/test-auditor.sh53
1 files changed, 52 insertions, 1 deletions
diff --git a/src/auditor/test-auditor.sh b/src/auditor/test-auditor.sh
index 7e99fdea0..5a151f844 100755
--- a/src/auditor/test-auditor.sh
+++ b/src/auditor/test-auditor.sh
@@ -9,7 +9,7 @@ set -eu
# Set of numbers for all the testcases.
# When adding new tests, increase the last number:
-ALL_TESTS=`seq 0 6`
+ALL_TESTS=`seq 0 7`
# $TESTS determines which tests we should run.
# This construction is used to make it easy to
@@ -442,6 +442,57 @@ echo "UPDATE known_coins SET denom_sig='$OLD_SIG' WHERE coin_pub='$COIN_PUB'" |
+# Test where h_wire in the deposit table is wrong
+test_7() {
+echo "===========7: reserves_out signature wrong================="
+# Modify reserve_sig, so it is bogus
+HBE=`echo 'SELECT h_blind_ev FROM reserves_out LIMIT 1;' | psql taler-auditor-test -Aqt`
+OLD_SIG=`echo "SELECT reserve_sig FROM reserves_out WHERE h_blind_ev='$HBE';" | psql taler-auditor-test -Aqt`
+A_VAL=`echo "SELECT amount_with_fee_val FROM reserves_out WHERE h_blind_ev='$HBE';" | psql taler-auditor-test -Aqt`
+A_FRAC=`echo "SELECT amount_with_fee_frac FROM reserves_out WHERE h_blind_ev='$HBE';" | psql taler-auditor-test -Aqt`
+# Normalize, we only deal with cents in this test-case
+A_FRAC=`expr $A_FRAC / 1000000`
+echo "UPDATE reserves_out SET reserve_sig='\x9ef381a84aff252646a157d88eded50f708b2c52b7120d5a232a5b628f9ced6d497e6652d986b581188fb014ca857fd5e765a8ccc4eb7e2ce9edcde39accaa4b' WHERE h_blind_ev='$HBE'" | psql -Aqt $DB
+
+run_audit
+
+OP=`jq -r .bad_sig_losses[0].operation < test-audit.json`
+if test $OP != "withdraw"
+then
+ exit_fail "Wrong operation, got $OP"
+fi
+
+LOSS=`jq -r .bad_sig_losses[0].loss < test-audit.json`
+LOSS_TOTAL=`jq -r .total_bad_sig_loss < test-audit.json`
+if test $LOSS != $LOSS_TOTAL
+then
+ exit_fail "Expected loss $LOSS and total loss $LOSS_TOTAL do not match"
+fi
+if test $A_FRAC != 0
+then
+ if [ $A_FRAC -lt 10 ]
+ then
+ A_PREV="0"
+ else
+ A_PREV=""
+ fi
+ if test $LOSS != "TESTKUDOS:$A_VAL.$A_PREV$A_FRAC"
+ then
+ exit_fail "Expected loss TESTKUDOS:$A_VAL.$A_PREV$A_FRAC but got $LOSS"
+ fi
+else
+ if test $LOSS != "TESTKUDOS:$A_VAL"
+ then
+ exit_fail "Expected loss TESTKUDOS:$A_VAL but got $LOSS"
+ fi
+fi
+
+# Undo:
+echo "UPDATE reserves_out SET reserve_sig='$OLD_SIG' WHERE h_blind_ev='$HBE'" | psql -Aqt $DB
+
+}
+
+
# Test where h_wire in the deposit table is wrong
test_99() {