fix inconsistency in field naming
This commit is contained in:
parent
1647237c2e
commit
17cfbced1d
@ -172,6 +172,7 @@ check_SCRIPTS = \
|
|||||||
test-auditor.sh \
|
test-auditor.sh \
|
||||||
test-revocation.sh
|
test-revocation.sh
|
||||||
|
|
||||||
|
.NOTPARALLEL:
|
||||||
TESTS = $(check_SCRIPTS)
|
TESTS = $(check_SCRIPTS)
|
||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
|
@ -781,6 +781,7 @@ main (int argc,
|
|||||||
char *testname;
|
char *testname;
|
||||||
struct GNUNET_CONFIGURATION_Handle *cfg;
|
struct GNUNET_CONFIGURATION_Handle *cfg;
|
||||||
|
|
||||||
|
(void) argc;
|
||||||
result = -1;
|
result = -1;
|
||||||
if (NULL == (plugin_name = strrchr (argv[0], (int) '-')))
|
if (NULL == (plugin_name = strrchr (argv[0], (int) '-')))
|
||||||
{
|
{
|
||||||
|
@ -117,6 +117,7 @@ check_SCRIPTS += \
|
|||||||
test_taler_exchange_httpd_afl.sh
|
test_taler_exchange_httpd_afl.sh
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
.NOTPARALLEL:
|
||||||
TESTS = \
|
TESTS = \
|
||||||
$(check_SCRIPTS)
|
$(check_SCRIPTS)
|
||||||
|
|
||||||
|
@ -75,6 +75,11 @@ dead_prepare_cb (void *cls,
|
|||||||
const char *buf,
|
const char *buf,
|
||||||
size_t buf_size)
|
size_t buf_size)
|
||||||
{
|
{
|
||||||
|
(void) cls;
|
||||||
|
(void) rowid;
|
||||||
|
(void) wire_method;
|
||||||
|
(void) buf;
|
||||||
|
(void) buf_size;
|
||||||
GNUNET_assert (0);
|
GNUNET_assert (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -344,6 +349,12 @@ never_called_cb (void *cls,
|
|||||||
const struct TALER_TransferPrivateKeyP *tprivs,
|
const struct TALER_TransferPrivateKeyP *tprivs,
|
||||||
const struct TALER_TransferPublicKeyP *tp)
|
const struct TALER_TransferPublicKeyP *tp)
|
||||||
{
|
{
|
||||||
|
(void) cls;
|
||||||
|
(void) num_freshcoins;
|
||||||
|
(void) rrcs;
|
||||||
|
(void) num_tprivs;
|
||||||
|
(void) tprivs;
|
||||||
|
(void) tp;
|
||||||
GNUNET_assert (0); /* should never be called! */
|
GNUNET_assert (0); /* should never be called! */
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -361,14 +372,15 @@ never_called_cb (void *cls,
|
|||||||
* @param tpr transfer public key information
|
* @param tpr transfer public key information
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
check_refresh_reveal_cb (void *cls,
|
check_refresh_reveal_cb (
|
||||||
uint32_t num_freshcoins,
|
void *cls,
|
||||||
const struct
|
uint32_t num_freshcoins,
|
||||||
TALER_EXCHANGEDB_RefreshRevealedCoin *rrcs,
|
const struct TALER_EXCHANGEDB_RefreshRevealedCoin *rrcs,
|
||||||
unsigned int num_tprivs,
|
unsigned int num_tprivs,
|
||||||
const struct TALER_TransferPrivateKeyP *tprivsr,
|
const struct TALER_TransferPrivateKeyP *tprivsr,
|
||||||
const struct TALER_TransferPublicKeyP *tpr)
|
const struct TALER_TransferPublicKeyP *tpr)
|
||||||
{
|
{
|
||||||
|
(void) cls;
|
||||||
/* compare the refresh commit coin arrays */
|
/* compare the refresh commit coin arrays */
|
||||||
for (unsigned int cnt = 0; cnt < num_freshcoins; cnt++)
|
for (unsigned int cnt = 0; cnt < num_freshcoins; cnt++)
|
||||||
{
|
{
|
||||||
@ -426,6 +438,13 @@ audit_refresh_session_cb (void *cls,
|
|||||||
uint32_t noreveal_index,
|
uint32_t noreveal_index,
|
||||||
const struct TALER_RefreshCommitmentP *rc)
|
const struct TALER_RefreshCommitmentP *rc)
|
||||||
{
|
{
|
||||||
|
(void) cls;
|
||||||
|
(void) rowid;
|
||||||
|
(void) denom_pub;
|
||||||
|
(void) coin_sig;
|
||||||
|
(void) amount_with_fee;
|
||||||
|
(void) noreveal_index;
|
||||||
|
(void) rc;
|
||||||
auditor_row_cnt++;
|
auditor_row_cnt++;
|
||||||
return GNUNET_OK;
|
return GNUNET_OK;
|
||||||
}
|
}
|
||||||
@ -450,6 +469,8 @@ handle_link_data_cb (void *cls,
|
|||||||
const struct TALER_TransferPublicKeyP *transfer_pub,
|
const struct TALER_TransferPublicKeyP *transfer_pub,
|
||||||
const struct TALER_EXCHANGEDB_LinkList *ldl)
|
const struct TALER_EXCHANGEDB_LinkList *ldl)
|
||||||
{
|
{
|
||||||
|
(void) cls;
|
||||||
|
(void) transfer_pub;
|
||||||
for (const struct TALER_EXCHANGEDB_LinkList *ldlp = ldl;
|
for (const struct TALER_EXCHANGEDB_LinkList *ldlp = ldl;
|
||||||
NULL != ldlp;
|
NULL != ldlp;
|
||||||
ldlp = ldlp->next)
|
ldlp = ldlp->next)
|
||||||
@ -931,6 +952,15 @@ audit_refund_cb (void *cls,
|
|||||||
uint64_t rtransaction_id,
|
uint64_t rtransaction_id,
|
||||||
const struct TALER_Amount *amount_with_fee)
|
const struct TALER_Amount *amount_with_fee)
|
||||||
{
|
{
|
||||||
|
(void) cls;
|
||||||
|
(void) rowid;
|
||||||
|
(void) denom_pub;
|
||||||
|
(void) coin_pub;
|
||||||
|
(void) merchant_pub;
|
||||||
|
(void) merchant_sig;
|
||||||
|
(void) h_contract_terms;
|
||||||
|
(void) rtransaction_id;
|
||||||
|
(void) amount_with_fee;
|
||||||
auditor_row_cnt++;
|
auditor_row_cnt++;
|
||||||
return GNUNET_OK;
|
return GNUNET_OK;
|
||||||
}
|
}
|
||||||
@ -957,6 +987,13 @@ audit_reserve_in_cb (void *cls,
|
|||||||
uint64_t wire_reference,
|
uint64_t wire_reference,
|
||||||
struct GNUNET_TIME_Absolute execution_date)
|
struct GNUNET_TIME_Absolute execution_date)
|
||||||
{
|
{
|
||||||
|
(void) cls;
|
||||||
|
(void) rowid;
|
||||||
|
(void) reserve_pub;
|
||||||
|
(void) credit;
|
||||||
|
(void) sender_account_details;
|
||||||
|
(void) wire_reference;
|
||||||
|
(void) execution_date;
|
||||||
auditor_row_cnt++;
|
auditor_row_cnt++;
|
||||||
return GNUNET_OK;
|
return GNUNET_OK;
|
||||||
}
|
}
|
||||||
@ -985,6 +1022,14 @@ audit_reserve_out_cb (void *cls,
|
|||||||
struct GNUNET_TIME_Absolute execution_date,
|
struct GNUNET_TIME_Absolute execution_date,
|
||||||
const struct TALER_Amount *amount_with_fee)
|
const struct TALER_Amount *amount_with_fee)
|
||||||
{
|
{
|
||||||
|
(void) cls;
|
||||||
|
(void) rowid;
|
||||||
|
(void) h_blind_ev;
|
||||||
|
(void) denom_pub;
|
||||||
|
(void) reserve_pub;
|
||||||
|
(void) reserve_sig;
|
||||||
|
(void) execution_date;
|
||||||
|
(void) amount_with_fee;
|
||||||
auditor_row_cnt++;
|
auditor_row_cnt++;
|
||||||
return GNUNET_OK;
|
return GNUNET_OK;
|
||||||
}
|
}
|
||||||
|
@ -114,6 +114,8 @@ main (int argc,
|
|||||||
struct GNUNET_CONFIGURATION_Handle *cfg = NULL;
|
struct GNUNET_CONFIGURATION_Handle *cfg = NULL;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
ret = 1;
|
ret = 1;
|
||||||
GNUNET_log_setup ("test-exchangedb-auditors",
|
GNUNET_log_setup ("test-exchangedb-auditors",
|
||||||
"WARNING",
|
"WARNING",
|
||||||
|
@ -49,6 +49,7 @@ dki_iter (void *cls,
|
|||||||
{
|
{
|
||||||
const struct TALER_EXCHANGEDB_DenominationKey *exp = cls;
|
const struct TALER_EXCHANGEDB_DenominationKey *exp = cls;
|
||||||
|
|
||||||
|
(void) alias;
|
||||||
if (0 != GNUNET_memcmp (&exp->issue,
|
if (0 != GNUNET_memcmp (&exp->issue,
|
||||||
&dki->issue))
|
&dki->issue))
|
||||||
{
|
{
|
||||||
@ -124,6 +125,8 @@ main (int argc,
|
|||||||
int ret;
|
int ret;
|
||||||
struct GNUNET_TIME_Absolute start;
|
struct GNUNET_TIME_Absolute start;
|
||||||
|
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
ret = 1;
|
ret = 1;
|
||||||
GNUNET_log_setup ("test-exchangedb-denomkeys",
|
GNUNET_log_setup ("test-exchangedb-denomkeys",
|
||||||
"WARNING",
|
"WARNING",
|
||||||
|
@ -60,6 +60,8 @@ main (int argc,
|
|||||||
int ret;
|
int ret;
|
||||||
unsigned int year;
|
unsigned int year;
|
||||||
|
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
GNUNET_log_setup ("test-exchangedb-fees",
|
GNUNET_log_setup ("test-exchangedb-fees",
|
||||||
"WARNING",
|
"WARNING",
|
||||||
NULL);
|
NULL);
|
||||||
|
@ -47,6 +47,7 @@ ski_iter (void *cls,
|
|||||||
{
|
{
|
||||||
const struct TALER_EXCHANGEDB_PrivateSigningKeyInformationP *exp = cls;
|
const struct TALER_EXCHANGEDB_PrivateSigningKeyInformationP *exp = cls;
|
||||||
|
|
||||||
|
(void) filename;
|
||||||
if (0 != GNUNET_memcmp (ski,
|
if (0 != GNUNET_memcmp (ski,
|
||||||
exp))
|
exp))
|
||||||
{
|
{
|
||||||
@ -66,6 +67,8 @@ main (int argc,
|
|||||||
char *tmpfile;
|
char *tmpfile;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
ret = 1;
|
ret = 1;
|
||||||
tmpfile = NULL;
|
tmpfile = NULL;
|
||||||
GNUNET_log_setup ("test-exchangedb-signkeys",
|
GNUNET_log_setup ("test-exchangedb-signkeys",
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
* @return 0 on success
|
* @return 0 on success
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
test_amount ()
|
test_amount (void)
|
||||||
{
|
{
|
||||||
json_t *j;
|
json_t *j;
|
||||||
struct TALER_Amount a1;
|
struct TALER_Amount a1;
|
||||||
@ -60,6 +60,8 @@ int
|
|||||||
main (int argc,
|
main (int argc,
|
||||||
const char *const argv[])
|
const char *const argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
GNUNET_log_setup ("test-json",
|
GNUNET_log_setup ("test-json",
|
||||||
"WARNING",
|
"WARNING",
|
||||||
NULL);
|
NULL);
|
||||||
|
@ -35,6 +35,8 @@ main (int argc,
|
|||||||
const char *payto = "payto://x-taler-bank/42";
|
const char *payto = "payto://x-taler-bank/42";
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
GNUNET_log_setup ("test-json-wire",
|
GNUNET_log_setup ("test-json-wire",
|
||||||
"WARNING",
|
"WARNING",
|
||||||
NULL);
|
NULL);
|
||||||
|
@ -175,10 +175,11 @@ main (int argc,
|
|||||||
")"),
|
")"),
|
||||||
GNUNET_PQ_EXECUTE_STATEMENT_END
|
GNUNET_PQ_EXECUTE_STATEMENT_END
|
||||||
};
|
};
|
||||||
|
|
||||||
struct GNUNET_PQ_Context *conn;
|
struct GNUNET_PQ_Context *conn;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
GNUNET_log_setup ("test-pq",
|
GNUNET_log_setup ("test-pq",
|
||||||
"WARNING",
|
"WARNING",
|
||||||
NULL);
|
NULL);
|
||||||
|
@ -49,6 +49,7 @@ libtalertesting_la_SOURCES = \
|
|||||||
testing_api_cmd_batch.c \
|
testing_api_cmd_batch.c \
|
||||||
testing_api_cmd_check_keys.c \
|
testing_api_cmd_check_keys.c \
|
||||||
testing_api_cmd_deposit.c \
|
testing_api_cmd_deposit.c \
|
||||||
|
testing_api_cmd_deposits_get.c \
|
||||||
testing_api_cmd_exec_aggregator.c \
|
testing_api_cmd_exec_aggregator.c \
|
||||||
testing_api_cmd_exec_auditor-sign.c \
|
testing_api_cmd_exec_auditor-sign.c \
|
||||||
testing_api_cmd_exec_closer.c \
|
testing_api_cmd_exec_closer.c \
|
||||||
@ -63,7 +64,7 @@ libtalertesting_la_SOURCES = \
|
|||||||
testing_api_cmd_sleep.c \
|
testing_api_cmd_sleep.c \
|
||||||
testing_api_cmd_stat.c \
|
testing_api_cmd_stat.c \
|
||||||
testing_api_cmd_status.c \
|
testing_api_cmd_status.c \
|
||||||
testing_api_cmd_track.c \
|
testing_api_cmd_transfer_get.c \
|
||||||
testing_api_cmd_wait.c \
|
testing_api_cmd_wait.c \
|
||||||
testing_api_cmd_wire.c \
|
testing_api_cmd_wire.c \
|
||||||
testing_api_cmd_withdraw.c \
|
testing_api_cmd_withdraw.c \
|
||||||
@ -109,6 +110,7 @@ libtalertesting_la_LIBADD = \
|
|||||||
|
|
||||||
AM_TESTS_ENVIRONMENT=export TALER_PREFIX=$${TALER_PREFIX:-@libdir@};export PATH=$${TALER_PREFIX:-@prefix@}/bin:$$PATH;
|
AM_TESTS_ENVIRONMENT=export TALER_PREFIX=$${TALER_PREFIX:-@libdir@};export PATH=$${TALER_PREFIX:-@prefix@}/bin:$$PATH;
|
||||||
|
|
||||||
|
.NOTPARALLEL:
|
||||||
check_PROGRAMS = \
|
check_PROGRAMS = \
|
||||||
test_auditor_api \
|
test_auditor_api \
|
||||||
test_auditor_api_version \
|
test_auditor_api_version \
|
||||||
|
379
src/testing/testing_api_cmd_deposits_get.c
Normal file
379
src/testing/testing_api_cmd_deposits_get.c
Normal file
@ -0,0 +1,379 @@
|
|||||||
|
/*
|
||||||
|
This file is part of TALER
|
||||||
|
Copyright (C) 2014-2020 Taler Systems SA
|
||||||
|
|
||||||
|
TALER is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as
|
||||||
|
published by the Free Software Foundation; either version 3, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
TALER is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public
|
||||||
|
License along with TALER; see the file COPYING. If not, see
|
||||||
|
<http://www.gnu.org/licenses/>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file testing/testing_api_cmd_deposits_get.c
|
||||||
|
* @brief Implement the testing CMDs for the /deposits/ GET operations.
|
||||||
|
* @author Marcello Stanisci
|
||||||
|
*/
|
||||||
|
#include "platform.h"
|
||||||
|
#include "taler_json_lib.h"
|
||||||
|
#include <gnunet/gnunet_curl_lib.h>
|
||||||
|
#include "taler_testing_lib.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* State for a "track transaction" CMD.
|
||||||
|
*/
|
||||||
|
struct TrackTransactionState
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If non NULL, will provide a WTID to be compared against
|
||||||
|
* the one returned by the "track transaction" operation.
|
||||||
|
*/
|
||||||
|
const char *bank_transfer_reference;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The WTID associated by the transaction being tracked.
|
||||||
|
*/
|
||||||
|
struct TALER_WireTransferIdentifierRawP wtid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Expected HTTP response code.
|
||||||
|
*/
|
||||||
|
unsigned int expected_response_code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reference to any operation that can provide a transaction.
|
||||||
|
* Will be the transaction to track.
|
||||||
|
*/
|
||||||
|
const char *transaction_reference;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Index of the coin involved in the transaction. Recall:
|
||||||
|
* at the exchange, the tracking is done _per coin_.
|
||||||
|
*/
|
||||||
|
unsigned int coin_index;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle to the "track transaction" pending operation.
|
||||||
|
*/
|
||||||
|
struct TALER_EXCHANGE_DepositGetHandle *tth;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interpreter state.
|
||||||
|
*/
|
||||||
|
struct TALER_TESTING_Interpreter *is;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks what is returned by the "track transaction" operation.
|
||||||
|
* Checks that the HTTP response code is acceptable, and - if the
|
||||||
|
* right reference is non NULL - that the wire transfer subject
|
||||||
|
* line matches our expectations.
|
||||||
|
*
|
||||||
|
* @param cls closure.
|
||||||
|
* @param http_status HTTP status code we got.
|
||||||
|
* @param ec taler-specific error code.
|
||||||
|
* @param exchange_pub public key of the exchange
|
||||||
|
* @param json original json reply (may include signatures, those
|
||||||
|
* have then been validated already).
|
||||||
|
* @param wtid wire transfer identifier, NULL if exchange did not
|
||||||
|
* execute the transaction yet.
|
||||||
|
* @param execution_time actual or planned execution time for the
|
||||||
|
* wire transfer.
|
||||||
|
* @param coin_contribution contribution to the total amount of
|
||||||
|
* the deposited coin (can be NULL).
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
deposit_wtid_cb (void *cls,
|
||||||
|
unsigned int http_status,
|
||||||
|
enum TALER_ErrorCode ec,
|
||||||
|
const struct TALER_ExchangePublicKeyP *exchange_pub,
|
||||||
|
const json_t *json,
|
||||||
|
const struct TALER_WireTransferIdentifierRawP *wtid,
|
||||||
|
struct GNUNET_TIME_Absolute execution_time,
|
||||||
|
const struct TALER_Amount *coin_contribution)
|
||||||
|
{
|
||||||
|
struct TrackTransactionState *tts = cls;
|
||||||
|
struct TALER_TESTING_Interpreter *is = tts->is;
|
||||||
|
struct TALER_TESTING_Command *cmd = &is->commands[is->ip];
|
||||||
|
|
||||||
|
(void) coin_contribution;
|
||||||
|
(void) exchange_pub;
|
||||||
|
(void) ec;
|
||||||
|
(void) execution_time;
|
||||||
|
tts->tth = NULL;
|
||||||
|
if (tts->expected_response_code != http_status)
|
||||||
|
{
|
||||||
|
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
|
||||||
|
"Unexpected response code %u to command %s in %s:%u\n",
|
||||||
|
http_status,
|
||||||
|
cmd->label,
|
||||||
|
__FILE__,
|
||||||
|
__LINE__);
|
||||||
|
json_dumpf (json, stderr, 0);
|
||||||
|
TALER_TESTING_interpreter_fail (is);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
switch (http_status)
|
||||||
|
{
|
||||||
|
case MHD_HTTP_OK:
|
||||||
|
tts->wtid = *wtid;
|
||||||
|
if (NULL != tts->bank_transfer_reference)
|
||||||
|
{
|
||||||
|
const struct TALER_TESTING_Command *bank_transfer_cmd;
|
||||||
|
const struct TALER_WireTransferIdentifierRawP *wtid_want;
|
||||||
|
|
||||||
|
/* _this_ wire transfer subject line. */
|
||||||
|
bank_transfer_cmd = TALER_TESTING_interpreter_lookup_command
|
||||||
|
(is, tts->bank_transfer_reference);
|
||||||
|
if (NULL == bank_transfer_cmd)
|
||||||
|
{
|
||||||
|
GNUNET_break (0);
|
||||||
|
TALER_TESTING_interpreter_fail (is);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GNUNET_OK !=
|
||||||
|
TALER_TESTING_get_trait_wtid
|
||||||
|
(bank_transfer_cmd, 0, &wtid_want))
|
||||||
|
{
|
||||||
|
GNUNET_break (0);
|
||||||
|
TALER_TESTING_interpreter_fail (is);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Compare that expected and gotten subjects match. */
|
||||||
|
if (0 != GNUNET_memcmp (wtid,
|
||||||
|
wtid_want))
|
||||||
|
{
|
||||||
|
GNUNET_break (0);
|
||||||
|
TALER_TESTING_interpreter_fail (tts->is);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case MHD_HTTP_ACCEPTED:
|
||||||
|
/* allowed, nothing to check here */
|
||||||
|
break;
|
||||||
|
case MHD_HTTP_NOT_FOUND:
|
||||||
|
/* allowed, nothing to check here */
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
GNUNET_break (0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
TALER_TESTING_interpreter_next (tts->is);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run the command.
|
||||||
|
*
|
||||||
|
* @param cls closure.
|
||||||
|
* @param cmd the command to execute.
|
||||||
|
* @param is the interpreter state.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
track_transaction_run (void *cls,
|
||||||
|
const struct TALER_TESTING_Command *cmd,
|
||||||
|
struct TALER_TESTING_Interpreter *is)
|
||||||
|
{
|
||||||
|
struct TrackTransactionState *tts = cls;
|
||||||
|
const struct TALER_TESTING_Command *transaction_cmd;
|
||||||
|
const struct TALER_CoinSpendPrivateKeyP *coin_priv;
|
||||||
|
struct TALER_CoinSpendPublicKeyP coin_pub;
|
||||||
|
const json_t *contract_terms;
|
||||||
|
const json_t *wire_details;
|
||||||
|
struct GNUNET_HashCode h_wire_details;
|
||||||
|
struct GNUNET_HashCode h_contract_terms;
|
||||||
|
const struct TALER_MerchantPrivateKeyP *merchant_priv;
|
||||||
|
|
||||||
|
(void) cmd;
|
||||||
|
tts->is = is;
|
||||||
|
transaction_cmd
|
||||||
|
= TALER_TESTING_interpreter_lookup_command (tts->is,
|
||||||
|
tts->transaction_reference);
|
||||||
|
if (NULL == transaction_cmd)
|
||||||
|
{
|
||||||
|
GNUNET_break (0);
|
||||||
|
TALER_TESTING_interpreter_fail (tts->is);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GNUNET_OK !=
|
||||||
|
TALER_TESTING_get_trait_coin_priv (transaction_cmd,
|
||||||
|
tts->coin_index,
|
||||||
|
&coin_priv))
|
||||||
|
{
|
||||||
|
GNUNET_break (0);
|
||||||
|
TALER_TESTING_interpreter_fail (tts->is);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
GNUNET_CRYPTO_eddsa_key_get_public (&coin_priv->eddsa_priv,
|
||||||
|
&coin_pub.eddsa_pub);
|
||||||
|
|
||||||
|
/* Get the strings.. */
|
||||||
|
if (GNUNET_OK !=
|
||||||
|
TALER_TESTING_get_trait_wire_details (transaction_cmd,
|
||||||
|
0,
|
||||||
|
&wire_details))
|
||||||
|
{
|
||||||
|
GNUNET_break (0);
|
||||||
|
TALER_TESTING_interpreter_fail (tts->is);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GNUNET_OK !=
|
||||||
|
TALER_TESTING_get_trait_contract_terms (transaction_cmd,
|
||||||
|
0,
|
||||||
|
&contract_terms))
|
||||||
|
{
|
||||||
|
GNUNET_break (0);
|
||||||
|
TALER_TESTING_interpreter_fail (tts->is);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( (NULL == wire_details) ||
|
||||||
|
(NULL == contract_terms) )
|
||||||
|
{
|
||||||
|
GNUNET_break (0);
|
||||||
|
TALER_TESTING_interpreter_fail (tts->is);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Should not fail here, json has been parsed already */
|
||||||
|
GNUNET_assert
|
||||||
|
( (GNUNET_OK ==
|
||||||
|
TALER_JSON_merchant_wire_signature_hash (wire_details,
|
||||||
|
&h_wire_details)) &&
|
||||||
|
(GNUNET_OK ==
|
||||||
|
TALER_JSON_hash (contract_terms,
|
||||||
|
&h_contract_terms)) );
|
||||||
|
|
||||||
|
if (GNUNET_OK !=
|
||||||
|
TALER_TESTING_get_trait_merchant_priv (transaction_cmd,
|
||||||
|
0,
|
||||||
|
&merchant_priv))
|
||||||
|
{
|
||||||
|
GNUNET_break (0);
|
||||||
|
TALER_TESTING_interpreter_fail (tts->is);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
tts->tth = TALER_EXCHANGE_deposits_get (is->exchange,
|
||||||
|
merchant_priv,
|
||||||
|
&h_wire_details,
|
||||||
|
&h_contract_terms,
|
||||||
|
&coin_pub,
|
||||||
|
&deposit_wtid_cb,
|
||||||
|
tts);
|
||||||
|
GNUNET_assert (NULL != tts->tth);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cleanup the state from a "track transaction" CMD, and possibly
|
||||||
|
* cancel a operation thereof.
|
||||||
|
*
|
||||||
|
* @param cls closure.
|
||||||
|
* @param cmd the command which is being cleaned up.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
track_transaction_cleanup (void *cls,
|
||||||
|
const struct TALER_TESTING_Command *cmd)
|
||||||
|
{
|
||||||
|
struct TrackTransactionState *tts = cls;
|
||||||
|
|
||||||
|
if (NULL != tts->tth)
|
||||||
|
{
|
||||||
|
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
|
||||||
|
"Command %u (%s) did not complete\n",
|
||||||
|
tts->is->ip,
|
||||||
|
cmd->label);
|
||||||
|
TALER_EXCHANGE_deposits_get_cancel (tts->tth);
|
||||||
|
tts->tth = NULL;
|
||||||
|
}
|
||||||
|
GNUNET_free (tts);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Offer internal data from a "track transaction" CMD.
|
||||||
|
*
|
||||||
|
* @param cls closure.
|
||||||
|
* @param[out] ret result (could be anything).
|
||||||
|
* @param trait name of the trait.
|
||||||
|
* @param index index number of the object to offer.
|
||||||
|
* @return #GNUNET_OK on success.
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
track_transaction_traits (void *cls,
|
||||||
|
const void **ret,
|
||||||
|
const char *trait,
|
||||||
|
unsigned int index)
|
||||||
|
{
|
||||||
|
struct TrackTransactionState *tts = cls;
|
||||||
|
struct TALER_TESTING_Trait traits[] = {
|
||||||
|
TALER_TESTING_make_trait_wtid (0, &tts->wtid),
|
||||||
|
TALER_TESTING_trait_end ()
|
||||||
|
};
|
||||||
|
|
||||||
|
return TALER_TESTING_get_trait (traits,
|
||||||
|
ret,
|
||||||
|
trait,
|
||||||
|
index);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a "track transaction" command.
|
||||||
|
*
|
||||||
|
* @param label the command label.
|
||||||
|
* @param transaction_reference reference to a deposit operation,
|
||||||
|
* will be used to get the input data for the track.
|
||||||
|
* @param coin_index index of the coin involved in the transaction.
|
||||||
|
* @param expected_response_code expected HTTP response code.
|
||||||
|
* @param bank_transfer_reference reference to a command that
|
||||||
|
* can offer a WTID so as to check that against what WTID
|
||||||
|
* the tracked operation has. Set as NULL if not needed.
|
||||||
|
* @return the command.
|
||||||
|
*/
|
||||||
|
struct TALER_TESTING_Command
|
||||||
|
TALER_TESTING_cmd_track_transaction (const char *label,
|
||||||
|
const char *transaction_reference,
|
||||||
|
unsigned int coin_index,
|
||||||
|
unsigned int expected_response_code,
|
||||||
|
const char *bank_transfer_reference)
|
||||||
|
{
|
||||||
|
struct TrackTransactionState *tts;
|
||||||
|
|
||||||
|
tts = GNUNET_new (struct TrackTransactionState);
|
||||||
|
tts->transaction_reference = transaction_reference;
|
||||||
|
tts->expected_response_code = expected_response_code;
|
||||||
|
tts->bank_transfer_reference = bank_transfer_reference;
|
||||||
|
tts->coin_index = coin_index;
|
||||||
|
{
|
||||||
|
struct TALER_TESTING_Command cmd = {
|
||||||
|
.cls = tts,
|
||||||
|
.label = label,
|
||||||
|
.run = &track_transaction_run,
|
||||||
|
.cleanup = &track_transaction_cleanup,
|
||||||
|
.traits = &track_transaction_traits
|
||||||
|
};
|
||||||
|
|
||||||
|
return cmd;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* end of testing_api_cmd_deposits_get.c */
|
@ -65,12 +65,12 @@ auditor_sign_run (void *cls,
|
|||||||
struct TALER_TESTING_Interpreter *is)
|
struct TALER_TESTING_Interpreter *is)
|
||||||
{
|
{
|
||||||
struct AuditorSignState *ass = cls;
|
struct AuditorSignState *ass = cls;
|
||||||
|
|
||||||
struct GNUNET_CONFIGURATION_Handle *cfg;
|
struct GNUNET_CONFIGURATION_Handle *cfg;
|
||||||
char *test_home_dir;
|
char *test_home_dir;
|
||||||
char *exchange_master_pub;
|
char *exchange_master_pub;
|
||||||
struct GNUNET_TIME_Absolute now;
|
struct GNUNET_TIME_Absolute now;
|
||||||
|
|
||||||
|
(void) cmd;
|
||||||
cfg = GNUNET_CONFIGURATION_create ();
|
cfg = GNUNET_CONFIGURATION_create ();
|
||||||
if (GNUNET_OK != GNUNET_CONFIGURATION_load
|
if (GNUNET_OK != GNUNET_CONFIGURATION_load
|
||||||
(cfg, ass->config_filename))
|
(cfg, ass->config_filename))
|
||||||
@ -157,6 +157,7 @@ auditor_sign_cleanup (void *cls,
|
|||||||
{
|
{
|
||||||
struct AuditorSignState *ass = cls;
|
struct AuditorSignState *ass = cls;
|
||||||
|
|
||||||
|
(void) cmd;
|
||||||
if (NULL != ass->auditor_sign_proc)
|
if (NULL != ass->auditor_sign_proc)
|
||||||
{
|
{
|
||||||
GNUNET_break (0 == GNUNET_OS_process_kill
|
GNUNET_break (0 == GNUNET_OS_process_kill
|
||||||
|
@ -60,6 +60,7 @@ closer_run (void *cls,
|
|||||||
{
|
{
|
||||||
struct CloserState *as = cls;
|
struct CloserState *as = cls;
|
||||||
|
|
||||||
|
(void) cmd;
|
||||||
as->closer_proc
|
as->closer_proc
|
||||||
= GNUNET_OS_start_process (GNUNET_NO,
|
= GNUNET_OS_start_process (GNUNET_NO,
|
||||||
GNUNET_OS_INHERIT_STD_ALL,
|
GNUNET_OS_INHERIT_STD_ALL,
|
||||||
@ -92,6 +93,7 @@ closer_cleanup (void *cls,
|
|||||||
{
|
{
|
||||||
struct CloserState *as = cls;
|
struct CloserState *as = cls;
|
||||||
|
|
||||||
|
(void) cmd;
|
||||||
if (NULL != as->closer_proc)
|
if (NULL != as->closer_proc)
|
||||||
{
|
{
|
||||||
GNUNET_break (0 ==
|
GNUNET_break (0 ==
|
||||||
|
@ -125,6 +125,7 @@ keyup_cleanup (void *cls,
|
|||||||
{
|
{
|
||||||
struct KeyupState *ks = cls;
|
struct KeyupState *ks = cls;
|
||||||
|
|
||||||
|
(void) cmd;
|
||||||
if (NULL != ks->keyup_proc)
|
if (NULL != ks->keyup_proc)
|
||||||
{
|
{
|
||||||
GNUNET_break (0 ==
|
GNUNET_break (0 ==
|
||||||
|
@ -18,8 +18,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file testing/testing_api_cmd_track.c
|
* @file testing/testing_api_cmd_transfer_get.c
|
||||||
* @brief Implement the testing CMDs for the /track operations.
|
* @brief Implement the testing CMDs for the /transfer GET operation.
|
||||||
* @author Marcello Stanisci
|
* @author Marcello Stanisci
|
||||||
*/
|
*/
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
@ -27,52 +27,6 @@
|
|||||||
#include <gnunet/gnunet_curl_lib.h>
|
#include <gnunet/gnunet_curl_lib.h>
|
||||||
#include "taler_testing_lib.h"
|
#include "taler_testing_lib.h"
|
||||||
|
|
||||||
/**
|
|
||||||
* State for a "track transaction" CMD.
|
|
||||||
*/
|
|
||||||
struct TrackTransactionState
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If non NULL, will provide a WTID to be compared against
|
|
||||||
* the one returned by the "track transaction" operation.
|
|
||||||
*/
|
|
||||||
const char *bank_transfer_reference;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The WTID associated by the transaction being tracked.
|
|
||||||
*/
|
|
||||||
struct TALER_WireTransferIdentifierRawP wtid;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Expected HTTP response code.
|
|
||||||
*/
|
|
||||||
unsigned int expected_response_code;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reference to any operation that can provide a transaction.
|
|
||||||
* Will be the transaction to track.
|
|
||||||
*/
|
|
||||||
const char *transaction_reference;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Index of the coin involved in the transaction. Recall:
|
|
||||||
* at the exchange, the tracking is done _per coin_.
|
|
||||||
*/
|
|
||||||
unsigned int coin_index;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle to the "track transaction" pending operation.
|
|
||||||
*/
|
|
||||||
struct TALER_EXCHANGE_DepositGetHandle *tth;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Interpreter state.
|
|
||||||
*/
|
|
||||||
struct TALER_TESTING_Interpreter *is;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* State for a "track transfer" CMD.
|
* State for a "track transfer" CMD.
|
||||||
*/
|
*/
|
||||||
@ -133,306 +87,6 @@ struct TrackTransferState
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks what is returned by the "track transaction" operation.
|
|
||||||
* Checks that the HTTP response code is acceptable, and - if the
|
|
||||||
* right reference is non NULL - that the wire transfer subject
|
|
||||||
* line matches our expectations.
|
|
||||||
*
|
|
||||||
* @param cls closure.
|
|
||||||
* @param http_status HTTP status code we got.
|
|
||||||
* @param ec taler-specific error code.
|
|
||||||
* @param exchange_pub public key of the exchange
|
|
||||||
* @param json original json reply (may include signatures, those
|
|
||||||
* have then been validated already).
|
|
||||||
* @param wtid wire transfer identifier, NULL if exchange did not
|
|
||||||
* execute the transaction yet.
|
|
||||||
* @param execution_time actual or planned execution time for the
|
|
||||||
* wire transfer.
|
|
||||||
* @param coin_contribution contribution to the total amount of
|
|
||||||
* the deposited coin (can be NULL).
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
deposit_wtid_cb (void *cls,
|
|
||||||
unsigned int http_status,
|
|
||||||
enum TALER_ErrorCode ec,
|
|
||||||
const struct TALER_ExchangePublicKeyP *exchange_pub,
|
|
||||||
const json_t *json,
|
|
||||||
const struct TALER_WireTransferIdentifierRawP *wtid,
|
|
||||||
struct GNUNET_TIME_Absolute execution_time,
|
|
||||||
const struct TALER_Amount *coin_contribution)
|
|
||||||
{
|
|
||||||
struct TrackTransactionState *tts = cls;
|
|
||||||
struct TALER_TESTING_Interpreter *is = tts->is;
|
|
||||||
struct TALER_TESTING_Command *cmd = &is->commands[is->ip];
|
|
||||||
|
|
||||||
(void) coin_contribution;
|
|
||||||
(void) exchange_pub;
|
|
||||||
tts->tth = NULL;
|
|
||||||
if (tts->expected_response_code != http_status)
|
|
||||||
{
|
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
|
|
||||||
"Unexpected response code %u to command %s in %s:%u\n",
|
|
||||||
http_status,
|
|
||||||
cmd->label,
|
|
||||||
__FILE__,
|
|
||||||
__LINE__);
|
|
||||||
json_dumpf (json, stderr, 0);
|
|
||||||
TALER_TESTING_interpreter_fail (is);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
switch (http_status)
|
|
||||||
{
|
|
||||||
case MHD_HTTP_OK:
|
|
||||||
tts->wtid = *wtid;
|
|
||||||
if (NULL != tts->bank_transfer_reference)
|
|
||||||
{
|
|
||||||
const struct TALER_TESTING_Command *bank_transfer_cmd;
|
|
||||||
const struct TALER_WireTransferIdentifierRawP *wtid_want;
|
|
||||||
|
|
||||||
/* _this_ wire transfer subject line. */
|
|
||||||
bank_transfer_cmd = TALER_TESTING_interpreter_lookup_command
|
|
||||||
(is, tts->bank_transfer_reference);
|
|
||||||
if (NULL == bank_transfer_cmd)
|
|
||||||
{
|
|
||||||
GNUNET_break (0);
|
|
||||||
TALER_TESTING_interpreter_fail (is);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GNUNET_OK !=
|
|
||||||
TALER_TESTING_get_trait_wtid
|
|
||||||
(bank_transfer_cmd, 0, &wtid_want))
|
|
||||||
{
|
|
||||||
GNUNET_break (0);
|
|
||||||
TALER_TESTING_interpreter_fail (is);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Compare that expected and gotten subjects match. */
|
|
||||||
if (0 != GNUNET_memcmp (wtid,
|
|
||||||
wtid_want))
|
|
||||||
{
|
|
||||||
GNUNET_break (0);
|
|
||||||
TALER_TESTING_interpreter_fail (tts->is);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case MHD_HTTP_ACCEPTED:
|
|
||||||
/* allowed, nothing to check here */
|
|
||||||
break;
|
|
||||||
case MHD_HTTP_NOT_FOUND:
|
|
||||||
/* allowed, nothing to check here */
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
GNUNET_break (0);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
TALER_TESTING_interpreter_next (tts->is);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Run the command.
|
|
||||||
*
|
|
||||||
* @param cls closure.
|
|
||||||
* @param cmd the command to execute.
|
|
||||||
* @param is the interpreter state.
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
track_transaction_run (void *cls,
|
|
||||||
const struct TALER_TESTING_Command *cmd,
|
|
||||||
struct TALER_TESTING_Interpreter *is)
|
|
||||||
{
|
|
||||||
struct TrackTransactionState *tts = cls;
|
|
||||||
const struct TALER_TESTING_Command *transaction_cmd;
|
|
||||||
const struct TALER_CoinSpendPrivateKeyP *coin_priv;
|
|
||||||
struct TALER_CoinSpendPublicKeyP coin_pub;
|
|
||||||
const json_t *contract_terms;
|
|
||||||
const json_t *wire_details;
|
|
||||||
struct GNUNET_HashCode h_wire_details;
|
|
||||||
struct GNUNET_HashCode h_contract_terms;
|
|
||||||
const struct TALER_MerchantPrivateKeyP *merchant_priv;
|
|
||||||
|
|
||||||
tts->is = is;
|
|
||||||
transaction_cmd
|
|
||||||
= TALER_TESTING_interpreter_lookup_command (tts->is,
|
|
||||||
tts->transaction_reference);
|
|
||||||
if (NULL == transaction_cmd)
|
|
||||||
{
|
|
||||||
GNUNET_break (0);
|
|
||||||
TALER_TESTING_interpreter_fail (tts->is);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GNUNET_OK !=
|
|
||||||
TALER_TESTING_get_trait_coin_priv (transaction_cmd,
|
|
||||||
tts->coin_index,
|
|
||||||
&coin_priv))
|
|
||||||
{
|
|
||||||
GNUNET_break (0);
|
|
||||||
TALER_TESTING_interpreter_fail (tts->is);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
GNUNET_CRYPTO_eddsa_key_get_public (&coin_priv->eddsa_priv,
|
|
||||||
&coin_pub.eddsa_pub);
|
|
||||||
|
|
||||||
/* Get the strings.. */
|
|
||||||
if (GNUNET_OK !=
|
|
||||||
TALER_TESTING_get_trait_wire_details (transaction_cmd,
|
|
||||||
0,
|
|
||||||
&wire_details))
|
|
||||||
{
|
|
||||||
GNUNET_break (0);
|
|
||||||
TALER_TESTING_interpreter_fail (tts->is);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GNUNET_OK !=
|
|
||||||
TALER_TESTING_get_trait_contract_terms (transaction_cmd,
|
|
||||||
0,
|
|
||||||
&contract_terms))
|
|
||||||
{
|
|
||||||
GNUNET_break (0);
|
|
||||||
TALER_TESTING_interpreter_fail (tts->is);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( (NULL == wire_details) ||
|
|
||||||
(NULL == contract_terms) )
|
|
||||||
{
|
|
||||||
GNUNET_break (0);
|
|
||||||
TALER_TESTING_interpreter_fail (tts->is);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Should not fail here, json has been parsed already */
|
|
||||||
GNUNET_assert
|
|
||||||
( (GNUNET_OK ==
|
|
||||||
TALER_JSON_merchant_wire_signature_hash (wire_details,
|
|
||||||
&h_wire_details)) &&
|
|
||||||
(GNUNET_OK ==
|
|
||||||
TALER_JSON_hash (contract_terms,
|
|
||||||
&h_contract_terms)) );
|
|
||||||
|
|
||||||
if (GNUNET_OK !=
|
|
||||||
TALER_TESTING_get_trait_merchant_priv (transaction_cmd,
|
|
||||||
0,
|
|
||||||
&merchant_priv))
|
|
||||||
{
|
|
||||||
GNUNET_break (0);
|
|
||||||
TALER_TESTING_interpreter_fail (tts->is);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
tts->tth = TALER_EXCHANGE_deposits_get (is->exchange,
|
|
||||||
merchant_priv,
|
|
||||||
&h_wire_details,
|
|
||||||
&h_contract_terms,
|
|
||||||
&coin_pub,
|
|
||||||
&deposit_wtid_cb,
|
|
||||||
tts);
|
|
||||||
GNUNET_assert (NULL != tts->tth);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Cleanup the state from a "track transaction" CMD, and possibly
|
|
||||||
* cancel a operation thereof.
|
|
||||||
*
|
|
||||||
* @param cls closure.
|
|
||||||
* @param cmd the command which is being cleaned up.
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
track_transaction_cleanup (void *cls,
|
|
||||||
const struct TALER_TESTING_Command *cmd)
|
|
||||||
{
|
|
||||||
struct TrackTransactionState *tts = cls;
|
|
||||||
|
|
||||||
if (NULL != tts->tth)
|
|
||||||
{
|
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
|
|
||||||
"Command %u (%s) did not complete\n",
|
|
||||||
tts->is->ip,
|
|
||||||
cmd->label);
|
|
||||||
TALER_EXCHANGE_deposits_get_cancel (tts->tth);
|
|
||||||
tts->tth = NULL;
|
|
||||||
}
|
|
||||||
GNUNET_free (tts);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Offer internal data from a "track transaction" CMD.
|
|
||||||
*
|
|
||||||
* @param cls closure.
|
|
||||||
* @param[out] ret result (could be anything).
|
|
||||||
* @param trait name of the trait.
|
|
||||||
* @param index index number of the object to offer.
|
|
||||||
* @return #GNUNET_OK on success.
|
|
||||||
*/
|
|
||||||
static int
|
|
||||||
track_transaction_traits (void *cls,
|
|
||||||
const void **ret,
|
|
||||||
const char *trait,
|
|
||||||
unsigned int index)
|
|
||||||
{
|
|
||||||
struct TrackTransactionState *tts = cls;
|
|
||||||
struct TALER_TESTING_Trait traits[] = {
|
|
||||||
TALER_TESTING_make_trait_wtid (0, &tts->wtid),
|
|
||||||
TALER_TESTING_trait_end ()
|
|
||||||
};
|
|
||||||
|
|
||||||
return TALER_TESTING_get_trait (traits,
|
|
||||||
ret,
|
|
||||||
trait,
|
|
||||||
index);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a "track transaction" command.
|
|
||||||
*
|
|
||||||
* @param label the command label.
|
|
||||||
* @param transaction_reference reference to a deposit operation,
|
|
||||||
* will be used to get the input data for the track.
|
|
||||||
* @param coin_index index of the coin involved in the transaction.
|
|
||||||
* @param expected_response_code expected HTTP response code.
|
|
||||||
* @param bank_transfer_reference reference to a command that
|
|
||||||
* can offer a WTID so as to check that against what WTID
|
|
||||||
* the tracked operation has. Set as NULL if not needed.
|
|
||||||
* @return the command.
|
|
||||||
*/
|
|
||||||
struct TALER_TESTING_Command
|
|
||||||
TALER_TESTING_cmd_track_transaction (const char *label,
|
|
||||||
const char *transaction_reference,
|
|
||||||
unsigned int coin_index,
|
|
||||||
unsigned int expected_response_code,
|
|
||||||
const char *bank_transfer_reference)
|
|
||||||
{
|
|
||||||
struct TrackTransactionState *tts;
|
|
||||||
|
|
||||||
tts = GNUNET_new (struct TrackTransactionState);
|
|
||||||
tts->transaction_reference = transaction_reference;
|
|
||||||
tts->expected_response_code = expected_response_code;
|
|
||||||
tts->bank_transfer_reference = bank_transfer_reference;
|
|
||||||
tts->coin_index = coin_index;
|
|
||||||
{
|
|
||||||
struct TALER_TESTING_Command cmd = {
|
|
||||||
.cls = tts,
|
|
||||||
.label = label,
|
|
||||||
.run = &track_transaction_run,
|
|
||||||
.cleanup = &track_transaction_cleanup,
|
|
||||||
.traits = &track_transaction_traits
|
|
||||||
};
|
|
||||||
|
|
||||||
return cmd;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cleanup the state for a "track transfer" CMD, and possibly
|
* Cleanup the state for a "track transfer" CMD, and possibly
|
||||||
* cancel a pending operation thereof.
|
* cancel a pending operation thereof.
|
||||||
@ -802,4 +456,4 @@ TALER_TESTING_cmd_track_transfer (const char *label,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* end of testing_api_cmd_track.c */
|
/* end of testing_api_cmd_gransfer_get.c */
|
@ -84,6 +84,7 @@ wait_service_run (void *cls,
|
|||||||
const char *url = cmd->cls;
|
const char *url = cmd->cls;
|
||||||
char *wget_cmd;
|
char *wget_cmd;
|
||||||
|
|
||||||
|
(void) cls;
|
||||||
GNUNET_asprintf (&wget_cmd,
|
GNUNET_asprintf (&wget_cmd,
|
||||||
"wget -q -t 1 -T 1 %s -o /dev/null -O /dev/null",
|
"wget -q -t 1 -T 1 %s -o /dev/null -O /dev/null",
|
||||||
url);
|
url);
|
||||||
|
@ -86,10 +86,10 @@ wire_cb (void *cls,
|
|||||||
const struct TALER_EXCHANGE_WireAccount *accounts)
|
const struct TALER_EXCHANGE_WireAccount *accounts)
|
||||||
{
|
{
|
||||||
struct WireState *ws = cls;
|
struct WireState *ws = cls;
|
||||||
struct TALER_TESTING_Command *cmd = \
|
struct TALER_TESTING_Command *cmd = &ws->is->commands[ws->is->ip];
|
||||||
&ws->is->commands[ws->is->ip];
|
|
||||||
struct TALER_Amount expected_fee;
|
struct TALER_Amount expected_fee;
|
||||||
|
|
||||||
|
(void) ec;
|
||||||
TALER_LOG_DEBUG ("Checking parsed /wire response\n");
|
TALER_LOG_DEBUG ("Checking parsed /wire response\n");
|
||||||
ws->wh = NULL;
|
ws->wh = NULL;
|
||||||
if (ws->expected_response_code != http_status)
|
if (ws->expected_response_code != http_status)
|
||||||
@ -165,6 +165,8 @@ wire_run (void *cls,
|
|||||||
struct TALER_TESTING_Interpreter *is)
|
struct TALER_TESTING_Interpreter *is)
|
||||||
{
|
{
|
||||||
struct WireState *ws = cls;
|
struct WireState *ws = cls;
|
||||||
|
|
||||||
|
(void) cmd;
|
||||||
ws->is = is;
|
ws->is = is;
|
||||||
ws->wh = TALER_EXCHANGE_wire (is->exchange,
|
ws->wh = TALER_EXCHANGE_wire (is->exchange,
|
||||||
&wire_cb,
|
&wire_cb,
|
||||||
|
@ -520,11 +520,11 @@ TALER_TESTING_cmd_withdraw_amount (const char *label,
|
|||||||
* @return the command.
|
* @return the command.
|
||||||
*/
|
*/
|
||||||
struct TALER_TESTING_Command
|
struct TALER_TESTING_Command
|
||||||
TALER_TESTING_cmd_withdraw_denomination (const char *label,
|
TALER_TESTING_cmd_withdraw_denomination (
|
||||||
const char *reserve_reference,
|
const char *label,
|
||||||
const struct
|
const char *reserve_reference,
|
||||||
TALER_EXCHANGE_DenomPublicKey *dk,
|
const struct TALER_EXCHANGE_DenomPublicKey *dk,
|
||||||
unsigned int expected_response_code)
|
unsigned int expected_response_code)
|
||||||
{
|
{
|
||||||
struct WithdrawState *ws;
|
struct WithdrawState *ws;
|
||||||
|
|
||||||
|
@ -34,6 +34,8 @@ main (int argc,
|
|||||||
struct TALER_Amount r;
|
struct TALER_Amount r;
|
||||||
char *c;
|
char *c;
|
||||||
|
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
GNUNET_log_setup ("test-amout",
|
GNUNET_log_setup ("test-amout",
|
||||||
"WARNING",
|
"WARNING",
|
||||||
NULL);
|
NULL);
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
* @return 0 on success
|
* @return 0 on success
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
test_high_level ()
|
test_high_level (void)
|
||||||
{
|
{
|
||||||
struct GNUNET_CRYPTO_EddsaPrivateKey *pk;
|
struct GNUNET_CRYPTO_EddsaPrivateKey *pk;
|
||||||
struct TALER_CoinSpendPrivateKeyP coin_priv;
|
struct TALER_CoinSpendPrivateKeyP coin_priv;
|
||||||
@ -88,7 +88,7 @@ test_high_level ()
|
|||||||
* @return 0 on success
|
* @return 0 on success
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
test_planchets ()
|
test_planchets (void)
|
||||||
{
|
{
|
||||||
struct TALER_PlanchetSecretsP ps;
|
struct TALER_PlanchetSecretsP ps;
|
||||||
struct TALER_DenominationPrivateKey dk_priv;
|
struct TALER_DenominationPrivateKey dk_priv;
|
||||||
@ -127,6 +127,8 @@ int
|
|||||||
main (int argc,
|
main (int argc,
|
||||||
const char *const argv[])
|
const char *const argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
if (0 != test_high_level ())
|
if (0 != test_high_level ())
|
||||||
return 1;
|
return 1;
|
||||||
if (0 != test_planchets ())
|
if (0 != test_planchets ())
|
||||||
|
@ -39,6 +39,8 @@ main (int argc,
|
|||||||
{
|
{
|
||||||
char *r;
|
char *r;
|
||||||
|
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
GNUNET_log_setup ("test-payto",
|
GNUNET_log_setup ("test-payto",
|
||||||
"WARNING",
|
"WARNING",
|
||||||
NULL);
|
NULL);
|
||||||
|
@ -45,6 +45,8 @@ int
|
|||||||
main (int argc,
|
main (int argc,
|
||||||
const char *const argv[])
|
const char *const argv[])
|
||||||
{
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
cf (TALER_urlencode (""), "");
|
cf (TALER_urlencode (""), "");
|
||||||
cf (TALER_urlencode ("abc"), "abc");
|
cf (TALER_urlencode ("abc"), "abc");
|
||||||
cf (TALER_urlencode ("~~"), "~~");
|
cf (TALER_urlencode ("~~"), "~~");
|
||||||
|
Loading…
Reference in New Issue
Block a user