summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Buchanan <jonathan.russ.buchanan@gmail.com>2020-07-15 20:41:45 -0400
committerJonathan Buchanan <jonathan.russ.buchanan@gmail.com>2020-07-15 20:41:45 -0400
commit5658c4c52b01a39d9302d3407cd53e96f545237c (patch)
treef0d29a538245d85e5d302f37884772e30a12ee3d
parente1ad498bff48c3975b386680493d6f1445582cfa (diff)
downloadexchange-5658c4c52b01a39d9302d3407cd53e96f545237c.tar.gz
exchange-5658c4c52b01a39d9302d3407cd53e96f545237c.tar.bz2
exchange-5658c4c52b01a39d9302d3407cd53e96f545237c.zip
test retry transfer with same request_id
-rw-r--r--src/include/taler_testing_lib.h11
-rw-r--r--src/testing/test_bank_api_twisted.c31
2 files changed, 32 insertions, 10 deletions
diff --git a/src/include/taler_testing_lib.h b/src/include/taler_testing_lib.h
index 332b429f..b9a11865 100644
--- a/src/include/taler_testing_lib.h
+++ b/src/include/taler_testing_lib.h
@@ -973,6 +973,17 @@ TALER_TESTING_cmd_transfer (const char *label,
/**
+ * Modify a transfer command to enable retries when the reserve is not yet
+ * full or we get other transient errors from the bank.
+ *
+ * @param cmd a fakebank transfer command
+ * @return the command with retries enabled
+ */
+struct TALER_TESTING_Command
+TALER_TESTING_cmd_transfer_retry (struct TALER_TESTING_Command cmd);
+
+
+/**
* Make the "exec-auditor" CMD.
*
* @param label command label.
diff --git a/src/testing/test_bank_api_twisted.c b/src/testing/test_bank_api_twisted.c
index d8687e97..d17c3c81 100644
--- a/src/testing/test_bank_api_twisted.c
+++ b/src/testing/test_bank_api_twisted.c
@@ -82,18 +82,29 @@ static void
run (void *cls,
struct TALER_TESTING_Interpreter *is)
{
+ struct TALER_WireTransferIdentifierRawP wtid;
+
+ memset (&wtid, 0x5aff, sizeof (wtid));
+
+ /* Route our commands through twister. */
+ struct TALER_BANK_AuthenticationData exchange_auth_twisted;
+ memcpy (&exchange_auth_twisted,
+ &bc.exchange_auth,
+ sizeof (struct TALER_BANK_AuthenticationData));
+ exchange_auth_twisted.wire_gateway_url = "http://localhost:8888/2/";
struct TALER_TESTING_Command commands[] = {
- /**
- * Can't use the "wait service" CMD here because the
- * fakebank runs inside the same process of the test.
- */
- TALER_TESTING_cmd_wait_service ("wait-service",
- twister_url),
- TALER_TESTING_cmd_bank_credits ("history-0",
- &bc.exchange_auth,
- NULL,
- 5),
+ /* Test retrying transfer after failure. */
+ TALER_TESTING_cmd_malform_response ("malform-transfer",
+ CONFIG_FILE_FAKEBANK),
+ TALER_TESTING_cmd_transfer_retry (
+ TALER_TESTING_cmd_transfer ("debit-1",
+ "KUDOS:3.22",
+ &exchange_auth_twisted,
+ bc.exchange_payto,
+ bc.user42_payto,
+ &wtid,
+ "http://exchange.example.com/")),
TALER_TESTING_cmd_end ()
};