summaryrefslogtreecommitdiff
path: root/src/testing/testing_api_helpers.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/testing/testing_api_helpers.c')
-rw-r--r--src/testing/testing_api_helpers.c161
1 files changed, 29 insertions, 132 deletions
diff --git a/src/testing/testing_api_helpers.c b/src/testing/testing_api_helpers.c
index ea7f2dea..dbc7a6eb 100644
--- a/src/testing/testing_api_helpers.c
+++ b/src/testing/testing_api_helpers.c
@@ -1,4 +1,3 @@
-
/*
This file is part of TALER
Copyright (C) 2014-2018 Taler Systems SA
@@ -22,153 +21,51 @@
* @file testing_api_helpers.c
* @brief helper functions for test library.
* @author Christian Grothoff
- * @author Marcello Stanisci
*/
-
#include "platform.h"
#include <taler/taler_exchange_service.h>
#include <taler/taler_testing_lib.h>
#include "taler_merchant_testing_lib.h"
-struct GNUNET_OS_Process *
-TALER_TESTING_run_merchant (const char *config_filename,
- const char *merchant_url)
-{
- struct GNUNET_OS_Process *merchant_proc;
- unsigned int iter;
- char *wget_cmd;
-
- merchant_proc
- = GNUNET_OS_start_process (GNUNET_OS_INHERIT_STD_ALL,
- NULL, NULL, NULL,
- "taler-merchant-httpd",
- "taler-merchant-httpd",
- "--log=INFO",
- "-c", config_filename,
- NULL);
- if (NULL == merchant_proc)
- MERCHANT_FAIL ();
-
- GNUNET_asprintf (&wget_cmd,
- "wget -q -t 1 -T 1"
- " --header='Authorization: ApiKey sandbox'"
- " %s"
- " -o /dev/null -O /dev/null",
- merchant_url);
-
- /* give child time to start and bind against the socket */
- fprintf (stderr,
- "Waiting for `taler-merchant-httpd' to be ready\n");
- iter = 0;
- do
- {
- if (10 == iter)
- {
- fprintf (stderr,
- "Failed to launch"
- " `taler-merchant-httpd' (or `wget')\n");
- GNUNET_OS_process_kill (merchant_proc,
- SIGTERM);
- GNUNET_OS_process_wait (merchant_proc);
- GNUNET_OS_process_destroy (merchant_proc);
- MERCHANT_FAIL ();
- }
- fprintf (stderr, ".\n");
- sleep (1);
- iter++;
- }
- while (0 != system (wget_cmd));
- GNUNET_free (wget_cmd);
- fprintf (stderr, "\n");
-
- return merchant_proc;
-}
-
-
char *
-TALER_TESTING_prepare_merchant (const char *config_filename)
+TALER_MERCHANT_TESTING_extract_host (const char *merchant_url)
{
- struct GNUNET_CONFIGURATION_Handle *cfg;
- unsigned long long port;
- struct GNUNET_OS_Process *dbinit_proc;
- enum GNUNET_OS_ProcessStatusType type;
- unsigned long code;
- char *base_url;
+ const char *hosts = strchr (merchant_url, '/');
+ const char *hend;
+ const char *pstr;
+ const char *pend;
+ char *host;
- cfg = GNUNET_CONFIGURATION_create ();
- if (GNUNET_OK !=
- GNUNET_CONFIGURATION_load (cfg,
- config_filename))
- MERCHANT_FAIL ();
- if (GNUNET_OK !=
- GNUNET_CONFIGURATION_get_value_number (cfg,
- "merchant",
- "PORT",
- &port))
+ if (NULL == hosts)
{
- GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
- "merchant",
- "PORT");
- GNUNET_CONFIGURATION_destroy (cfg);
- MERCHANT_FAIL ();
+ GNUNET_break (0);
+ return NULL;
}
-
- GNUNET_CONFIGURATION_destroy (cfg);
-
- if (GNUNET_OK !=
- GNUNET_NETWORK_test_port_free (IPPROTO_TCP,
- (uint16_t) port))
+ if (hosts[1] != '/')
{
- fprintf (stderr,
- "Required port %llu not available, skipping.\n",
- port);
- MERCHANT_FAIL ();
+ GNUNET_break (0);
+ return NULL;
}
-
- /* DB preparation */
- if (NULL == (dbinit_proc = GNUNET_OS_start_process (
- GNUNET_OS_INHERIT_STD_ALL,
- NULL, NULL, NULL,
- "taler-merchant-dbinit",
- "taler-merchant-dbinit",
- "-c", config_filename,
- "-r",
- NULL)))
+ hosts += 2;
+ pstr = strchr (hosts, ':');
+ if (NULL == pstr)
{
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Failed to run taler-merchant-dbinit. Check your PATH.\n");
- MERCHANT_FAIL ();
+ hend = &hosts[strlen (hosts)];
+ pstr = "80";
+ pend = &pstr[2];
}
-
- if (GNUNET_SYSERR ==
- GNUNET_OS_process_wait_status (dbinit_proc,
- &type,
- &code))
+ else
{
- GNUNET_OS_process_destroy (dbinit_proc);
- MERCHANT_FAIL ();
+ hend = pstr;
+ pstr++;
+ pend = strchr (pstr, '/');
}
- if ( (type == GNUNET_OS_PROCESS_EXITED) &&
- (0 != code) )
- {
- fprintf (stderr,
- "Failed to setup database\n");
- MERCHANT_FAIL ();
- }
- if ( (type != GNUNET_OS_PROCESS_EXITED) ||
- (0 != code) )
- {
- fprintf (stderr,
- "Unexpected error running"
- " `taler-merchant-dbinit'!\n");
- MERCHANT_FAIL ();
- }
- GNUNET_OS_process_destroy (dbinit_proc);
-
-
- GNUNET_asprintf (&base_url,
- "http://localhost:%llu/",
- port);
- return base_url;
+ GNUNET_asprintf (&host,
+ "%.*s:%.*s",
+ (int) (hend - hosts),
+ hosts,
+ (int) (pend - pstr),
+ pstr);
+ return host;
}