aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2017-02-08 07:58:46 +0100
committerChristian Grothoff <christian@grothoff.org>2017-02-08 07:58:46 +0100
commite9cdf641de26692025b622954e2d037686a7d880 (patch)
tree669232aa3d41c35f11b9e18038482f99057929b3
parentaca6003d42b51e46d0786613ff3bcddc3f5c51cc (diff)
ensure testcase terminates if wget is not installed or launching httpd failed
-rw-r--r--src/exchange-lib/test_exchange_api.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/exchange-lib/test_exchange_api.c b/src/exchange-lib/test_exchange_api.c
index 783bf51fb..5292da297 100644
--- a/src/exchange-lib/test_exchange_api.c
+++ b/src/exchange-lib/test_exchange_api.c
@@ -3065,6 +3065,7 @@ main (int argc,
struct GNUNET_SIGNAL_Context *shc_chld;
enum GNUNET_OS_ProcessStatusType type;
unsigned long code;
+ unsigned int iter;
/* These might get in the way... */
unsetenv ("XDG_DATA_HOME");
@@ -3122,7 +3123,7 @@ main (int argc,
(0 != code) )
{
fprintf (stderr,
- "Unexpected error running taler-exchange-dbinit!\n");
+ "Unexpected error running `taler-exchange-dbinit'!\n");
return 1;
}
exchanged = GNUNET_OS_start_process (GNUNET_NO,
@@ -3135,11 +3136,23 @@ main (int argc,
NULL);
/* give child time to start and bind against the socket */
fprintf (stderr,
- "Waiting for taler-exchange-httpd to be ready");
+ "Waiting for `taler-exchange-httpd' to be ready");
+ iter = 0;
do
{
+ if (10 == iter)
+ {
+ fprintf (stderr,
+ "Failed to launch `taler-exchange-httpd' (or `wget')\n");
+ GNUNET_OS_process_kill (exchanged,
+ SIGTERM);
+ GNUNET_OS_process_wait (exchanged);
+ GNUNET_OS_process_destroy (exchanged);
+ return 77;
+ }
fprintf (stderr, ".");
sleep (1);
+ iter++;
}
while (0 != system ("wget -q -t 1 -T 1 http://127.0.0.1:8081/keys -o /dev/null -O /dev/null"));
fprintf (stderr, "\n");