Make cherry-picking test more isolated.
This commit is contained in:
parent
cf5eb8689b
commit
7c5a277b34
@ -2,7 +2,7 @@
|
|||||||
#
|
#
|
||||||
[PATHS]
|
[PATHS]
|
||||||
# Persistent data storage for the testcase
|
# Persistent data storage for the testcase
|
||||||
TALER_TEST_HOME = test_exchange_api_home/
|
TALER_TEST_HOME = test_exchange_api_keys_cherry_picking_home/
|
||||||
|
|
||||||
[taler]
|
[taler]
|
||||||
# Currency supported by the exchange (can only be one)
|
# Currency supported by the exchange (can only be one)
|
||||||
@ -16,19 +16,24 @@ PORT = 8083
|
|||||||
|
|
||||||
[exchange]
|
[exchange]
|
||||||
|
|
||||||
|
KEYDIR = ${TALER_TEST_HOME}/.local/share/taler/exchange/live-keys/
|
||||||
|
|
||||||
# how long is one signkey valid?
|
# how long is one signkey valid?
|
||||||
signkey_duration = 5 seconds
|
signkey_duration = 5 seconds
|
||||||
|
|
||||||
# how long are the signatures with the signkey valid?
|
# how long are the signatures with the signkey valid?
|
||||||
legal_duration = 2 years
|
legal_duration = 2 years
|
||||||
|
|
||||||
# how long do we provide to clients denomination and signing keys
|
# This vaule causes keys to be *RETURNED* in a /keys response.
|
||||||
# ahead of time?
|
# It's a relative time that materializes always in now+itsvalue.
|
||||||
lookahead_provide = 30 seconds
|
# We keep it very high, so as to not introduce divergencies between
|
||||||
|
# keys that have been created and keys that are returned along /keys.
|
||||||
# Keep it short so we can prolong later!
|
lookahead_provide = 10000 seconds
|
||||||
LOOKAHEAD_SIGN = 60 s
|
|
||||||
|
|
||||||
|
# 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
|
# HTTP port the exchange listens to
|
||||||
PORT = 8081
|
PORT = 8081
|
||||||
@ -133,26 +138,14 @@ CLOSING-FEE-2024 = EUR:0.01
|
|||||||
CLOSING-FEE-2025 = EUR:0.01
|
CLOSING-FEE-2025 = EUR:0.01
|
||||||
CLOSING-FEE-2026 = EUR:0.01
|
CLOSING-FEE-2026 = EUR:0.01
|
||||||
|
|
||||||
[coin_eur_ct_1]
|
[coin_eur_1]
|
||||||
value = EUR:0.01
|
value = EUR:1
|
||||||
duration_overlap = 1 s
|
duration_overlap = 1 s
|
||||||
duration_withdraw = 25 s
|
duration_withdraw = 80 s
|
||||||
duration_spend = 40 s
|
duration_spend = 80 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_legal = 60 s
|
duration_legal = 60 s
|
||||||
fee_withdraw = EUR:0.01
|
fee_withdraw = EUR:0.01
|
||||||
fee_deposit = EUR:0.01
|
fee_deposit = EUR:0.01
|
||||||
fee_refresh = EUR:0.01
|
fee_refresh = EUR:0.03
|
||||||
fee_refund = EUR:0.01
|
fee_refund = EUR:0.01
|
||||||
rsa_keysize = 1024
|
rsa_keysize = 1024
|
||||||
|
@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
[exchange]
|
[exchange]
|
||||||
# Lengthen over original value (60 s)
|
# 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_Interpreter *is)
|
||||||
{
|
{
|
||||||
struct TALER_TESTING_Command keys_serialization[] = {
|
struct TALER_TESTING_Command keys_serialization[] = {
|
||||||
/**
|
|
||||||
* Serialize keys, and disconnect from the exchange.
|
|
||||||
*/
|
|
||||||
TALER_TESTING_cmd_serialize_keys ("serialize-keys"),
|
TALER_TESTING_cmd_serialize_keys ("serialize-keys"),
|
||||||
/**
|
|
||||||
* Reconnect to the exchange using the serialized keys.
|
|
||||||
*/
|
|
||||||
TALER_TESTING_cmd_connect_with_state ("reconnect-with-state",
|
TALER_TESTING_cmd_connect_with_state ("reconnect-with-state",
|
||||||
"serialize-keys"),
|
"serialize-keys"),
|
||||||
TALER_TESTING_cmd_wire ("verify-/wire-with-serialized-keys",
|
TALER_TESTING_cmd_wire ("verify-/wire-with-serialized-keys",
|
||||||
"x-taler-bank",
|
"x-taler-bank",
|
||||||
NULL,
|
NULL,
|
||||||
MHD_HTTP_OK),
|
MHD_HTTP_OK),
|
||||||
|
/**
|
||||||
|
* This loads a very big lookahead_sign (3500s).
|
||||||
|
*/
|
||||||
TALER_TESTING_cmd_exec_keyup ("keyup-serialization",
|
TALER_TESTING_cmd_exec_keyup ("keyup-serialization",
|
||||||
CONFIG_FILE_EXTENDED_2),
|
CONFIG_FILE_EXTENDED_2),
|
||||||
TALER_TESTING_cmd_exec_auditor_sign
|
TALER_TESTING_cmd_exec_auditor_sign
|
||||||
("auditor-sign-serialization",
|
("auditor-sign-serialization",
|
||||||
CONFIG_FILE_EXTENDED_2),
|
CONFIG_FILE_EXTENDED_2),
|
||||||
|
|
||||||
TALER_TESTING_cmd_sleep ("sleep-serialization",
|
TALER_TESTING_cmd_sleep ("sleep-serialization",
|
||||||
3),
|
3),
|
||||||
TALER_TESTING_cmd_signal ("reload-keys-serialization",
|
TALER_TESTING_cmd_signal ("reload-keys-serialization",
|
||||||
@ -99,12 +97,17 @@ run (void *cls,
|
|||||||
SIGUSR1),
|
SIGUSR1),
|
||||||
TALER_TESTING_cmd_sleep ("sleep-serialization",
|
TALER_TESTING_cmd_sleep ("sleep-serialization",
|
||||||
3),
|
3),
|
||||||
/**
|
|
||||||
* Why keys number decrease?
|
|
||||||
*/
|
|
||||||
TALER_TESTING_cmd_check_keys ("check-freshest-keys",
|
TALER_TESTING_cmd_check_keys ("check-freshest-keys",
|
||||||
8, /* generation */
|
/* At this point, /keys has been
|
||||||
8),
|
* 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",
|
TALER_TESTING_cmd_wire ("verify-/wire-with-fresh-keys",
|
||||||
"x-taler-bank",
|
"x-taler-bank",
|
||||||
@ -116,32 +119,44 @@ run (void *cls,
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct TALER_TESTING_Command ordinary_cherry_pick[] = {
|
struct TALER_TESTING_Command ordinary_cherry_pick[] = {
|
||||||
|
|
||||||
/* Trigger keys reloading from disk. */
|
/* Trigger keys reloading from disk. */
|
||||||
TALER_TESTING_cmd_signal ("signal-reaction-1",
|
TALER_TESTING_cmd_signal ("signal-reaction-1",
|
||||||
is->exchanged,
|
is->exchanged,
|
||||||
SIGUSR1),
|
SIGUSR1),
|
||||||
|
/**
|
||||||
|
* 1 DK with 80s spend duration.
|
||||||
|
*/
|
||||||
TALER_TESTING_cmd_check_keys ("check-keys-1",
|
TALER_TESTING_cmd_check_keys ("check-keys-1",
|
||||||
1, /* generation */
|
1, /* generation */
|
||||||
4),
|
1),
|
||||||
/* sleep a bit */
|
|
||||||
TALER_TESTING_cmd_sleep ("sleep",
|
TALER_TESTING_cmd_sleep ("sleep",
|
||||||
10),
|
10),
|
||||||
/* 1st keyup happens at start-up */
|
|
||||||
|
/**
|
||||||
|
* We set lookahead_sign to 90s.
|
||||||
|
*/
|
||||||
TALER_TESTING_cmd_exec_keyup ("keyup-2",
|
TALER_TESTING_cmd_exec_keyup ("keyup-2",
|
||||||
CONFIG_FILE_EXTENDED),
|
CONFIG_FILE_EXTENDED),
|
||||||
TALER_TESTING_cmd_exec_auditor_sign ("sign-keys-1",
|
TALER_TESTING_cmd_exec_auditor_sign ("sign-keys-1",
|
||||||
CONFIG_FILE_EXTENDED),
|
CONFIG_FILE_EXTENDED),
|
||||||
/* Cause exchange to reload (new) keys */
|
|
||||||
TALER_TESTING_cmd_signal ("trigger-keys-reload-1",
|
TALER_TESTING_cmd_signal ("trigger-keys-reload-1",
|
||||||
is->exchanged,
|
is->exchanged,
|
||||||
SIGUSR1),
|
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",
|
TALER_TESTING_cmd_check_keys ("check-keys-2",
|
||||||
2, /* generation */
|
2, /* generation */
|
||||||
6),
|
2),
|
||||||
/* sleep a bit */
|
|
||||||
TALER_TESTING_cmd_sleep ("sleep",
|
TALER_TESTING_cmd_sleep ("sleep",
|
||||||
20),
|
20),
|
||||||
/* Do 2nd keyup */
|
|
||||||
TALER_TESTING_cmd_exec_keyup ("keyup-3",
|
TALER_TESTING_cmd_exec_keyup ("keyup-3",
|
||||||
CONFIG_FILE_EXTENDED),
|
CONFIG_FILE_EXTENDED),
|
||||||
TALER_TESTING_cmd_exec_auditor_sign ("sign-keys-2",
|
TALER_TESTING_cmd_exec_auditor_sign ("sign-keys-2",
|
||||||
@ -149,12 +164,19 @@ run (void *cls,
|
|||||||
TALER_TESTING_cmd_signal ("trigger-keys-reload-2",
|
TALER_TESTING_cmd_signal ("trigger-keys-reload-2",
|
||||||
is->exchanged,
|
is->exchanged,
|
||||||
SIGUSR1),
|
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",
|
TALER_TESTING_cmd_check_keys ("check-keys-3",
|
||||||
3, /* generation */
|
3,
|
||||||
8),
|
2),
|
||||||
TALER_TESTING_cmd_end ()
|
TALER_TESTING_cmd_end ()
|
||||||
};
|
};
|
||||||
struct TALER_TESTING_Command commands[] = {
|
struct TALER_TESTING_Command commands[] = {
|
||||||
|
|
||||||
TALER_TESTING_cmd_batch ("ordinary-cherry-pick",
|
TALER_TESTING_cmd_batch ("ordinary-cherry-pick",
|
||||||
ordinary_cherry_pick),
|
ordinary_cherry_pick),
|
||||||
TALER_TESTING_cmd_batch ("keys-serialization",
|
TALER_TESTING_cmd_batch ("keys-serialization",
|
||||||
@ -177,7 +199,6 @@ main (int argc,
|
|||||||
GNUNET_log_setup ("test-exchange-api-cherry-picking-new",
|
GNUNET_log_setup ("test-exchange-api-cherry-picking-new",
|
||||||
"DEBUG",
|
"DEBUG",
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
TALER_TESTING_cleanup_files (CONFIG_FILE);
|
TALER_TESTING_cleanup_files (CONFIG_FILE);
|
||||||
/* @helpers. Run keyup, create tables, ... Note: it
|
/* @helpers. Run keyup, create tables, ... Note: it
|
||||||
* fetches the port number from config in order to see
|
* 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