fix ftbfs

This commit is contained in:
Christian Grothoff 2020-01-12 01:03:08 +01:00
parent 85c4aa733c
commit 9b586cd5f0
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC
4 changed files with 97 additions and 126 deletions

View File

@ -76,6 +76,7 @@ libtalerbanktesting_la_SOURCES = \
testing_api_cmd_transfer.c \
testing_api_helpers.c
libtalerbanktesting_la_LIBADD = \
libtalerbank.la \
$(top_builddir)/src/json/libtalerjson.la \
-lgnunetjson \
-lgnunetutil \

View File

@ -50,14 +50,14 @@ struct AdminAddIncomingState
struct TALER_Amount amount;
/**
* Base URL of the debit account.
* Base URL of the credited account.
*/
const char *debit_url;
const char *exchange_credit_url;
/**
* Money receiver account URL.
* Money sender account URL.
*/
const char *payto_credit_account;
const char *payto_debit_account;
/**
* Username to use for authentication.
@ -120,7 +120,7 @@ struct AdminAddIncomingState
/**
* Was this command modified via
* #TALER_TESTING_cmd_fakebank_transfer_with_retry to
* #TALER_TESTING_cmd_admin_add_incoming_with_retry to
* enable retries?
*/
int do_retry;
@ -135,13 +135,13 @@ struct AdminAddIncomingState
* @param is interpreter state.
*/
static void
fakebank_transfer_run (void *cls,
const struct TALER_TESTING_Command *cmd,
struct TALER_TESTING_Interpreter *is);
admin_add_incoming_run (void *cls,
const struct TALER_TESTING_Command *cmd,
struct TALER_TESTING_Interpreter *is);
/**
* Task scheduled to re-try #fakebank_transfer_run.
* Task scheduled to re-try #admin_add_incoming_run.
*
* @param cls a `struct AdminAddIncomingState`
*/
@ -151,9 +151,9 @@ do_retry (void *cls)
struct AdminAddIncomingState *fts = cls;
fts->retry_task = NULL;
fakebank_transfer_run (fts,
NULL,
fts->is);
admin_add_incoming_run (fts,
NULL,
fts->is);
}
@ -231,9 +231,9 @@ confirmation_cb (void *cls,
* @param is interpreter state.
*/
static void
fakebank_transfer_run (void *cls,
const struct TALER_TESTING_Command *cmd,
struct TALER_TESTING_Interpreter *is)
admin_add_incoming_run (void *cls,
const struct TALER_TESTING_Command *cmd,
struct TALER_TESTING_Interpreter *is)
{
struct AdminAddIncomingState *fts = cls;
@ -335,11 +335,11 @@ fakebank_transfer_run (void *cls,
fts->aih
= TALER_BANK_admin_add_incoming
(TALER_TESTING_interpreter_get_context (is),
fts->debit_url,
fts->exchange_credit_url,
&fts->auth,
&fts->reserve_pub,
&fts->amount,
fts->payto_credit_account,
fts->payto_debit_account,
&confirmation_cb,
fts);
if (NULL == fts->aih)
@ -352,15 +352,15 @@ fakebank_transfer_run (void *cls,
/**
* Free the state of a "fakebank transfer" CMD, and possibly
* Free the state of a "/admin/add-incoming" CMD, and possibly
* cancel a pending operation thereof.
*
* @param cls closure
* @param cmd current CMD being cleaned up.
*/
static void
fakebank_transfer_cleanup (void *cls,
const struct TALER_TESTING_Command *cmd)
admin_add_incoming_cleanup (void *cls,
const struct TALER_TESTING_Command *cmd)
{
struct AdminAddIncomingState *fts = cls;
@ -382,7 +382,7 @@ fakebank_transfer_cleanup (void *cls,
/**
* Offer internal data from a "fakebank transfer" CMD to other
* Offer internal data from a "/admin/add-incoming" CMD to other
* commands.
*
* @param cls closure.
@ -392,17 +392,16 @@ fakebank_transfer_cleanup (void *cls,
* @return #GNUNET_OK on success.
*/
static int
fakebank_transfer_traits (void *cls,
const void **ret,
const char *trait,
unsigned int index)
admin_add_incoming_traits (void *cls,
const void **ret,
const char *trait,
unsigned int index)
{
struct AdminAddIncomingState *fts = cls;
struct TALER_TESTING_Trait traits[] = {
TALER_TESTING_make_trait_url (1, fts->debit_url),
TALER_TESTING_make_trait_url (1, fts->payto_debit_account),
TALER_TESTING_MAKE_TRAIT_ROW_ID (&fts->serial_id),
TALER_TESTING_MAKE_TRAIT_CREDIT_ACCOUNT (fts->payto_credit_account),
TALER_TESTING_MAKE_TRAIT_DEBIT_ACCOUNT (fts->debit_url),
TALER_TESTING_MAKE_TRAIT_CREDIT_ACCOUNT (fts->exchange_credit_url),
TALER_TESTING_make_trait_amount_obj (0, &fts->amount),
TALER_TESTING_make_trait_absolute_time (0, &fts->timestamp),
TALER_TESTING_make_trait_reserve_priv (0,
@ -420,33 +419,29 @@ fakebank_transfer_traits (void *cls,
/**
* Create fakebank_transfer command, the subject line will be
* derived from a randomly created reserve priv. Note that that
* reserve priv will then be offered as trait.
* Create admin/add-incoming command.
*
* @param label command label.
* @param amount amount to transfer.
* @param account_base_url base URL of the account that implements this
* wire transer (which account gives money).
* @param payto_credit_account which account receives money.
* @param auth_username username identifying the @a
* debit_account_no at the bank.
* @param auth_password password for @a auth_username.
* @param exchange_base_url base URL of the account that receives this
* wire transer (which account receives money).
* @param payto_debit_account which account sends money.
* @param auth authentication data
* @return the command.
*/
struct TALER_TESTING_Command
TALER_TESTING_cmd_fakebank_transfer
TALER_TESTING_cmd_admin_add_incoming
(const char *label,
const char *amount,
const char *account_base_url,
const char *exchange_base_url,
const struct TALER_BANK_AuthenticationData *auth,
const char *payto_credit_account)
const char *payto_debit_account)
{
struct AdminAddIncomingState *fts;
fts = GNUNET_new (struct AdminAddIncomingState);
fts->debit_url = account_base_url;
fts->payto_credit_account = payto_credit_account;
fts->exchange_credit_url = exchange_base_url;
fts->payto_debit_account = payto_debit_account;
fts->auth = *auth;
if (GNUNET_OK !=
TALER_string_to_amount (amount,
@ -463,9 +458,9 @@ TALER_TESTING_cmd_fakebank_transfer
struct TALER_TESTING_Command cmd = {
.cls = fts,
.label = label,
.run = &fakebank_transfer_run,
.cleanup = &fakebank_transfer_cleanup,
.traits = &fakebank_transfer_traits
.run = &admin_add_incoming_run,
.cleanup = &admin_add_incoming_cleanup,
.traits = &admin_add_incoming_traits
};
return cmd;
@ -474,39 +469,34 @@ TALER_TESTING_cmd_fakebank_transfer
/**
* Create "fakebank transfer" CMD, letting the caller specify
* Create "/admin/add-incoming" CMD, letting the caller specify
* a reference to a command that can offer a reserve private key.
* This private key will then be used to construct the subject line
* of the wire transfer.
*
* @param label command label.
* @param amount the amount to transfer.
* @param bank_url base URL of the bank running the transfer.
* @param debit_account_no which account (expressed as a number)
* gives money.
* @param credit_account_no which account (expressed as a number)
* receives money.
* @param auth_username username identifying the @a
* debit_account_no at the bank.
* @param auth_password password for @a auth_username.
* @param account_bank_url base URL of the exchange account receiving the money
* @param payto_debit_account which account sends money
* @param auth authentication data
* @param ref reference to a command that can offer a reserve
* private key.
* @return the command.
*/
struct TALER_TESTING_Command
TALER_TESTING_cmd_fakebank_transfer_with_ref
TALER_TESTING_cmd_admin_add_incoming_with_ref
(const char *label,
const char *amount,
const char *account_base_url,
const struct TALER_BANK_AuthenticationData *auth,
const char *payto_credit_account,
const char *payto_debit_account,
const char *ref)
{
struct AdminAddIncomingState *fts;
fts = GNUNET_new (struct AdminAddIncomingState);
fts->debit_url = account_base_url;
fts->payto_credit_account = payto_credit_account;
fts->exchange_credit_url = account_base_url;
fts->payto_debit_account = payto_debit_account;
fts->auth = *auth;
fts->reserve_reference = ref;
if (GNUNET_OK !=
@ -523,9 +513,9 @@ TALER_TESTING_cmd_fakebank_transfer_with_ref
struct TALER_TESTING_Command cmd = {
.cls = fts,
.label = label,
.run = &fakebank_transfer_run,
.cleanup = &fakebank_transfer_cleanup,
.traits = &fakebank_transfer_traits
.run = &admin_add_incoming_run,
.cleanup = &admin_add_incoming_cleanup,
.traits = &admin_add_incoming_traits
};
return cmd;
@ -534,7 +524,7 @@ TALER_TESTING_cmd_fakebank_transfer_with_ref
/**
* Create "fakebank transfer" CMD, letting the caller specifying
* Create "/admin/add-incoming" CMD, letting the caller specifying
* the merchant instance. This version is useful when a tip
* reserve should be topped up, in fact the interpreter will need
* the "tipping instance" in order to get the instance public key
@ -542,17 +532,11 @@ TALER_TESTING_cmd_fakebank_transfer_with_ref
*
* @param label command label.
* @param amount amount to transfer.
* @param bank_url base URL of the bank that implements this
* wire transer. For simplicity, both credit and debit
* bank account exist at the same bank.
* @param debit_account_no which account (expressed as a number)
* gives money.
* @param credit_account_no which account (expressed as a number)
* receives money.
*
* @param auth_username username identifying the @a
* debit_account_no at the bank.
* @param auth_password password for @a auth_username.
* @param account_bank_url base URL of the exchange bank account
* that receives the wire transfer
* @param payto_debit_account which account (expressed as a number)
* gives money
* @param auth authentication data
* @param instance the instance that runs the tipping. Under this
* instance, the configuration file will provide the private
* key of the tipping reserve. This data will then used to
@ -561,20 +545,20 @@ TALER_TESTING_cmd_fakebank_transfer_with_ref
* @return the command.
*/
struct TALER_TESTING_Command
TALER_TESTING_cmd_fakebank_transfer_with_instance
TALER_TESTING_cmd_admin_add_incoming_with_instance
(const char *label,
const char *amount,
const char *account_base_url,
const struct TALER_BANK_AuthenticationData *auth,
const char *payto_credit_account,
const char *payto_debit_account,
const char *instance,
const char *config_filename)
{
struct AdminAddIncomingState *fts;
fts = GNUNET_new (struct AdminAddIncomingState);
fts->debit_url = account_base_url;
fts->payto_credit_account = payto_credit_account;
fts->exchange_credit_url = account_base_url;
fts->payto_debit_account = payto_debit_account;
fts->auth = *auth;
fts->instance = instance;
fts->config_filename = config_filename;
@ -592,9 +576,9 @@ TALER_TESTING_cmd_fakebank_transfer_with_instance
struct TALER_TESTING_Command cmd = {
.cls = fts,
.label = label,
.run = &fakebank_transfer_run,
.cleanup = &fakebank_transfer_cleanup,
.traits = &fakebank_transfer_traits
.run = &admin_add_incoming_run,
.cleanup = &admin_add_incoming_cleanup,
.traits = &admin_add_incoming_traits
};
return cmd;
@ -611,11 +595,11 @@ TALER_TESTING_cmd_fakebank_transfer_with_instance
* @return the command with retries enabled
*/
struct TALER_TESTING_Command
TALER_TESTING_cmd_fakebank_transfer_retry (struct TALER_TESTING_Command cmd)
TALER_TESTING_cmd_admin_add_incoming_retry (struct TALER_TESTING_Command cmd)
{
struct AdminAddIncomingState *fts;
GNUNET_assert (&fakebank_transfer_run == cmd.run);
GNUNET_assert (&admin_add_incoming_run == cmd.run);
fts = cmd.cls;
fts->do_retry = GNUNET_YES;
return cmd;

View File

@ -59,13 +59,12 @@ enum BenchmarkError
#define FIRST_INSTRUCTION -1
#define CMD_TRANSFER_TO_EXCHANGE(label, amount) \
TALER_TESTING_cmd_fakebank_transfer_retry \
(TALER_TESTING_cmd_fakebank_transfer (label, amount, \
user_bank_account.details. \
x_taler_bank.account_base_url, \
exchange_payto_url, \
"dummy_user", \
"dummy_password"))
TALER_TESTING_cmd_admin_add_incoming_retry \
(TALER_TESTING_cmd_admin_add_incoming (label, amount, \
exchange_bank_account.details. \
x_taler_bank.account_base_url, \
NULL, \
user_payto_url))
/**
@ -98,7 +97,7 @@ static struct TALER_Account exchange_bank_account;
/**
* Hold information about a user at the bank.
*/
static struct TALER_Account user_bank_account;
static char *user_payto_url;
/**
* Time snapshot taken right before executing the CMDs.
@ -821,32 +820,17 @@ main (int argc,
return BAD_CLI_ARG;
}
if (GNUNET_OK !=
GNUNET_CONFIGURATION_get_value_string
(cfg,
"benchmark",
"user-url",
&user_payto_url))
{
char *user_payto_url;
if (GNUNET_OK !=
GNUNET_CONFIGURATION_get_value_string
(cfg,
"benchmark",
"user-url",
&user_payto_url))
{
GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
"benchmark",
"user-url");
return BAD_CONFIG_FILE;
}
if (TALER_EC_NONE !=
TALER_WIRE_payto_to_account (user_payto_url,
&user_bank_account))
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
_ ("Malformed payto:// URL `%s' in configuration\n"),
user_payto_url);
GNUNET_free (user_payto_url);
return BAD_CONFIG_FILE;
}
GNUNET_free (user_payto_url);
GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
"benchmark",
"user-url");
return BAD_CONFIG_FILE;
}
{

View File

@ -169,24 +169,26 @@ TALER_TESTING_cmd_transfer (const char *label,
const char *exchange_base_url);
/* ***** Commands ONLY for testing (/admin-API) **** */
/**
* Create /admin/add-incoming command.
*
* @param label command label.
* @param amount amount to transfer.
* @param account_base_url base URL of the account that implements this
* wire transer (which account gives money).
* @param payto_credit_account which account receives money.
* @param exchange_base_url base URL of the exchange account that receives this
* wire transer (which account receives money).
* @param payto_debit_account which account sends money.
* @param auth authentication data
* @return the command.
*/
struct TALER_TESTING_Command
TALER_TESTING_cmd_admin_add_incoming (const char *label,
const char *amount,
const char *account_base_url,
const char *exchange_base_url,
const struct
TALER_BANK_AuthenticationData *auth,
const char *payto_credit_account);
const char *payto_debit_account);
/**
@ -198,8 +200,8 @@ TALER_TESTING_cmd_admin_add_incoming (const char *label,
* @param label command label.
* @param amount the amount to transfer.
* @param account_base_url base URL of the account that implements this
* wire transer (which account gives money).
* @param payto_credit_account which account receives money.
* wire transer (which account receives money).
* @param payto_debit_account which account sends money.
* @param auth authentication data
* @param ref reference to a command that can offer a reserve
* private key.
@ -212,7 +214,7 @@ TALER_TESTING_cmd_admin_add_incoming_with_ref (const char *label,
const struct
TALER_BANK_AuthenticationData *
auth,
const char *payto_credit_account,
const char *payto_debit_account,
const char *ref);
@ -226,8 +228,8 @@ TALER_TESTING_cmd_admin_add_incoming_with_ref (const char *label,
* @param label command label.
* @param amount amount to transfer.
* @param account_base_url base URL of the account that implements this
* wire transer (which account gives money).
* @param payto_credit_account which account receives money.
* wire transer (which account receives money).
* @param payto_debit_account which account sends money.
* @param auth authentication data
* @param instance the instance that runs the tipping. Under this
* instance, the configuration file will provide the private
@ -244,7 +246,7 @@ TALER_TESTING_cmd_admin_add_incoming_with_instance (const char *label,
TALER_BANK_AuthenticationData
*auth,
const char *
payto_credit_account,
payto_debit_account,
const char *instance,
const char *config_filename);