Make cherry-picking test more isolated.
This commit is contained in:
parent
cf5eb8689b
commit
7c5a277b34
@ -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
|
||||
[coin_eur_1]
|
||||
value = EUR:1
|
||||
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
|
||||
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
|
||||
|
@ -2,4 +2,4 @@
|
||||
|
||||
[exchange]
|
||||
# Lengthen over original value (60 s)
|
||||
LOOKAHEAD_SIGN = 100 s
|
||||
LOOKAHEAD_SIGN = 90 s
|
||||
|
@ -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
|
||||
|
0
src/lib/test_exchange_api_overlapping_keys_bug.c
Executable file → Normal file
0
src/lib/test_exchange_api_overlapping_keys_bug.c
Executable file → Normal file
Loading…
Reference in New Issue
Block a user