gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-exchange] 02/08: -update testing cmd to new bank API


From: gnunet
Subject: [taler-exchange] 02/08: -update testing cmd to new bank API
Date: Sun, 20 Nov 2022 21:55:25 +0100

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository exchange.

commit 2d9ff5596460f5efbc022c8301ff1e84f2a64ef3
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Thu Nov 17 13:40:14 2022 +0100

    -update testing cmd to new bank API
---
 src/testing/testing_api_cmd_bank_history_credit.c | 137 ++++++++++------------
 1 file changed, 62 insertions(+), 75 deletions(-)

diff --git a/src/testing/testing_api_cmd_bank_history_credit.c 
b/src/testing/testing_api_cmd_bank_history_credit.c
index c65c84c1..9a61d6d5 100644
--- a/src/testing/testing_api_cmd_bank_history_credit.c
+++ b/src/testing/testing_api_cmd_bank_history_credit.c
@@ -370,99 +370,86 @@ check_result (struct History *h,
  * finally check it against what the bank returned.
  *
  * @param cls closure.
- * @param http_status HTTP response code, #MHD_HTTP_OK (200)
- *        for successful status request 0 if the bank's reply is
- *        bogus (fails to follow the protocol),
- *        #MHD_HTTP_NO_CONTENT if there are no more results; on
- *        success the last callback is always of this status
- *        (even if `abs(num_results)` were already returned).
- * @param ec taler status code.
- * @param row_id monotonically increasing counter corresponding to
- *        the transaction.
- * @param details details about the wire transfer.
- * @param json detailed response from the HTTPD, or NULL if
- *        reply was not in JSON.
- * @return #GNUNET_OK to continue, #GNUNET_SYSERR to abort iteration
+ * @param chr http response details
  */
-static enum GNUNET_GenericReturnValue
+static void
 history_cb (void *cls,
-            unsigned int http_status,
-            enum TALER_ErrorCode ec,
-            uint64_t row_id,
-            const struct TALER_BANK_CreditDetails *details,
-            const json_t *json)
+            const struct TALER_BANK_CreditHistoryResponse *chr)
 {
   struct TALER_TESTING_Interpreter *is = cls;
   struct HistoryState *hs = is->commands[is->ip].cls;
 
-  (void) row_id;
-  if (NULL == details)
+  hs->hh = NULL;
+  switch (chr->http_status)
   {
-    hs->hh = NULL;
-    if ( (MHD_HTTP_NOT_FOUND == http_status) &&
-         (0 == hs->total) )
+  case 0:
+    GNUNET_break (0);
+    goto error;
+  case MHD_HTTP_OK:
+    for (unsigned int i = 0; i<chr->details.success.details_length; i++)
+    {
+      const struct TALER_BANK_CreditDetails *cd =
+        &chr->details.success.details[i];
+
+      /* check current element */
+      if (GNUNET_OK !=
+          check_result (hs->h,
+                        hs->total,
+                        hs->results_obtained,
+                        cd))
+      {
+        GNUNET_break (0);
+        json_dumpf (chr->response,
+                    stderr,
+                    JSON_COMPACT);
+        hs->failed = true;
+        hs->hh = NULL;
+        TALER_TESTING_interpreter_fail (is);
+        return;
+      }
+      hs->results_obtained++;
+    }
+    TALER_TESTING_interpreter_next (is);
+    return;
+  case MHD_HTTP_NO_CONTENT:
+    if (0 == hs->total)
     {
       /* not found is OK for empty history */
       TALER_TESTING_interpreter_next (is);
-      return GNUNET_OK;
+      return;
     }
-    if ( (hs->results_obtained != hs->total) ||
-         (hs->failed) ||
-         (MHD_HTTP_NO_CONTENT != http_status) )
+    GNUNET_break (0);
+    goto error;
+  case MHD_HTTP_NOT_FOUND:
+    if (0 == hs->total)
     {
-      GNUNET_break (0);
-      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                  "Expected history of length %u, got %llu;"
-                  " HTTP status code: %u/%d, failed: %d\n",
-                  hs->total,
-                  (unsigned long long) hs->results_obtained,
-                  http_status,
-                  (int) ec,
-                  hs->failed ? 1 : 0);
-      print_expected (hs->h,
-                      hs->total,
-                      UINT_MAX);
-      TALER_TESTING_interpreter_fail (is);
-      return GNUNET_SYSERR;
+      /* not found is OK for empty history */
+      TALER_TESTING_interpreter_next (is);
+      return;
     }
-    TALER_TESTING_interpreter_next (is);
-    return GNUNET_OK;
-  }
-  if (MHD_HTTP_OK != http_status)
-  {
+    GNUNET_break (0);
+    goto error;
+  default:
     hs->hh = NULL;
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 "Unwanted response code from /history/incoming: %u\n",
-                http_status);
-    TALER_TESTING_interpreter_fail (is);
-    return GNUNET_SYSERR;
-  }
-
-  /* check current element */
-  if (GNUNET_OK !=
-      check_result (hs->h,
-                    hs->total,
-                    hs->results_obtained,
-                    details))
-  {
-    char *acc;
-
-    GNUNET_break (0);
-    acc = json_dumps (json,
-                      JSON_COMPACT);
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Result %u was `%s'\n",
-                (unsigned int) hs->results_obtained++,
-                acc);
-    if (NULL != acc)
-      free (acc);
-    hs->failed = true;
-    hs->hh = NULL;
+                chr->http_status);
     TALER_TESTING_interpreter_fail (is);
-    return GNUNET_SYSERR;
+    return;
   }
-  hs->results_obtained++;
-  return GNUNET_OK;
+error:
+  GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+              "Expected history of length %u, got %llu;"
+              " HTTP status code: %u/%d, failed: %d\n",
+              hs->total,
+              (unsigned long long) hs->results_obtained,
+              chr->http_status,
+              (int) chr->ec,
+              hs->failed ? 1 : 0);
+  print_expected (hs->h,
+                  hs->total,
+                  UINT_MAX);
+  TALER_TESTING_interpreter_fail (is);
 }
 
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]