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:
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 ==