diff options
author | Christian Grothoff <grothoff@gnunet.org> | 2022-03-20 15:42:16 +0100 |
---|---|---|
committer | Christian Grothoff <grothoff@gnunet.org> | 2022-03-20 15:42:16 +0100 |
commit | 65808106c7d7ddad9420338f3fde139ec0c9295e (patch) | |
tree | b00f9a3ee193d2100fb5901a9303189f21cda1ad /src | |
parent | 532fabf20a3f9377f1f9526d38e068069a81a922 (diff) | |
download | exchange-65808106c7d7ddad9420338f3fde139ec0c9295e.tar.xz |
add test for reserve GET long polling
Diffstat (limited to 'src')
-rw-r--r-- | src/include/taler_testing_lib.h | 2 | ||||
-rw-r--r-- | src/testing/test_exchange_api.c | 14 | ||||
-rw-r--r-- | src/testing/testing_api_cmd_reserve_get.c | 27 |
3 files changed, 31 insertions, 12 deletions
diff --git a/src/include/taler_testing_lib.h b/src/include/taler_testing_lib.h index 19d1aaa20..4badc0b93 100644 --- a/src/include/taler_testing_lib.h +++ b/src/include/taler_testing_lib.h @@ -1406,11 +1406,13 @@ TALER_TESTING_cmd_reserve_poll (const char *label, * Fail if it did not conclude by the timeout. * * @param label our label + * @param timeout how long to give the long poll to finish * @param poll_reference reference to a #TALER_TESTING_cmd_reserve_poll() command * @return the command. */ struct TALER_TESTING_Command TALER_TESTING_cmd_reserve_poll_finish (const char *label, + struct GNUNET_TIME_Relative timeout, const char *poll_reference); diff --git a/src/testing/test_exchange_api.c b/src/testing/test_exchange_api.c index 5d3465dff..71f9ab7c1 100644 --- a/src/testing/test_exchange_api.c +++ b/src/testing/test_exchange_api.c @@ -134,6 +134,11 @@ run (void *cls, */ CMD_TRANSFER_TO_EXCHANGE ("create-reserve-1", "EUR:6.02"), + TALER_TESTING_cmd_reserve_poll ("poll-reserve-1", + "create-reserve-1", + "EUR:6.02", + GNUNET_TIME_UNIT_MINUTES, + MHD_HTTP_OK), TALER_TESTING_cmd_check_bank_admin_transfer ("check-create-reserve-1", "EUR:6.02", bc.user42_payto, @@ -144,6 +149,9 @@ run (void *cls, * transfer. */ CMD_EXEC_WIREWATCH ("wirewatch-1"), + TALER_TESTING_cmd_reserve_poll_finish ("finish-poll-reserve-1", + GNUNET_TIME_UNIT_SECONDS, + "poll-reserve-1"), /** * Withdraw EUR:5. */ @@ -290,7 +298,8 @@ run (void *cls, MHD_HTTP_OK), /* Try to partially spend (deposit) 1 EUR of the 5 EUR coin * (in full) (merchant would receive EUR:0.99 due to 1 ct - * deposit fee) */// + * deposit fee) + */ TALER_TESTING_cmd_deposit ("refresh-deposit-partial", "refresh-withdraw-coin-1", 0, @@ -587,7 +596,8 @@ run (void *cls, MHD_HTTP_OK), /* Try to partially spend (deposit) 1 EUR of the 5 EUR coin * (in full) (merchant would receive EUR:0.99 due to 1 ct - * deposit fee) */// + * deposit fee) + */ TALER_TESTING_cmd_deposit ("refresh-deposit-partial-age", "refresh-withdraw-coin-age-1", 0, diff --git a/src/testing/testing_api_cmd_reserve_get.c b/src/testing/testing_api_cmd_reserve_get.c index 3e590f4bc..b4375ee20 100644 --- a/src/testing/testing_api_cmd_reserve_get.c +++ b/src/testing/testing_api_cmd_reserve_get.c @@ -34,6 +34,11 @@ struct PollState { /** + * How long do we give the exchange to respond? + */ + struct GNUNET_TIME_Relative timeout; + + /** * Label to the command which created the reserve to check, * needed to resort the reserve key. */ @@ -331,7 +336,7 @@ finish_run (void *cls, } GNUNET_assert (NULL == ss->ps); ss->ps = ps; - ps->tt = GNUNET_SCHEDULER_add_delayed (ss->timeout, + ps->tt = GNUNET_SCHEDULER_add_delayed (ps->timeout, &finish_timeout, ps); } @@ -347,29 +352,31 @@ static void finish_cleanup (void *cls, const struct TALER_TESTING_Command *cmd) { - struct PollState *ss = cls; + struct PollState *ps = cls; - if (NULL != ss->tt) + if (NULL != ps->tt) { - GNUNET_SCHEDULER_cancel (ss->tt); - ss->tt = NULL; + GNUNET_SCHEDULER_cancel (ps->tt); + ps->tt = NULL; } - GNUNET_free (ss); + GNUNET_free (ps); } struct TALER_TESTING_Command TALER_TESTING_cmd_reserve_poll_finish (const char *label, + struct GNUNET_TIME_Relative timeout, const char *poll_reference) { - struct PollState *ss; + struct PollState *ps; GNUNET_assert (NULL != poll_reference); - ss = GNUNET_new (struct PollState); - ss->poll_reference = poll_reference; + ps = GNUNET_new (struct PollState); + ps->timeout = timeout; + ps->poll_reference = poll_reference; { struct TALER_TESTING_Command cmd = { - .cls = ss, + .cls = ps, .label = label, .run = &finish_run, .cleanup = &finish_cleanup |