exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit 2c669a0f8a7947952a8322d202a14e1f010e0a9a
parent 567ff24946fefab54ae477651b1747e471f9cafb
Author: Christian Grothoff <grothoff@gnunet.org>
Date:   Sun, 27 Oct 2024 00:56:23 +0200

expand tests to cover latest GNUnet regression

Diffstat:
Msrc/exchange/taler-exchange-httpd.c | 2++
Msrc/exchange/taler-exchange-httpd_purses_deposit.c | 3++-
Msrc/exchange/taler-exchange-httpd_purses_get.c | 34+++++++++++++++++++++++-----------
Msrc/testing/test_exchange_p2p.c | 4++--
Msrc/testing/testing_api_cmd_purse_get.c | 12+++---------
Msrc/util/test_payto.c | 2++
6 files changed, 34 insertions(+), 23 deletions(-)

diff --git a/src/exchange/taler-exchange-httpd.c b/src/exchange/taler-exchange-httpd.c @@ -2641,6 +2641,8 @@ do_shutdown (void *cls) struct MHD_Daemon *my_mhd; (void) cls; + GNUNET_log (GNUNET_ERROR_TYPE_INFO, + "Shutdown of taler-exchange-httpd\n"); my_mhd = TALER_MHD_daemon_stop (); TEH_resume_keys_requests (true); TEH_batch_deposit_cleanup (); diff --git a/src/exchange/taler-exchange-httpd_purses_deposit.c b/src/exchange/taler-exchange-httpd_purses_deposit.c @@ -359,8 +359,9 @@ TEH_handler_purses_deposit ( GNUNET_assert (GNUNET_OK == TALER_amount_set_zero (TEH_currency, &pcc.deposit_total)); - pcc.num_coins = json_array_size (deposits); + pcc.num_coins = (unsigned int) json_array_size (deposits); if ( (0 == pcc.num_coins) || + (((size_t) pcc.num_coins) != json_array_size (deposits)) || (pcc.num_coins > TALER_MAX_FRESH_COINS) ) { GNUNET_break_op (0); diff --git a/src/exchange/taler-exchange-httpd_purses_get.c b/src/exchange/taler-exchange-httpd_purses_get.c @@ -188,11 +188,6 @@ db_event_cb (void *cls, (void) extra; (void) extra_size; - GNUNET_log (GNUNET_ERROR_TYPE_INFO, - "Waking up on %p - %p - %s\n", - rc, - gc, - gc->suspended ? "suspended" : "active"); if (NULL == gc) return; /* event triggered while main transaction was still running */ @@ -202,7 +197,10 @@ db_event_cb (void *cls, GNUNET_async_scope_enter (&rc->async_scope_id, &old_scope); GNUNET_log (GNUNET_ERROR_TYPE_INFO, - "Resuming from long-polling on purse\n"); + "Waking up on %p - %p - %s\n", + rc, + gc, + gc->suspended ? "suspended" : "active"); TEH_check_invariants (); GNUNET_CONTAINER_DLL_remove (gc_head, gc_tail, @@ -271,8 +269,11 @@ TEH_handler_purses_get (struct TEH_RequestContext *rc, }; GNUNET_log (GNUNET_ERROR_TYPE_INFO, - "Starting DB event listening on purse %s\n", - TALER_B2S (&gc->purse_pub)); + "Starting DB event listening on purse %s (%s)\n", + TALER_B2S (&gc->purse_pub), + gc->wait_for_merge + ? "waiting for merge" + : "waiting for deposit"); gc->eh = TEH_plugin->event_listen ( TEH_plugin->cls, GNUNET_TIME_absolute_get_remaining (gc->timeout), @@ -315,6 +316,11 @@ TEH_handler_purses_get (struct TEH_RequestContext *rc, &gc->merge_timestamp, &purse_deleted, &purse_refunded); + GNUNET_log (GNUNET_ERROR_TYPE_INFO, + "select_purse %s returned %d (%s)\n", + args[0], + (int) qs, + GNUNET_TIME_timestamp2s (gc->merge_timestamp)); switch (qs) { case GNUNET_DB_STATUS_HARD_ERROR: @@ -347,14 +353,20 @@ TEH_handler_purses_get (struct TEH_RequestContext *rc, MHD_HTTP_GONE, purse_deleted ? TALER_EC_EXCHANGE_GENERIC_PURSE_DELETED - : TALER_EC_EXCHANGE_GENERIC_PURSE_EXPIRED, + : TALER_EC_EXCHANGE_GENERIC_PURSE_EXPIRED + , GNUNET_TIME_timestamp2s ( gc->purse_expiration)); } GNUNET_log (GNUNET_ERROR_TYPE_INFO, - "Deposited amount is %s\n", - TALER_amount2s (&gc->deposited)); + "Deposited amount is %s (%d/%d/%d)\n", + TALER_amount2s (&gc->deposited), + GNUNET_TIME_absolute_is_future (gc->timeout), + GNUNET_TIME_absolute_is_never (gc->merge_timestamp.abs_time), + (0 < + TALER_amount_cmp (&gc->amount, + &gc->deposited))); if (GNUNET_TIME_absolute_is_future (gc->timeout) && ( ((gc->wait_for_merge) && GNUNET_TIME_absolute_is_never (gc->merge_timestamp.abs_time)) || diff --git a/src/testing/test_exchange_p2p.c b/src/testing/test_exchange_p2p.c @@ -325,14 +325,14 @@ run (void *cls, GNUNET_TIME_UNIT_SECONDS, 1), /* expiration */ "withdraw-coin-1", - "EUR:1.01", + "EUR:1.02", NULL), TALER_TESTING_cmd_purse_poll ( "push-poll-purse-before-expire", MHD_HTTP_GONE, "purse-with-deposit-expire", "EUR:1", - true, + true, /* wait for merge */ GNUNET_TIME_UNIT_MINUTES), /* This should fail, as too much of the coin is already spend / in a purse */ diff --git a/src/testing/testing_api_cmd_purse_get.c b/src/testing/testing_api_cmd_purse_get.c @@ -128,15 +128,9 @@ purse_status_cb (void *cls, ss->pgh = NULL; if (ss->expected_response_code != rs->hr.http_status) { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - "Unexpected HTTP response code: %d in %s:%u\n", - rs->hr.http_status, - __FILE__, - __LINE__); - json_dumpf (rs->hr.reply, - stderr, - 0); - TALER_TESTING_interpreter_fail (ss->is); + TALER_TESTING_unexpected_status (is, + rs->hr.http_status, + ss->expected_response_code); return; } if (MHD_HTTP_OK == ss->expected_response_code) diff --git a/src/util/test_payto.c b/src/util/test_payto.c @@ -46,6 +46,8 @@ main (int argc, GNUNET_log_setup ("test-payto", "WARNING", NULL); + GNUNET_assert (GNUNET_TIME_absolute_is_never ( + GNUNET_TIME_UNIT_FOREVER_TS.abs_time)); GNUNET_assert (NULL == TALER_iban_validate ("FR1420041010050500013M02606")); GNUNET_assert (NULL ==