diff options
| author | Christian Grothoff <christian@grothoff.org> | 2018-01-21 20:10:05 +0100 | 
|---|---|---|
| committer | Christian Grothoff <christian@grothoff.org> | 2018-01-21 20:10:05 +0100 | 
| commit | de092c2c2b4184e5276923a92e19a859c1cc07aa (patch) | |
| tree | 562052b9a7aff8093d7aade8c8ef6e65bb5474e7 /src/exchange-lib | |
| parent | 652bb0f9c4d9527c409db6a99a7e550c57328adf (diff) | |
make fakebank_url more robust
Diffstat (limited to 'src/exchange-lib')
| -rw-r--r-- | src/exchange-lib/test_exchange_api_new.c | 40 | ||||
| -rw-r--r-- | src/exchange-lib/testing_api_helpers.c | 43 | 
2 files changed, 61 insertions, 22 deletions
| diff --git a/src/exchange-lib/test_exchange_api_new.c b/src/exchange-lib/test_exchange_api_new.c index 077115a2..32e1ad37 100644 --- a/src/exchange-lib/test_exchange_api_new.c +++ b/src/exchange-lib/test_exchange_api_new.c @@ -30,16 +30,17 @@  #include "taler_fakebank_lib.h"  #include "taler_testing_lib.h" -  /** - * Is the configuration file is set to include wire format 'test'? + * Configuration file we use.  One (big) configuration is used + * for the various components for this test.   */ -#define WIRE_TEST 1 +#define CONFIG_FILE "test_exchange_api.conf"  /** - * Is the configuration file is set to include wire format 'sepa'? + * URL of the fakebank.  Obtained from CONFIG_FILE's "exchange-wire-test:BANK_URI" option.   */ -#define WIRE_SEPA 1 +static char *fakebank_url; +  /**   * Account number of the exchange at the bank. @@ -52,41 +53,37 @@  #define USER_ACCOUNT_NO 42  /** - * + * User name. Never checked by fakebank.   */  #define USER_LOGIN_NAME "user42"  /** - * + * User password. Never checked by fakebank.   */  #define USER_LOGIN_PASS "pass42"  /** + * Execute the taler-exchange-wirewatch command with + * our configuration file.   * - */ -#define FAKEBANK_URL "http://localhost:8082/" - -/** - * - */ -#define CONFIG_FILE "test_exchange_api.conf" - -/** - * + * @param label label to use for the command.   */  #define CMD_EXEC_WIREWATCH(label) \     TALER_TESTING_cmd_exec_wirewatch (label, CONFIG_FILE)  /** + * Run wire transfer of funds from some user's account to the + * exchange.   * + * @param label label to use for the command. + * @param amount amount to transfer, i.e. "EUR:1"   */  #define CMD_TRANSFER_TO_EXCHANGE(label,amount) \     TALER_TESTING_cmd_fakebank_transfer (label, amount, \ -     FAKEBANK_URL, USER_ACCOUNT_NO, EXCHANGE_ACCOUNT_NO, \ +     fakebank_url, USER_ACCOUNT_NO, EXCHANGE_ACCOUNT_NO, \       USER_LOGIN_NAME, USER_LOGIN_PASS) -  /**   * Main function that will tell the interpreter what commands to run.   * @@ -105,7 +102,7 @@ run (void *cls,    TALER_TESTING_run_with_fakebank (is,                                     commands, -                                   FAKEBANK_URL); +                                   fakebank_url);  } @@ -119,8 +116,7 @@ main (int argc,    GNUNET_log_setup ("test-exchange-api-new",                      "INFO",                      NULL); -  if (GNUNET_OK != -      TALER_TESTING_url_port_free (FAKEBANK_URL)) +  if (NULL == (fakebank_url = TALER_TESTING_prepare_fakebank (CONFIG_FILE)))      return 77;    TALER_TESTING_cleanup_files (CONFIG_FILE);    switch (TALER_TESTING_prepare_exchange (CONFIG_FILE)) diff --git a/src/exchange-lib/testing_api_helpers.c b/src/exchange-lib/testing_api_helpers.c index fd3d2ddf..2d1e866f 100644 --- a/src/exchange-lib/testing_api_helpers.c +++ b/src/exchange-lib/testing_api_helpers.c @@ -95,6 +95,7 @@ TALER_TESTING_prepare_exchange (const char *config_filename)      GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,                                 "exchange",                                 "PORT"); +    GNUNET_CONFIGURATION_destroy (cfg);      return GNUNET_NO;    }    GNUNET_CONFIGURATION_destroy (cfg); @@ -324,4 +325,46 @@ TALER_TESTING_url_port_free (const char *url)    return GNUNET_OK;  } + +/** + * Prepare launching a fakebank.  Check that the configuration + * file has the right option, and that the port is avaiable. + * If everything is OK, return the configured URL of the fakebank. + * + * @param config_filename configuration file to use + * @return NULL on error, fakebank URL otherwise + */ +char * +TALER_TESTING_prepare_fakebank (const char *config_filename) +{ +  struct GNUNET_CONFIGURATION_Handle *cfg; +  char *fakebank_url; + +  cfg = GNUNET_CONFIGURATION_create (); +  if (GNUNET_OK != +      GNUNET_CONFIGURATION_load (cfg, +                                 config_filename)) +    return NULL; +  if (GNUNET_OK != +      GNUNET_CONFIGURATION_get_value_string (cfg, +                                             "exchange-wire-test", +                                             "BANK_URI", +                                             &fakebank_url)) +  { +    GNUNET_log_config_missing (GNUNET_ERROR_TYPE_WARNING, +                               "exchange-wire-test", +                               "BANK_URI"); +    GNUNET_CONFIGURATION_destroy (cfg); +    return NULL; +  } +  GNUNET_CONFIGURATION_destroy (cfg); +  if (GNUNET_OK != +      TALER_TESTING_url_port_free (fakebank_url)) +  { +    GNUNET_free (fakebank_url); +    return NULL; +  } +  return fakebank_url; +} +  /* end of testing_api_helpers.c */ | 
