aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/taler-exchange-wirewatch.13
-rw-r--r--src/exchange/taler-exchange-wirewatch.c16
-rw-r--r--src/exchange/test_taler_exchange_wirewatch.c1
3 files changed, 20 insertions, 0 deletions
diff --git a/doc/taler-exchange-wirewatch.1 b/doc/taler-exchange-wirewatch.1
index 72006e6d2..41a4afacd 100644
--- a/doc/taler-exchange-wirewatch.1
+++ b/doc/taler-exchange-wirewatch.1
@@ -19,6 +19,9 @@ Use the specified wire plugin and its configuration to talk to the bank.
.IP "\-h, \-\-help"
Print short help on options.
.B
+.IP "\-T, \-\-test"
+Run in test mode and exit when idle.
+.B
.IP "\-v, \-\-version"
Print version information.
.B
diff --git a/src/exchange/taler-exchange-wirewatch.c b/src/exchange/taler-exchange-wirewatch.c
index a3009219b..0a7923a11 100644
--- a/src/exchange/taler-exchange-wirewatch.c
+++ b/src/exchange/taler-exchange-wirewatch.c
@@ -95,6 +95,11 @@ static char *type;
static int delay;
/**
+ * Are we run in testing mode and should only do one pass?
+ */
+static int test_mode;
+
+/**
* Next task to run, if any.
*/
static struct GNUNET_SCHEDULER_Task *task;
@@ -234,6 +239,12 @@ history_cb (void *cls,
start_off = last_row_off;
start_off_size = last_row_off_size;
}
+ if ( (GNUNET_YES == delay) &&
+ (test_mode) )
+ {
+ GNUNET_SCHEDULER_shutdown ();
+ return GNUNET_OK;
+ }
if (GNUNET_YES == delay)
task = GNUNET_SCHEDULER_add_delayed (DELAY,
&find_transfers,
@@ -289,6 +300,7 @@ find_transfers (void *cls)
struct TALER_EXCHANGEDB_Session *session;
int ret;
+ task = NULL;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Checking for incoming wire transfers\n");
@@ -389,6 +401,10 @@ main (int argc,
"PLUGINNAME",
"which wire plugin to use",
&type),
+ GNUNET_GETOPT_option_flag ('T',
+ "test",
+ "run in test mode and exit when idle",
+ &test_mode),
GNUNET_GETOPT_OPTION_END
};
diff --git a/src/exchange/test_taler_exchange_wirewatch.c b/src/exchange/test_taler_exchange_wirewatch.c
index 2b13cf8dd..cf3cd49a0 100644
--- a/src/exchange/test_taler_exchange_wirewatch.c
+++ b/src/exchange/test_taler_exchange_wirewatch.c
@@ -486,6 +486,7 @@ interpreter (void *cls)
"taler-exchange-wirewatch",
"-c", config_filename,
"-t", "test",
+ "-T", /* run in test mode, exit instead of looping */
NULL);
if (NULL == cmd->details.wirewatch.wirewatch_proc)
{