aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcello Stanisci <stanisci.m@gmail.com>2018-05-04 15:46:07 +0200
committerMarcello Stanisci <stanisci.m@gmail.com>2018-05-04 15:46:07 +0200
commit40b27a82103c8596948b37ab5784f7e2b478b162 (patch)
tree09f5692734e84dd7f9b81089c0ee8cebedf87aca
parent5fda47780a400c52e7e98b8b5e9cd2fd90846229 (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.conf2
-rw-r--r--src/bank-lib/bank_twisted.conf2
-rw-r--r--src/bank-lib/test_bank_api_new.c2
-rw-r--r--src/bank-lib/test_bank_api_twisted.c8
-rw-r--r--src/bank-lib/testing_api_helpers.c67
-rw-r--r--src/include/taler_testing_bank_lib.h3
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