diff --git a/src/bank-lib/testing_api_helpers.c b/src/bank-lib/testing_api_helpers.c index db813df2a..a047c2a71 100644 --- a/src/bank-lib/testing_api_helpers.c +++ b/src/bank-lib/testing_api_helpers.c @@ -26,6 +26,7 @@ #include "platform.h" #include #include "taler_testing_bank_lib.h" +#include "taler_fakebank_lib.h" /* Keep each bank account credentials at index: * bank account number - 1 */ @@ -47,6 +48,41 @@ struct TALER_BANK_AuthenticationData AUTHS[] = { .details.basic.password = USER_PASSWORD } }; + +/** + * Runs the Fakebank by guessing / extracting the portnumber + * from the base URL. + * + * @param bank_url bank's base URL. + * @return the fakebank process handle, or NULL if any + * error occurs. + */ +struct TALER_FAKEBANK_Handle * +TALER_TESTING_run_fakebank (const char *bank_url) +{ + const char *port; + long pnum; + struct TALER_FAKEBANK_Handle *fakebankd; + + port = strrchr (bank_url, + (unsigned char) ':'); + if (NULL == port) + pnum = 80; + else + pnum = strtol (port + 1, NULL, 10); + GNUNET_log (GNUNET_ERROR_TYPE_INFO, + "Starting Fakebank on port %u (%s)\n", + (unsigned int) pnum, + bank_url); + fakebankd = TALER_FAKEBANK_start ((uint16_t) pnum); + if (NULL == fakebankd) + { + GNUNET_break (0); + return NULL; + } + return fakebankd; +} + /** * Start the (Python) bank process. Assume the port * is available and the database is clean. Use the "prepare diff --git a/src/include/taler_testing_bank_lib.h b/src/include/taler_testing_bank_lib.h index 9948a7f2d..f72b804cd 100644 --- a/src/include/taler_testing_bank_lib.h +++ b/src/include/taler_testing_bank_lib.h @@ -67,6 +67,17 @@ struct GNUNET_OS_Process * TALER_TESTING_run_bank (const char *config_filename, const char *bank_url); +/** + * Runs the Fakebank by guessing / extracting the portnumber + * from the base URL. + * + * @param bank_url bank's base URL. + * @return the fakebank process handle, or NULL if any + * error occurs. + */ +struct TALER_FAKEBANK_Handle * +TALER_TESTING_run_fakebank (const char *bank_url); + /** * Prepare the bank execution. Check if the port is available * and reset database.