Browse Source
We mark the test as xfail() as it exposes that libplugin's PLUGIN_RESTARTABLE was not taken into account !travis-debug
committed by
Rusty Russell
4 changed files with 96 additions and 0 deletions
@ -0,0 +1,18 @@ |
|||||
|
PLUGIN_TESTLIBPLUGIN_SRC := tests/plugins/test_libplugin.c |
||||
|
PLUGIN_TESTLIBPLUGIN_OBJS := $(PLUGIN_TESTLIBPLUGIN_SRC:.c=.o) |
||||
|
|
||||
|
tests/plugins/test_libplugin: bitcoin/chainparams.o $(PLUGIN_TESTLIBPLUGIN_OBJS) $(PLUGIN_LIB_OBJS) $(PLUGIN_COMMON_OBJS) $(JSMN_OBJS) $(CCAN_OBJS) |
||||
|
|
||||
|
$(PLUGIN_TESTLIBPLUGIN_OBJS): $(PLUGIN_LIB_HEADER) |
||||
|
|
||||
|
# Make sure these depend on everything.
|
||||
|
ALL_PROGRAMS += tests/plugins/test_libplugin |
||||
|
ALL_OBJS += $(PLUGIN_TESTLIBPLUGIN_OBJS) |
||||
|
|
||||
|
check-source: $(PLUGIN_TESTLIBPLUGIN_SRC:%=check-src-include-order/%) |
||||
|
check-whitespace: $(PLUGIN_TESTLIBPLUGIN_SRC:%=check-whitespace/%) |
||||
|
|
||||
|
clean: test-plugin-clean |
||||
|
|
||||
|
test-plugin-clean: |
||||
|
$(RM) $(PLUGIN_TESTLIBPLUGIN_OBJS) |
@ -0,0 +1,52 @@ |
|||||
|
#include <ccan/array_size/array_size.h> |
||||
|
#include <plugins/libplugin.h> |
||||
|
|
||||
|
|
||||
|
const char *name_option; |
||||
|
|
||||
|
|
||||
|
static struct command_result *json_helloworld(struct command *cmd, |
||||
|
const char *buf, |
||||
|
const jsmntok_t *params) |
||||
|
{ |
||||
|
const char *name; |
||||
|
|
||||
|
if (!param(cmd, buf, params, |
||||
|
p_opt("name", param_string, &name), |
||||
|
NULL)) |
||||
|
return command_param_failed(); |
||||
|
|
||||
|
if (!name) |
||||
|
name = name_option ? name_option : tal_strdup(tmpctx, "world"); |
||||
|
|
||||
|
return command_success_str(cmd, tal_fmt(tmpctx, "hello %s", name)); |
||||
|
} |
||||
|
|
||||
|
static void init(struct plugin *p, |
||||
|
const char *buf UNUSED, const jsmntok_t *config UNUSED) |
||||
|
{ |
||||
|
plugin_log(p, LOG_DBG, "test_libplugin initialised!"); |
||||
|
} |
||||
|
|
||||
|
static const struct plugin_command commands[] = { { |
||||
|
"helloworld", |
||||
|
"utils", |
||||
|
"Say hello to the world.", |
||||
|
"Returns 'hello world' by default, 'hello {name}' if the name" |
||||
|
" option was set, and 'hello {name}' if the name parameter " |
||||
|
"was passed (takes over the option)", |
||||
|
json_helloworld, |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
int main(int argc, char *argv[]) |
||||
|
{ |
||||
|
setup_locale(); |
||||
|
plugin_main(argv, init, PLUGIN_RESTARTABLE, commands, ARRAY_SIZE(commands), |
||||
|
NULL, 0, NULL, 0, |
||||
|
plugin_option("name", |
||||
|
"string", |
||||
|
"Who to say hello to.", |
||||
|
charp_option, &name_option), |
||||
|
NULL); |
||||
|
} |
Loading…
Reference in new issue