diff options
author | Marcello Stanisci <stanisci.m@gmail.com> | 2018-05-04 15:46:07 +0200 |
---|---|---|
committer | Marcello Stanisci <stanisci.m@gmail.com> | 2018-05-04 15:46:07 +0200 |
commit | 40b27a82103c8596948b37ab5784f7e2b478b162 (patch) | |
tree | 09f5692734e84dd7f9b81089c0ee8cebedf87aca | |
parent | 5fda47780a400c52e7e98b8b5e9cd2fd90846229 (diff) |
Tests flexibility.
It is now possible to launch the bank from
the testing-lib regardless of it being served
via HTTP or UWSGI.
-rw-r--r-- | src/bank-lib/bank.conf | 2 | ||||
-rw-r--r-- | src/bank-lib/bank_twisted.conf | 2 | ||||
-rw-r--r-- | src/bank-lib/test_bank_api_new.c | 2 | ||||
-rw-r--r-- | src/bank-lib/test_bank_api_twisted.c | 8 | ||||
-rw-r--r-- | src/bank-lib/testing_api_helpers.c | 67 | ||||
-rw-r--r-- | src/include/taler_testing_bank_lib.h | 3 |
6 files changed, 73 insertions, 11 deletions
diff --git a/src/bank-lib/bank.conf b/src/bank-lib/bank.conf index 9befeba9e..906b95fc5 100644 --- a/src/bank-lib/bank.conf +++ b/src/bank-lib/bank.conf @@ -5,7 +5,9 @@ currency = KUDOS URL = payto://x-taler-bank/localhost:8081/1 [bank] +SERVE = http HTTP_PORT = 8081 +DATABASE = postgres:///talercheck [exchange-wire-test] bank_url = http://localhost:8081/ diff --git a/src/bank-lib/bank_twisted.conf b/src/bank-lib/bank_twisted.conf index d20e10948..ab006b913 100644 --- a/src/bank-lib/bank_twisted.conf +++ b/src/bank-lib/bank_twisted.conf @@ -27,7 +27,9 @@ UNIX_MATCH_GID = YES currency = KUDOS [bank] +serve = http http_port = 8081 +database = postgres:///talercheck [account-1] URL = payto://x-taler-bank/localhost:8081/1 diff --git a/src/bank-lib/test_bank_api_new.c b/src/bank-lib/test_bank_api_new.c index eade78069..513b4aa81 100644 --- a/src/bank-lib/test_bank_api_new.c +++ b/src/bank-lib/test_bank_api_new.c @@ -164,7 +164,7 @@ main(int argc, return 77; if (NULL == (bankd = - TALER_TESTING_run_bank (CONFIG_FILE))) + TALER_TESTING_run_bank (CONFIG_FILE, bank_url))) return 77; ret = TALER_TESTING_setup (&run, diff --git a/src/bank-lib/test_bank_api_twisted.c b/src/bank-lib/test_bank_api_twisted.c index b11ccfd86..55064b25a 100644 --- a/src/bank-lib/test_bank_api_twisted.c +++ b/src/bank-lib/test_bank_api_twisted.c @@ -85,7 +85,7 @@ run (void *cls, struct TALER_TESTING_Command commands[] = { TALER_TESTING_cmd_bank_history ("history-0", - bank_url, + twister_url, EXCHANGE_ACCOUNT_NUMBER, TALER_BANK_DIRECTION_BOTH, NULL, @@ -124,10 +124,12 @@ main (int argc, GNUNET_log_setup ("test-bank-api-twisted", "DEBUG", NULL); - if (NULL == (bank_url = TALER_TESTING_prepare_bank (CONFIG_FILE))) + if (NULL == (bank_url = TALER_TESTING_prepare_bank + (CONFIG_FILE))) return 77; - if (NULL == (bankd = TALER_TESTING_run_bank (CONFIG_FILE))) + if (NULL == (bankd = TALER_TESTING_run_bank + (CONFIG_FILE, bank_url))) return 77; if (NULL == (twister_url = TALER_TESTING_prepare_twister diff --git a/src/bank-lib/testing_api_helpers.c b/src/bank-lib/testing_api_helpers.c index 99b0e8c7c..d890ea4eb 100644 --- a/src/bank-lib/testing_api_helpers.c +++ b/src/bank-lib/testing_api_helpers.c @@ -57,11 +57,63 @@ struct TALER_BANK_AuthenticationData AUTHS[] = { * be started. */ struct GNUNET_OS_Process * -TALER_TESTING_run_bank (const char *config_filename) +TALER_TESTING_run_bank (const char *config_filename, + const char *bank_url) { + /* to fetch: dbname+serving_method+base_url */ + + struct GNUNET_OS_Process *bank_proc; unsigned int iter; + char *wget_cmd; + char *database; + char *serve_cfg; + char *serve_arg; + struct GNUNET_CONFIGURATION_Handle *cfg; + + + cfg = GNUNET_CONFIGURATION_create (); + if (GNUNET_OK != + GNUNET_CONFIGURATION_load (cfg, + config_filename)) + { + GNUNET_break (0); + GNUNET_CONFIGURATION_destroy (cfg); + exit (77); + } + + if (GNUNET_OK != + GNUNET_CONFIGURATION_get_value_string (cfg, + "bank", + "database", + &database)) + { + GNUNET_log_config_missing (GNUNET_ERROR_TYPE_WARNING, + "bank", + "database"); + GNUNET_break (0); + GNUNET_CONFIGURATION_destroy (cfg); + exit (77); + } + + if (GNUNET_OK != + GNUNET_CONFIGURATION_get_value_string (cfg, + "bank", + "serve", + &serve_cfg)) + { + GNUNET_log_config_missing (GNUNET_ERROR_TYPE_WARNING, + "bank", + "serve"); + GNUNET_break (0); + GNUNET_CONFIGURATION_destroy (cfg); + exit (77); + } + + serve_arg = "serve-http"; + if (0 != strcmp ("http", serve_cfg)) + serve_arg = "serve-uwsgi"; bank_proc = GNUNET_OS_start_process (GNUNET_NO, @@ -70,11 +122,16 @@ TALER_TESTING_run_bank (const char *config_filename) "taler-bank-manage", "taler-bank-manage", "-c", config_filename, - "--with-db=postgres:///talercheck", - "serve-http", NULL); + "--with-db", database, + serve_arg, NULL); if (NULL == bank_proc) BANK_FAIL (); + GNUNET_asprintf (&wget_cmd, + "wget -q -t 1 -T 1 %s" + " -o /dev/null -O /dev/null", + bank_url); + /* give child time to start and bind against the socket */ fprintf (stderr, "Waiting for `taler-bank-manage' to be ready"); @@ -96,9 +153,7 @@ TALER_TESTING_run_bank (const char *config_filename) sleep (1); iter++; } - /*FIXME: no hardcode port*/ - while (0 != system ("wget -q -t 1 -T 1 http://127.0.0.1:8081/" \ - " -o /dev/null -O /dev/null")); + while (0 != system (wget_cmd)); fprintf (stderr, "\n"); return bank_proc; diff --git a/src/include/taler_testing_bank_lib.h b/src/include/taler_testing_bank_lib.h index 87187a733..1461d7acc 100644 --- a/src/include/taler_testing_bank_lib.h +++ b/src/include/taler_testing_bank_lib.h @@ -62,7 +62,8 @@ * be started. */ struct GNUNET_OS_Process * -TALER_TESTING_run_bank (const char *config_filename); +TALER_TESTING_run_bank (const char *config_filename, + const char *bank_url); /** * Prepare the bank execution. Check if the port is available |