diff options
Diffstat (limited to 'src/exchange-lib/testing_api_loop.c')
-rw-r--r-- | src/exchange-lib/testing_api_loop.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/exchange-lib/testing_api_loop.c b/src/exchange-lib/testing_api_loop.c index 7efadb396..03485068f 100644 --- a/src/exchange-lib/testing_api_loop.c +++ b/src/exchange-lib/testing_api_loop.c @@ -57,11 +57,33 @@ TALER_TESTING_interpreter_lookup_command "Attempt to lookup command for empty label\n"); return NULL; } - for (unsigned int i=0;NULL != (cmd = &is->commands[i])->label;i++) + for (unsigned int i=0; + NULL != (cmd = &is->commands[i])->label; + i++) + { + /* Give precedence to top-level commands. */ if ( (NULL != cmd->label) && (0 == strcmp (cmd->label, label)) ) return cmd; + + if (GNUNET_YES == cmd->meta) + { + struct TALER_TESTING_Command *batch = cmd->cls; + + /* NOTE: the batch does need a "end" CMD in the + * last place. */ + for (unsigned int i=0; + NULL != (cmd = &batch[i])->label; + i++) + { + if ( (NULL != cmd->label) && + (0 == strcmp (cmd->label, + label)) ) + return cmd; + } + } + } GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Command not found: %s\n", label); |