summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcello Stanisci <stanisci.m@gmail.com>2019-02-19 15:48:52 +0100
committerMarcello Stanisci <stanisci.m@gmail.com>2019-02-19 15:48:52 +0100
commit7c5a277b34856173f5fd73a8c538b4421d677ce0 (patch)
tree62b65c1dbe19646b1f8d62553649b26d22e88025
parentcf5eb8689b16c12e6ff0a685db2b366512ab7725 (diff)
downloadexchange-7c5a277b34856173f5fd73a8c538b4421d677ce0.tar.gz
exchange-7c5a277b34856173f5fd73a8c538b4421d677ce0.tar.bz2
exchange-7c5a277b34856173f5fd73a8c538b4421d677ce0.zip
Make cherry-picking test more isolated.
-rw-r--r--src/lib/test_exchange_api_keys_cherry_picking.conf41
-rw-r--r--src/lib/test_exchange_api_keys_cherry_picking_extended.conf2
-rw-r--r--src/lib/test_exchange_api_keys_cherry_picking_new.c63
-rw-r--r--[-rwxr-xr-x]src/lib/test_exchange_api_overlapping_keys_bug.c0
4 files changed, 60 insertions, 46 deletions
diff --git a/src/lib/test_exchange_api_keys_cherry_picking.conf b/src/lib/test_exchange_api_keys_cherry_picking.conf
index e65d1e009..e8473d468 100644
--- a/src/lib/test_exchange_api_keys_cherry_picking.conf
+++ b/src/lib/test_exchange_api_keys_cherry_picking.conf
@@ -2,7 +2,7 @@
#
[PATHS]
# Persistent data storage for the testcase
-TALER_TEST_HOME = test_exchange_api_home/
+TALER_TEST_HOME = test_exchange_api_keys_cherry_picking_home/
[taler]
# Currency supported by the exchange (can only be one)
@@ -16,19 +16,24 @@ PORT = 8083
[exchange]
+KEYDIR = ${TALER_TEST_HOME}/.local/share/taler/exchange/live-keys/
+
# how long is one signkey valid?
signkey_duration = 5 seconds
# how long are the signatures with the signkey valid?
legal_duration = 2 years
-# how long do we provide to clients denomination and signing keys
-# ahead of time?
-lookahead_provide = 30 seconds
-
-# Keep it short so we can prolong later!
-LOOKAHEAD_SIGN = 60 s
+# This vaule causes keys to be *RETURNED* in a /keys response.
+# It's a relative time that materializes always in now+itsvalue.
+# We keep it very high, so as to not introduce divergencies between
+# keys that have been created and keys that are returned along /keys.
+lookahead_provide = 10000 seconds
+# This value causes keys to be *CREATED*. The rule is that
+# at any given time there are always N keys whose all the withdraw
+# durations sum up to a time window as big as lookahead_sign.
+lookahead_sign = 60 s
# HTTP port the exchange listens to
PORT = 8081
@@ -133,26 +138,14 @@ CLOSING-FEE-2024 = EUR:0.01
CLOSING-FEE-2025 = EUR:0.01
CLOSING-FEE-2026 = EUR:0.01
-[coin_eur_ct_1]
-value = EUR:0.01
-duration_overlap = 1 s
-duration_withdraw = 25 s
-duration_spend = 40 s
-duration_legal = 60 s
-fee_withdraw = EUR:0.00
-fee_deposit = EUR:0.00
-fee_refresh = EUR:0.01
-fee_refund = EUR:0.01
-rsa_keysize = 1024
-
-[coin_eur_ct_2]
-value = EUR:0.02
+[coin_eur_1]
+value = EUR:1
duration_overlap = 1 s
-duration_withdraw = 25 s
-duration_spend = 40 s
+duration_withdraw = 80 s
+duration_spend = 80 s
duration_legal = 60 s
fee_withdraw = EUR:0.01
fee_deposit = EUR:0.01
-fee_refresh = EUR:0.01
+fee_refresh = EUR:0.03
fee_refund = EUR:0.01
rsa_keysize = 1024
diff --git a/src/lib/test_exchange_api_keys_cherry_picking_extended.conf b/src/lib/test_exchange_api_keys_cherry_picking_extended.conf
index 29290c99c..c49f1edd4 100644
--- a/src/lib/test_exchange_api_keys_cherry_picking_extended.conf
+++ b/src/lib/test_exchange_api_keys_cherry_picking_extended.conf
@@ -2,4 +2,4 @@
[exchange]
# Lengthen over original value (60 s)
-LOOKAHEAD_SIGN = 100 s
+LOOKAHEAD_SIGN = 90 s
diff --git a/src/lib/test_exchange_api_keys_cherry_picking_new.c b/src/lib/test_exchange_api_keys_cherry_picking_new.c
index 6b89d6f70..1dad3bc51 100644
--- a/src/lib/test_exchange_api_keys_cherry_picking_new.c
+++ b/src/lib/test_exchange_api_keys_cherry_picking_new.c
@@ -74,24 +74,22 @@ run (void *cls,
struct TALER_TESTING_Interpreter *is)
{
struct TALER_TESTING_Command keys_serialization[] = {
- /**
- * Serialize keys, and disconnect from the exchange.
- */
TALER_TESTING_cmd_serialize_keys ("serialize-keys"),
- /**
- * Reconnect to the exchange using the serialized keys.
- */
TALER_TESTING_cmd_connect_with_state ("reconnect-with-state",
"serialize-keys"),
TALER_TESTING_cmd_wire ("verify-/wire-with-serialized-keys",
"x-taler-bank",
NULL,
MHD_HTTP_OK),
+ /**
+ * This loads a very big lookahead_sign (3500s).
+ */
TALER_TESTING_cmd_exec_keyup ("keyup-serialization",
CONFIG_FILE_EXTENDED_2),
TALER_TESTING_cmd_exec_auditor_sign
("auditor-sign-serialization",
CONFIG_FILE_EXTENDED_2),
+
TALER_TESTING_cmd_sleep ("sleep-serialization",
3),
TALER_TESTING_cmd_signal ("reload-keys-serialization",
@@ -99,12 +97,17 @@ run (void *cls,
SIGUSR1),
TALER_TESTING_cmd_sleep ("sleep-serialization",
3),
- /**
- * Why keys number decrease?
- */
+
TALER_TESTING_cmd_check_keys ("check-freshest-keys",
- 8, /* generation */
- 8),
+ /* At this point, /keys has been
+ * downloaded roughly 6 times, so by
+ * forcing 10 here we make sure we get
+ * all the new ones. */
+ 10,
+ /* We use a very high number here to make
+ * sure the "big" lookahead value got
+ * respected. */
+ 45),
TALER_TESTING_cmd_wire ("verify-/wire-with-fresh-keys",
"x-taler-bank",
@@ -116,32 +119,44 @@ run (void *cls,
};
struct TALER_TESTING_Command ordinary_cherry_pick[] = {
+
/* Trigger keys reloading from disk. */
TALER_TESTING_cmd_signal ("signal-reaction-1",
is->exchanged,
SIGUSR1),
+ /**
+ * 1 DK with 80s spend duration.
+ */
TALER_TESTING_cmd_check_keys ("check-keys-1",
1, /* generation */
- 4),
- /* sleep a bit */
+ 1),
+
TALER_TESTING_cmd_sleep ("sleep",
10),
- /* 1st keyup happens at start-up */
+
+ /**
+ * We set lookahead_sign to 90s.
+ */
TALER_TESTING_cmd_exec_keyup ("keyup-2",
CONFIG_FILE_EXTENDED),
TALER_TESTING_cmd_exec_auditor_sign ("sign-keys-1",
CONFIG_FILE_EXTENDED),
- /* Cause exchange to reload (new) keys */
+
TALER_TESTING_cmd_signal ("trigger-keys-reload-1",
is->exchanged,
SIGUSR1),
+ /**
+ * First DK has still 70s of remaining life
+ * (duration_withdraw), so it's not enough to cover the new
+ * 90s window, so a new one should be created.
+ * Total 2 DKs.
+ */
TALER_TESTING_cmd_check_keys ("check-keys-2",
2, /* generation */
- 6),
- /* sleep a bit */
+ 2),
+
TALER_TESTING_cmd_sleep ("sleep",
20),
- /* Do 2nd keyup */
TALER_TESTING_cmd_exec_keyup ("keyup-3",
CONFIG_FILE_EXTENDED),
TALER_TESTING_cmd_exec_auditor_sign ("sign-keys-2",
@@ -149,12 +164,19 @@ run (void *cls,
TALER_TESTING_cmd_signal ("trigger-keys-reload-2",
is->exchanged,
SIGUSR1),
+
+ /**
+ * First DK has 50s of remaining life (duration_withdraw).
+ * The second DK has ~60s of remaining life, therefore two
+ * keys should be (still) returned.
+ */
TALER_TESTING_cmd_check_keys ("check-keys-3",
- 3, /* generation */
- 8),
+ 3,
+ 2),
TALER_TESTING_cmd_end ()
};
struct TALER_TESTING_Command commands[] = {
+
TALER_TESTING_cmd_batch ("ordinary-cherry-pick",
ordinary_cherry_pick),
TALER_TESTING_cmd_batch ("keys-serialization",
@@ -177,7 +199,6 @@ main (int argc,
GNUNET_log_setup ("test-exchange-api-cherry-picking-new",
"DEBUG",
NULL);
-
TALER_TESTING_cleanup_files (CONFIG_FILE);
/* @helpers. Run keyup, create tables, ... Note: it
* fetches the port number from config in order to see
diff --git a/src/lib/test_exchange_api_overlapping_keys_bug.c b/src/lib/test_exchange_api_overlapping_keys_bug.c
index 01fb46237..01fb46237 100755..100644
--- a/src/lib/test_exchange_api_overlapping_keys_bug.c
+++ b/src/lib/test_exchange_api_overlapping_keys_bug.c