diff options
-rw-r--r-- | src/testing/testing_api_loop.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/testing/testing_api_loop.c b/src/testing/testing_api_loop.c index 7c3a7aaa9..5bfb7fe0e 100644 --- a/src/testing/testing_api_loop.c +++ b/src/testing/testing_api_loop.c @@ -68,20 +68,29 @@ TALER_TESTING_interpreter_lookup_command (struct TALER_TESTING_Interpreter *is, { #define BATCH_INDEX 1 struct TALER_TESTING_Command *batch; + struct TALER_TESTING_Command *current; + const struct TALER_TESTING_Command *match; + current = TALER_TESTING_cmd_batch_get_current (cmd); GNUNET_assert (GNUNET_OK == TALER_TESTING_get_trait_cmd (cmd, BATCH_INDEX, &batch)); + /* We must do the loop forward, but we can find the last match */ + match = NULL; for (unsigned int j = 0; NULL != (cmd = &batch[j])->label; j++) { + if (current == cmd) + break; /* do not go past current command */ if ( (NULL != cmd->label) && (0 == strcmp (cmd->label, label)) ) - return cmd; + match = cmd; } + if (NULL != match) + return match; } } GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |