-migrate benchmarks to new configuration structure

This commit is contained in:
Christian Grothoff 2021-08-04 13:46:08 +02:00
parent 95df47ae4e
commit 383fd75230
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC
3 changed files with 57 additions and 102 deletions

View File

@ -18,11 +18,12 @@ taler_bank_benchmark_SOURCES = \
taler-bank-benchmark.c taler-bank-benchmark.c
taler_bank_benchmark_LDADD = \ taler_bank_benchmark_LDADD = \
$(LIBGCRYPT_LIBS) \ $(LIBGCRYPT_LIBS) \
$(top_builddir)/src/json/libtalerjson.la \
$(top_builddir)/src/util/libtalerutil.la \
$(top_builddir)/src/testing/libtalertesting.la \ $(top_builddir)/src/testing/libtalertesting.la \
$(top_builddir)/src/bank-lib/libtalerfakebank.la \ $(top_builddir)/src/bank-lib/libtalerfakebank.la \
$(top_builddir)/src/bank-lib/libtalerbank.la \ $(top_builddir)/src/bank-lib/libtalerbank.la \
$(top_builddir)/src/exchangedb/libtalerexchangedb.la \
$(top_builddir)/src/json/libtalerjson.la \
$(top_builddir)/src/util/libtalerutil.la \
-lgnunetjson \ -lgnunetjson \
-lgnunetcurl \ -lgnunetcurl \
-lgnunetutil \ -lgnunetutil \
@ -33,12 +34,13 @@ taler_exchange_benchmark_SOURCES = \
taler-exchange-benchmark.c taler-exchange-benchmark.c
taler_exchange_benchmark_LDADD = \ taler_exchange_benchmark_LDADD = \
$(LIBGCRYPT_LIBS) \ $(LIBGCRYPT_LIBS) \
$(top_builddir)/src/json/libtalerjson.la \
$(top_builddir)/src/util/libtalerutil.la \
$(top_builddir)/src/lib/libtalerexchange.la \ $(top_builddir)/src/lib/libtalerexchange.la \
$(top_builddir)/src/exchangedb/libtalerexchangedb.la \
$(top_builddir)/src/testing/libtalertesting.la \ $(top_builddir)/src/testing/libtalertesting.la \
$(top_builddir)/src/bank-lib/libtalerfakebank.la \ $(top_builddir)/src/bank-lib/libtalerfakebank.la \
$(top_builddir)/src/bank-lib/libtalerbank.la \ $(top_builddir)/src/bank-lib/libtalerbank.la \
$(top_builddir)/src/json/libtalerjson.la \
$(top_builddir)/src/util/libtalerutil.la \
-lgnunetjson \ -lgnunetjson \
-lgnunetcurl \ -lgnunetcurl \
-lgnunetutil \ -lgnunetutil \

View File

@ -33,6 +33,7 @@
#include "taler_signatures.h" #include "taler_signatures.h"
#include "taler_json_lib.h" #include "taler_json_lib.h"
#include "taler_bank_service.h" #include "taler_bank_service.h"
#include "taler_exchangedb_lib.h"
#include "taler_fakebank_lib.h" #include "taler_fakebank_lib.h"
#include "taler_testing_lib.h" #include "taler_testing_lib.h"
#include "taler_error_codes.h" #include "taler_error_codes.h"
@ -74,7 +75,7 @@ enum BenchmarkMode
/** /**
* Hold information regarding which bank has the exchange account. * Hold information regarding which bank has the exchange account.
*/ */
static struct TALER_BANK_AuthenticationData exchange_bank_account; static const struct TALER_EXCHANGEDB_AccountInfo *exchange_bank_account;
/** /**
* Time snapshot taken right before executing the CMDs. * Time snapshot taken right before executing the CMDs.
@ -249,26 +250,6 @@ print_stats (void)
} }
/**
* Decide which exchange account is going to be used to address a wire
* transfer to. Used at withdrawal time.
*
* @param cls closure
* @param section section name.
*/
static void
pick_exchange_account_cb (void *cls,
const char *section)
{
const char **s = cls;
if (0 == strncasecmp ("exchange-account-",
section,
strlen ("exchange-account-")))
*s = section;
}
/** /**
* Actual commands construction and execution. * Actual commands construction and execution.
* *
@ -308,7 +289,7 @@ run (void *cls,
TALER_TESTING_cmd_admin_add_incoming (add_label ( TALER_TESTING_cmd_admin_add_incoming (add_label (
create_reserve_label), create_reserve_label),
total_reserve_amount, total_reserve_amount,
&exchange_bank_account, exchange_bank_account->auth,
add_label (user_payto_uri))); add_label (user_payto_uri)));
} }
GNUNET_free (total_reserve_amount); GNUNET_free (total_reserve_amount);
@ -827,32 +808,29 @@ main (int argc,
return BAD_CLI_ARG; return BAD_CLI_ARG;
} }
} }
{
const char *bank_details_section;
GNUNET_CONFIGURATION_iterate_sections (cfg, if (GNUNET_OK !=
&pick_exchange_account_cb, TALER_EXCHANGEDB_load_accounts (cfg,
&bank_details_section); TALER_EXCHANGEDB_ALO_AUTHDATA
if (NULL == bank_details_section) | TALER_EXCHANGEDB_ALO_CREDIT))
{ {
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Missing specification of bank account in configuration\n"); "Configuration fails to provide exchange bank details\n");
GNUNET_free (cfg_filename); GNUNET_free (cfg_filename);
return BAD_CONFIG_FILE; return BAD_CONFIG_FILE;
} }
if (GNUNET_OK !=
TALER_BANK_auth_parse_cfg (cfg, exchange_bank_account
bank_details_section, = TALER_EXCHANGEDB_find_account_by_method ("x-taler-bank");
&exchange_bank_account)) if (NULL == exchange_bank_account)
{ {
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Configuration fails to provide exchange bank details in section `%s'\n", "No bank account for `x-taler-bank` given in configuration\n");
bank_details_section); GNUNET_free (cfg_filename);
GNUNET_free (cfg_filename); return BAD_CONFIG_FILE;
return BAD_CONFIG_FILE;
}
} }
result = parallel_benchmark (); result = parallel_benchmark ();
TALER_EXCHANGEDB_unload_accounts ();
GNUNET_CONFIGURATION_destroy (cfg); GNUNET_CONFIGURATION_destroy (cfg);
GNUNET_free (cfg_filename); GNUNET_free (cfg_filename);

View File

@ -29,6 +29,7 @@
#include <sys/resource.h> #include <sys/resource.h>
#include "taler_util.h" #include "taler_util.h"
#include "taler_signatures.h" #include "taler_signatures.h"
#include "taler_exchangedb_lib.h"
#include "taler_exchange_service.h" #include "taler_exchange_service.h"
#include "taler_json_lib.h" #include "taler_json_lib.h"
#include "taler_bank_service.h" #include "taler_bank_service.h"
@ -82,7 +83,7 @@ enum BenchmarkMode
/** /**
* Hold information regarding which bank has the exchange account. * Hold information regarding which bank has the exchange account.
*/ */
static struct TALER_BANK_AuthenticationData exchange_bank_account; static const struct TALER_EXCHANGEDB_AccountInfo *exchange_bank_account;
/** /**
* Configuration of our exchange. * Configuration of our exchange.
@ -252,34 +253,11 @@ static struct TALER_TESTING_Command
cmd_transfer_to_exchange (const char *label, cmd_transfer_to_exchange (const char *label,
const char *amount) const char *amount)
{ {
return TALER_TESTING_cmd_admin_add_incoming_retry return TALER_TESTING_cmd_admin_add_incoming_retry (
(TALER_TESTING_cmd_admin_add_incoming (label, TALER_TESTING_cmd_admin_add_incoming (label,
amount, amount,
&exchange_bank_account, exchange_bank_account->auth,
user_payto_uri)); user_payto_uri));
}
/**
* Decide which exchange account is going to be
* used to address a wire transfer to. Used at
* withdrawal time.
*
* @param cls closure
* @param section section name.
*/
static void
pick_exchange_account_cb (void *cls,
const char *section)
{
if (0 == strncasecmp ("exchange-account-",
section,
strlen ("exchange-account-")))
{
const char **s = cls;
*s = section;
}
} }
@ -520,8 +498,9 @@ launch_fakebank (void *cls)
(void) cls; (void) cls;
fakebank fakebank
= TALER_TESTING_run_fakebank (exchange_bank_account.wire_gateway_url, = TALER_TESTING_run_fakebank (
currency); exchange_bank_account->auth->wire_gateway_url,
currency);
if (NULL == fakebank) if (NULL == fakebank)
{ {
GNUNET_break (0); GNUNET_break (0);
@ -1054,30 +1033,25 @@ main (int argc,
return BAD_CONFIG_FILE; return BAD_CONFIG_FILE;
} }
if (GNUNET_OK !=
TALER_EXCHANGEDB_load_accounts (cfg,
TALER_EXCHANGEDB_ALO_AUTHDATA
| TALER_EXCHANGEDB_ALO_CREDIT))
{ {
const char *bank_details_section; GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Configuration fails to provide exchange bank details\n");
GNUNET_free (cfg_filename);
return BAD_CONFIG_FILE;
}
GNUNET_CONFIGURATION_iterate_sections (cfg, exchange_bank_account
&pick_exchange_account_cb, = TALER_EXCHANGEDB_find_account_by_method ("x-taler-bank");
&bank_details_section); if (NULL == exchange_bank_account)
if (NULL == bank_details_section) {
{ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "No bank account for `x-taler-bank` given in configuration\n");
"Missing specification of bank account in configuration\n"); GNUNET_free (cfg_filename);
GNUNET_free (cfg_filename); return BAD_CONFIG_FILE;
return BAD_CONFIG_FILE;
}
if (GNUNET_OK !=
TALER_BANK_auth_parse_cfg (cfg,
bank_details_section,
&exchange_bank_account))
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Configuration fails to provide exchange bank details in section `%s'\n",
bank_details_section);
GNUNET_free (cfg_filename);
return BAD_CONFIG_FILE;
}
} }
if ( (MODE_EXCHANGE == mode) || (MODE_BOTH == mode) ) if ( (MODE_EXCHANGE == mode) || (MODE_BOTH == mode) )
{ {
@ -1156,6 +1130,7 @@ main (int argc,
result = parallel_benchmark (&run, result = parallel_benchmark (&run,
NULL, NULL,
cfg_filename); cfg_filename);
TALER_EXCHANGEDB_unload_accounts ();
GNUNET_CONFIGURATION_destroy (cfg); GNUNET_CONFIGURATION_destroy (cfg);
GNUNET_free (cfg_filename); GNUNET_free (cfg_filename);