diff options
author | Jose Bollo <jose.bollo@iot.bzh> | 2018-07-12 10:59:48 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2018-07-24 16:28:32 +0200 |
commit | e17ae412245ba9afb33ff6a0f1f665b4d66d4da4 (patch) | |
tree | 698628c58b541007033ede6b4343dae921214da6 /coverage | |
parent | 4c0f6ce66c66d39dc61ec661d88277c51d2fd9ae (diff) |
coverage and test: Add tests
coverage values:
- lines: 70.5 %
- functions: 76.3 %
Change-Id: Iaf802e84bbfa57502bbbac8c3b567b14c01608b6
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'coverage')
-rw-r--r-- | coverage/.gitignore | 11 | ||||
-rw-r--r-- | coverage/Makefile | 7 | ||||
-rw-r--r-- | coverage/bin/Makefile | 122 | ||||
-rw-r--r-- | coverage/bin/bug.c | 270 | ||||
l--------- | coverage/bin/fake/monitoring | 1 | ||||
-rw-r--r-- | coverage/bin/loc.txt | 0 | ||||
-rw-r--r-- | coverage/bin/locales/en/loc.txt | 0 | ||||
-rw-r--r-- | coverage/bin/locales/fr-FR/loc.txt | 0 | ||||
-rw-r--r-- | coverage/bin/locales/fr/loc.txt | 0 | ||||
-rw-r--r-- | coverage/bin/locales/jp/loc.txt | 0 | ||||
l--------- | coverage/ldpath/weak/bug.so | 1 | ||||
l--------- | coverage/ldpath/weak/bugs | 1 | ||||
-rwxr-xr-x | coverage/scripts/00-trace.sh | 7 | ||||
-rwxr-xr-x | coverage/scripts/01-http.sh | 28 | ||||
-rwxr-xr-x | coverage/scripts/02-hello.sh | 44 | ||||
-rwxr-xr-x | coverage/scripts/03-auto-ws.sh (renamed from coverage/scripts/03-x-hello.sh) | 0 | ||||
-rwxr-xr-x | coverage/scripts/06-auto-so.sh | 35 | ||||
-rwxr-xr-x | coverage/scripts/run-test.sh | 65 |
18 files changed, 555 insertions, 37 deletions
diff --git a/coverage/.gitignore b/coverage/.gitignore index 43d04cb6..69f6ea4f 100644 --- a/coverage/.gitignore +++ b/coverage/.gitignore @@ -1,3 +1,14 @@ lcov-out.info report/ valgrind.out +bin/bugs +run-test.output +bin/afb-client +bin/afb-daemon-cov +bin/test-apiset +bin/test-session +bin/test-wrap-json +*.o +*.so +*.gcda +*.gcno diff --git a/coverage/Makefile b/coverage/Makefile index 3f5f3ce3..30477a70 100644 --- a/coverage/Makefile +++ b/coverage/Makefile @@ -14,7 +14,8 @@ clean: make -C bin -w clean cleanall: clean - rm -rf lcov-out.info report valgrind.out + @echo remove all outputs and reports + @rm -rf lcov-out.info report valgrind.out 2>/dev/null || true .PHONY: test @@ -22,14 +23,12 @@ test: binaries @echo ----------------------------------------- @echo -- BEGIN TEST @echo ----------------------------------------- - @scripts/run-test.sh + @scripts/run-test.sh 2>&1 | tee run-test.output @echo ----------------------------------------- @echo -- END TEST @echo ----------------------------------------- report: test - @echo generating LCOV report - @lcov -c -d bin -o lcov-out.info @echo generating report @genhtml -s -o report lcov-out.info @echo ready: xdg-open report/index.html diff --git a/coverage/bin/Makefile b/coverage/bin/Makefile index 19bf254a..f9d561ed 100644 --- a/coverage/bin/Makefile +++ b/coverage/bin/Makefile @@ -4,41 +4,102 @@ heredir = . basedir = ../.. -targets = afb-daemon-cov afb-client hi3.so hello.so salut.so salam.so shalom.so demat.so bug.so hellov2.so +bindings = \ + hi3.so \ + hello.so \ + salut.so \ + salam.so \ + shalom.so \ + demat.so \ + hellov2.so + +bugs = $(foreach i,\ + 1 2 3 4 5 6 7 8 9 \ + 10 11 12 13 14 15 16 17 18 19 \ + 20 21, \ + bugs/bug$i.so) + +tests = \ + test-apiset \ + test-session \ + test-wrap-json + +targets = \ + afb-daemon-cov \ + afb-client \ + $(tests) \ + $(bindings) \ + $(bugs) binaries: $(targets) clean: - @rm $(targets) *.gcno *.gcda + @echo remove all binaries + @rm $(targets) *.gcno *.gcda *.o 2>/dev/null || true #====================================================================================== -# creates the targets +# definitions #====================================================================================== incdir = $(basedir)/include srcdir = $(basedir)/src +tstdir = $(basedir)/src/tests samdir = $(basedir)/bindings/samples bindir = $(heredir)/bin -cflags = -I$(incdir) \ - $(shell pkg-config --cflags --libs openssl libmicrohttpd json-c libsystemd uuid) \ - -ldl -lrt -lpthread +deps = openssl libmicrohttpd json-c libsystemd uuid + +ccflags = \ + -g \ + -I$(incdir) \ + $(shell pkg-config --cflags $(deps)) + +ldflags = -ldl -lrt -lpthread \ + $(shell pkg-config --libs $(deps)) + +cflags = $(ccflags) $(ldflags) + +defs = -DAGL_DEVEL \ + -DWITH_MONITORING_OPTION \ + -DWITH_SUPERVISION \ + -DAFB_VERSION=\"cov\" \ + -DBINDING_INSTALL_DIR=\"$(shell pwd)/fake\" afb_lib_src = $(shell ls $(srcdir)/*.c | egrep -v '/afs-|/main-' ) -afb_clib_src = $(shell ls $(srcdir)/*.c | egrep -v '/afs-|/main-' ) +afb_lib_obj = $(patsubst $(srcdir)/%.c,%.o,$(afb_lib_src)) +afb_lib = afb-lib.a +afb_lib_defs = $(defs) + +afb_daemon_srcs = $(srcdir)/main-afb-daemon.c $(afb_lib_obj) +afb_daemon_defs = $(afb_lib_defs) -afb_daemon_srcs = $(srcdir)/main-afb-daemon.c $(afb_lib_src) -afb_daemon_defs = '-DAFB_VERSION="cov"' -DAGL_DEVEL -DWITH_MONITORING_OPTION '-DBINDING_INSTALL_DIR="fake"' +afb_client_srcs = $(srcdir)/main-afb-client-demo.c $(afb_lib_src) +afb_client_defs = $(defs) -afb_client_srcs = $(srcdir)/main-afb-client-demo.c $(afb_clib_src) -afb_client_defs = '-DAFB_VERSION="cov"' '-DBINDING_INSTALL_DIR="fake"' +tst_defs = $(defs) +tst_flags = $(cflags) \ + -I$(srcdir) \ + $(shell pkg-config --cflags --libs check) + +tst_defs = '-DAFB_VERSION="cov"' '-DBINDING_INSTALL_DIR="fake"' +tst_flags = $(cflags) \ + -I$(srcdir) \ + $(shell pkg-config --cflags --libs check) hello2_src = $(samdir)/hello2.c hello3_src = $(samdir)/hello3.c hi_src = $(samdir)/hi3.c binding_flags = -shared -fPIC -Wl,--version-script=$(samdir)/export.map +#====================================================================================== +# creates the targets +#====================================================================================== + +%.o: $(srcdir)/%.c + @echo creation of $@ + @gcc -c -o $@ $< --coverage $(afb_lib_defs) $(ccflags) + afb-daemon-cov: $(afb_daemon_srcs) @echo creation of $@ @gcc -o $@ $(afb_daemon_srcs) --coverage $(afb_daemon_defs) $(cflags) @@ -47,21 +108,41 @@ afb-client: $(afb_client_srcs) @echo creation of $@ @gcc -o $@ $(afb_client_srcs) $(afb_client_defs) $(cflags) +#====================================================================================== +# create test +#====================================================================================== + +test-apiset: $(tstdir)/apiset/test-apiset.c $(afb_lib_obj) + @echo creation of $@ + @gcc -o $@ $(tstdir)/apiset/test-apiset.c $(afb_lib_obj) --coverage $(tst_defs) $(tst_flags) + +test-session: $(tstdir)/session/test-session.c $(afb_lib_obj) + @echo creation of $@ + @gcc -o $@ $(tstdir)/session/test-session.c $(afb_lib_obj) --coverage $(tst_defs) $(tst_flags) + +test-wrap-json: $(tstdir)/session/test-session.c $(afb_lib_obj) + @echo creation of $@ + @gcc -o $@ $(tstdir)/wrap-json/test-wrap-json.c $(afb_lib_obj) --coverage $(tst_defs) $(tst_flags) + +#====================================================================================== +# create bindings +#====================================================================================== + hi3.so: $(hi3_src) @echo creation of $@ @gcc -o $@ $(hi3_src) $(binding_flags) $(cflags) hello.so: $(hello3_src) @echo creation of $@ - @gcc -o $@ $(hello3_src) '-DAPINAME="hello"' $(binding_flags) $(cflags) + @gcc -o $@ $(hello3_src) '-DAPINAME="hello"' '-DPREINIT_PROVIDE_CLASS="class1 class2"' $(binding_flags) $(cflags) salut.so: $(hello3_src) @echo creation of $@ - @gcc -o $@ $(hello3_src) '-DAPINAME="salut"' $(binding_flags) $(cflags) + @gcc -o $@ $(hello3_src) '-DAPINAME="salut"' '-DPREINIT_REQUIRE_CLASS="class2"' $(binding_flags) $(cflags) salam.so: $(hello3_src) @echo creation of $@ - @gcc -o $@ $(hello3_src) '-DAPINAME="salam"' $(binding_flags) $(cflags) + @gcc -o $@ $(hello3_src) '-DAPINAME="salam"' '-DINIT_REQUIRE_API="hello salut"' $(binding_flags) $(cflags) shalom.so: $(hello3_src) @echo creation of $@ @@ -75,7 +156,14 @@ hellov2.so: $(hello2_src) @echo creation of $@ @gcc -o $@ $(hello2_src) '-DAPINAME="hello-v2"' $(binding_flags) $(cflags) -bug.so: bug.c - @echo creation of $@ - @gcc -o $@ bug.c $(binding_flags) $(cflags) +#====================================================================================== +# create bugs +#====================================================================================== + +bugs: + @echo creation of directory bugs + @mkdir bugs +bugs/bug%.so: bug.c bugs + @echo creation of $@ + @gcc -o $@ bug.c $(binding_flags) $(cflags) -D$(patsubst bugs/bug%.so,BUG%,$@) diff --git a/coverage/bin/bug.c b/coverage/bin/bug.c index ddebdef7..62646cec 100644 --- a/coverage/bin/bug.c +++ b/coverage/bin/bug.c @@ -1,6 +1,276 @@ +#include <errno.h> +#include <stdint.h> +static int ok() +{ + return 0; +} +static int bug() +{ + errno = 0; + return ((int(*)())(intptr_t)0)(); +} +static int err() +{ + errno = EAGAIN; + return -1; +} +/**************************************************************************/ +/**************************************************************************/ +/*** BINDINGS V2 ***/ +/**************************************************************************/ +/**************************************************************************/ +#if defined(BUG1) /* incomplete exports: afbBindingV2data miss */ + +#define AFB_BINDING_VERSION 0 +#include <afb/afb-binding.h> +const struct afb_binding_v2 afbBindingV2; + +#endif +/**************************************************************************/ +#if defined(BUG2) /* incomplete exports: afbBindingV2 miss */ + +#define AFB_BINDING_VERSION 0 +#include <afb/afb-binding.h> +struct afb_binding_data_v2 afbBindingV2data; + +#endif +/**************************************************************************/ +#if defined(BUG3) /* zero filled structure */ + +#define AFB_BINDING_VERSION 0 +#include <afb/afb-binding.h> +const struct afb_binding_v2 afbBindingV2; +struct afb_binding_data_v2 afbBindingV2data; + +#endif +/**************************************************************************/ +#if defined(BUG4) /* no verb definition */ + +#define AFB_BINDING_VERSION 2 +#include <afb/afb-binding.h> + +const struct afb_binding_v2 afbBindingV2 = { + .api = "bug4", + .preinit = (void*)ok, + .init = (void*)ok +}; +#endif +/**************************************************************************/ +#if defined(BUG5) /* preinit buggy */ + +#define AFB_BINDING_VERSION 2 +#include <afb/afb-binding.h> + +struct afb_verb_v2 verbs[] = { + { NULL } +}; +const struct afb_binding_v2 afbBindingV2 = { + .api = "bug5", + .verbs = verbs, + .preinit = (void*)bug, + .init = (void*)ok +}; +#endif +/**************************************************************************/ +#if defined(BUG6) /* buggy init */ + +#define AFB_BINDING_VERSION 2 +#include <afb/afb-binding.h> + +struct afb_verb_v2 verbs[] = { + { NULL } +}; +const struct afb_binding_v2 afbBindingV2 = { + .api = "bug6", + .verbs = verbs, + .preinit = (void*)ok, + .init = (void*)bug +}; +#endif +/**************************************************************************/ +#if defined(BUG7) /* error in preinit */ + +#define AFB_BINDING_VERSION 2 +#include <afb/afb-binding.h> + +struct afb_verb_v2 verbs[] = { + { NULL } +}; +const struct afb_binding_v2 afbBindingV2 = { + .api = "bug7", + .verbs = verbs, + .preinit = (void*)err, + .init = (void*)ok +}; +#endif +/**************************************************************************/ +#if defined(BUG8) /* error in init */ + +#define AFB_BINDING_VERSION 2 +#include <afb/afb-binding.h> + +struct afb_verb_v2 verbs[] = { + { NULL } +}; +const struct afb_binding_v2 afbBindingV2 = { + .api = "bug8", + .verbs = verbs, + .preinit = (void*)ok, + .init = (void*)err +}; +#endif +/**************************************************************************/ +#if defined(BUG9) /* no api name */ + +#define AFB_BINDING_VERSION 2 +#include <afb/afb-binding.h> + +struct afb_verb_v2 verbs[] = { + { NULL } +}; +const struct afb_binding_v2 afbBindingV2 = { + .verbs = verbs, + .preinit = (void*)ok, + .init = (void*)ok +}; +#endif +/**************************************************************************/ +#if defined(BUG10) /* bad api name */ + +#define AFB_BINDING_VERSION 2 +#include <afb/afb-binding.h> + +struct afb_verb_v2 verbs[] = { + { NULL } +}; +const struct afb_binding_v2 afbBindingV2 = { + .api = "bug 10", + .verbs = verbs, + .preinit = (void*)ok, + .init = (void*)err +}; +#endif +/**************************************************************************/ +/**************************************************************************/ +/*** BINDINGS V3 ***/ +/**************************************************************************/ +/**************************************************************************/ +#if defined(BUG11) /* make a SEGV */ + #define AFB_BINDING_VERSION 3 #include <afb/afb-binding.h> int afbBindingEntry(afb_api_t api) { return ((int(*)())(intptr_t)0)(); } +#endif +/**************************************************************************/ +#if defined(BUG12) /* no afbBindingV3 nor afbBindingV3entry */ + +#define AFB_BINDING_VERSION 0 +#include <afb/afb-binding.h> +struct afb_api_x3 *afbBindingV3root; + +#endif +/**************************************************************************/ +#if defined(BUG13) /* no afbBindingV3root nor afbBindingV3entry */ + +#define AFB_BINDING_VERSION 0 +#include <afb/afb-binding.h> +const struct afb_binding_v3 afbBindingV3; +int afbBindingV3entry(struct afb_api_x3 *rootapi) { return 0; } + +#endif +/**************************************************************************/ +#if defined(BUG14) /* no api name */ + +#define AFB_BINDING_VERSION 3 +#include <afb/afb-binding.h> + +const struct afb_binding_v3 afbBindingV3; + +#endif +/**************************************************************************/ +#if defined(BUG15) /* bad api name */ + +#define AFB_BINDING_VERSION 3 +#include <afb/afb-binding.h> + +const struct afb_binding_v3 afbBindingV3 = { + .api = "bug 15" +}; + +#endif +/**************************************************************************/ +#if defined(BUG16) /* both entry and preinit */ + +#define AFB_BINDING_VERSION 3 +#include <afb/afb-binding.h> + +int afbBindingV3entry(struct afb_api_x3 *rootapi) { return 0; } +const struct afb_binding_v3 afbBindingV3 = { + .api = "bug16", + .preinit = afbBindingV3entry +}; + +#endif +/**************************************************************************/ +#if defined(BUG17) /* entry fails */ + +#define AFB_BINDING_VERSION 3 +#include <afb/afb-binding.h> + +int afbBindingV3entry(struct afb_api_x3 *rootapi) { errno = EAGAIN; return -1; } +#endif +/**************************************************************************/ +#if defined(BUG18) /* preinit fails */ + +#define AFB_BINDING_VERSION 3 +#include <afb/afb-binding.h> + +const struct afb_binding_v3 afbBindingV3 = { + .api = "bug18", + .preinit = (void*)err +}; + +#endif +/**************************************************************************/ +#if defined(BUG19) /* preinit SEGV */ + +#define AFB_BINDING_VERSION 3 +#include <afb/afb-binding.h> + +const struct afb_binding_v3 afbBindingV3 = { + .api = "bug19", + .preinit = (void*)bug +}; + +#endif +/**************************************************************************/ +#if defined(BUG20) /* init fails */ + +#define AFB_BINDING_VERSION 3 +#include <afb/afb-binding.h> + +const struct afb_binding_v3 afbBindingV3 = { + .api = "bug20", + .init = (void*)err +}; + +#endif +/**************************************************************************/ +#if defined(BUG21) /* init SEGV */ + +#define AFB_BINDING_VERSION 3 +#include <afb/afb-binding.h> + +const struct afb_binding_v3 afbBindingV3 = { + .api = "bug21", + .init = (void*)bug, + .provide_class = "a b c", + .require_class = "x y z", + .require_api = "bug4 bug5", +}; + +#endif +/**************************************************************************/ diff --git a/coverage/bin/fake/monitoring b/coverage/bin/fake/monitoring new file mode 120000 index 00000000..8cdac10f --- /dev/null +++ b/coverage/bin/fake/monitoring @@ -0,0 +1 @@ +../../../test/monitoring
\ No newline at end of file diff --git a/coverage/bin/loc.txt b/coverage/bin/loc.txt new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/coverage/bin/loc.txt diff --git a/coverage/bin/locales/en/loc.txt b/coverage/bin/locales/en/loc.txt new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/coverage/bin/locales/en/loc.txt diff --git a/coverage/bin/locales/fr-FR/loc.txt b/coverage/bin/locales/fr-FR/loc.txt new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/coverage/bin/locales/fr-FR/loc.txt diff --git a/coverage/bin/locales/fr/loc.txt b/coverage/bin/locales/fr/loc.txt new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/coverage/bin/locales/fr/loc.txt diff --git a/coverage/bin/locales/jp/loc.txt b/coverage/bin/locales/jp/loc.txt new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/coverage/bin/locales/jp/loc.txt diff --git a/coverage/ldpath/weak/bug.so b/coverage/ldpath/weak/bug.so deleted file mode 120000 index 01e7c27a..00000000 --- a/coverage/ldpath/weak/bug.so +++ /dev/null @@ -1 +0,0 @@ -sub/bug.so
\ No newline at end of file diff --git a/coverage/ldpath/weak/bugs b/coverage/ldpath/weak/bugs new file mode 120000 index 00000000..6ed8e22c --- /dev/null +++ b/coverage/ldpath/weak/bugs @@ -0,0 +1 @@ +../../bin/bugs
\ No newline at end of file diff --git a/coverage/scripts/00-trace.sh b/coverage/scripts/00-trace.sh index 34a19bb0..27edc5b1 100755 --- a/coverage/scripts/00-trace.sh +++ b/coverage/scripts/00-trace.sh @@ -1,4 +1,7 @@ #!/bin/sh -$R/bin/afb-client -k $WSURL monitor trace '{"add":{"api":"*","request":"*","event":"*","session":"*","global":"*"}}' & - +$R/bin/afb-client -k $WSURL <<EOC & +monitor trace {"add":{"tag":"fun","api":"*","request":"*","event":"*","session":"*","global":"*"}} +monitor trace {"add":{"tag":"T","api":"*","request":"*","event":"*","session":"*","global":"*"}} +monitor trace {"drop":{"tag":"fun"}} +EOC diff --git a/coverage/scripts/01-http.sh b/coverage/scripts/01-http.sh index 191318c0..9ffd640f 100755 --- a/coverage/scripts/01-http.sh +++ b/coverage/scripts/01-http.sh @@ -1,17 +1,29 @@ #!/bin/sh -curl $URL/index.html -curl $URL/marrus-orthocanna.jpg -curl $URL/test.js -curl $URL/icons/marrus-orthocanna.jpg +curl -s -o /dev/null $URL/index.html +curl -s -o /dev/null $URL/marrus-orthocanna.jpg +curl -s -o /dev/null $URL/test.js +curl -s -o /dev/null $URL/icons/marrus-orthocanna.jpg -curl $URL/fake-file.html +curl -s -o /dev/null $URL/fake-file.html -curl "$URL/api/salut/ping?arg1=null&arg1=%22a+string%22" -curl "$URL/api/hello/ping" \ +curl -s "$URL/api/salut/ping?arg1=null&arg1=%22a+string%22" +curl -s "$URL/api/hello/ping" \ -F image=@$R/www/marrus-orthocanna.jpg \ -F name=test -curl -X POST "$URL/api/hello/ping" \ +curl -s -X POST "$URL/api/hello/ping" \ --header 'content-type: application/json' \ --data-binary '[null,3,{"hello":false,"salut":4.5},true]' + +curl -s "$URL/api/hello/get?name=something&something=nothing" + +curl -s -F name=file -F file=@$R/www/marrus-orthocanna.jpg "$URL/api/hello/get" + +curl -s -X HEAD -o /dev/null $URL/index.html +#curl -s -X CONNECT -o /dev/null $URL/index.html +curl -s -X DELETE -o /dev/null $URL/index.html +curl -s -X OPTIONS -o /dev/null $URL/index.html +curl -s -X PATCH -o /dev/null $URL/index.html +curl -s -X PUT -o /dev/null $URL/index.html +curl -s -X TRACE -o /dev/null $URL/index.html diff --git a/coverage/scripts/02-hello.sh b/coverage/scripts/02-hello.sh index fe9040c2..9e3a9b08 100755 --- a/coverage/scripts/02-hello.sh +++ b/coverage/scripts/02-hello.sh @@ -48,5 +48,49 @@ hello setctx "some-text-2" hello getctx hello info hello verbose {"level":2,"message":"hello"} +hello eventloop +hello dbus false +hello dbus true +hello reply-count 0 +hello reply-count 2 +hello get null +hello get {"name":"toto"} +hello get {"name":"toto","toto":5} +hello ref null +hello rootdir null +hello eventadd {"tag":"EVENT","name":"EVENT"} +hello locale {"file":"loc.txt","lang":"ru,de,jp-JP,fr"} +hello locale "loc.txt" +hello locale "i don't exist" +hello api {"action":"create","api":"_extra_"} +hello api {"action":"addverb","api":"_extra_","verb":"ping"} +hello api {"action":"seal","api":"_extra_"} +hello api {"action":"addverb","api":"_extra_","verb":"ping"} +hello api {"action":"destroy","api":"_extra_"} +_extra_ ping2 {"a":true} +_extra_ ping3 {"b":false} +_extra_ ping {"c":[1,2,3]} +hello api {"action":"create","api":"extra"} +extra api {"action":"addverb","verb":"blablabla"} +extra api {"action":"addverb","verb":"ping"} +extra api {"action":"addverb","verb":"ping2"} +extra api {"action":"addverb","verb":"ping3"} +extra api {"action":"addverb","verb":"q*"} +extra api {"action":"delverb","verb":"blablabla"} +extra api {"action":"addhandler","pattern":"*","closure":"*"} +extra api {"action":"addhandler","pattern":"hello/*","closure":"hello/*"} +extra call {"api":"hello","verb":"eventsub","args":{"tag":"EVENT"}} +hello eventpush {"tag":"EVENT","data":[1,2,"hello"]} +hello api {"action":"delhandler","api":"extra","pattern":"hello/*"} +hello eventpush {"tag":"EVENT","data":[1,2,"hello"]} +extra ping2 {"a":true} +extra ping3 {"b":false} +extra ping {"c":[1,2,3]} +extra query {"c":[1,2,3]} +extra blablabla {"c":[1,2,3]} +extra api {"action":"addverb","verb":"ping"} +extra ping {"c":[1,2,3]} +hello api {"action":"destroy","api":"extra"} +extra ping {"c":[1,2,3]} EOC diff --git a/coverage/scripts/03-x-hello.sh b/coverage/scripts/03-auto-ws.sh index 9d3726e4..9d3726e4 100755 --- a/coverage/scripts/03-x-hello.sh +++ b/coverage/scripts/03-auto-ws.sh diff --git a/coverage/scripts/06-auto-so.sh b/coverage/scripts/06-auto-so.sh new file mode 100755 index 00000000..36214ee0 --- /dev/null +++ b/coverage/scripts/06-auto-so.sh @@ -0,0 +1,35 @@ +#!/bin/sh + +$R/bin/afb-client -s -e $WSURL <<EOC +salam ping true +x-HELLO PING false +salam pIngNull true +salam PingBug true +salam PiNgJsOn {"well":"formed","json":[1,2,3,4.5,true,false,null,"oups"]} +salam subcall {"api":"salam","verb":"pingjson","args":[{"key1":"value1"}]} +salam subcall {"api":"salam","verb":"subcall","args":{"api":"salam","verb":"pingjson","args":[{"key1":"value1"}]}} +salam subcallsync {"api":"salam","verb":"pingjson","args":[{"key1":"value1"}]} +salam subcallsync {"api":"salam","verb":"subcall","args":{"api":"salam","verb":"pingjson","args":[{"key1":"value1"}]}} +salam subcall {"api":"salam","verb":"subcallsync","args":{"api":"salam","verb":"pingjson","args":[{"key1":"value1"}]}} +salam subcallsync {"api":"salam","verb":"subcallsync","args":{"api":"salam","verb":"pingjson","args":[{"key1":"value1"}]}} +salam eventadd {"tag":"ev1","name":"event-A"} +salam eventadd {"tag":"ev2","name":"event-B"} +salam eventpush {"tag":"ev1","data":[1,2,"salam"]} +salam eventpush {"tag":"ev2","data":{"item":0}} +salam eventsub {"tag":"ev2"} +salam eventpush {"tag":"ev1","data":[1,2,"salam"]} +salam eventpush {"tag":"ev2","data":{"item":0}} +salam eventsub {"tag":"ev1"} +salam subcall {"api":"salam","verb":"eventpush","args":{"tag":"ev1","data":[1,2,"salam"]}} +salam subcall {"api":"salam","verb":"eventpush","args":{"tag":"ev2","data":{"item":0}}} +salam subcallsync {"api":"salam","verb":"eventpush","args":{"tag":"ev1","data":[1,2,"salam"]}} +salam subcallsync {"api":"salam","verb":"eventpush","args":{"tag":"ev2","data":{"item":0}}} +salam eventunsub {"tag":"ev2"} +salam eventpush {"tag":"ev1","data":[1,2,"salam"]} +salam eventpush {"tag":"ev2","data":{"item":0}} +salam eventdel {"tag":"ev1"} +salam eventpush {"tag":"ev1","data":[1,2,"salam"]} +salam eventpush {"tag":"ev2","data":{"item":0}} +salam eventdel {"tag":"ev2"} +EOC + diff --git a/coverage/scripts/run-test.sh b/coverage/scripts/run-test.sh index 34c2d303..bac4da5e 100755 --- a/coverage/scripts/run-test.sh +++ b/coverage/scripts/run-test.sh @@ -3,18 +3,72 @@ export R=$(realpath $(dirname $0)/..) export PATH="$R/bin:$R/scripts:$PATH" -$R/bin/afb-daemon-cov --help > /dev/null +cd $R/bin -$R/bin/afb-daemon-cov --version > /dev/null +lcov -c -i -d $R/bin -o $R/lcov-out.info -$R/bin/afb-daemon-cov --fake-option > /dev/null +mk() { + echo + echo "*******************************************************************" + echo "** $*" + echo "*******************************************************************" + lcov -c -i -d $R/bin -o $R/fake.info + "$@" + lcov -c -d $R/bin -o $R/tmp.info + mv $R/lcov-out.info $R/previous.info + lcov -a $R/tmp.info -a $R/previous.info -o $R/lcov-out.info + rm $R/previous.info $R/fake.info $R/tmp.info +} +mkdir /tmp/ldpaths +export AFB_LDPATHS=/tmp/ldpaths +export AFB_TRACEAPI=no + +########################################################## +# test to check options +########################################################## +mk $R/bin/afb-daemon-cov --help + +mk $R/bin/afb-daemon-cov --version + +mk $R/bin/afb-daemon-cov --no-httpd --fake-option + +mk $R/bin/afb-daemon-cov --daemon --session-max + +mk $R/bin/afb-daemon-cov --ws-client fake --session-max toto + +mk $R/bin/afb-daemon-cov --foreground --port -55 + +mk $R/bin/afb-daemon-cov --foreground --port 9999999 + +mk $R/bin/afb-daemon-cov --no-ldpath --traceapi fake + +mk $R/bin/afb-daemon-cov --traceditf all --tracesvc all --log error,alarm + +LISTEN_FDNAMES=toto,demat LISTEN_FDS=5 mk $R/bin/afb-daemon-cov --no-ldpath --binding $R/bin/demat.so --ws-server sd:demat --call "demat/exit:0" + +mk $R/bin/afb-daemon-cov --weak-ldpaths $R/ldpath/weak --binding $R/bin/demat.so --ws-server sd:demat --call "demat/exit:0" + +########################################################## +# test of the bench +########################################################## +mk $R/bin/test-apiset + +mk $R/bin/test-session + +mk $R/bin/test-wrap-json + +########################################################## +# true life test +########################################################## +mk \ valgrind \ --log-file=$R/valgrind.out \ --trace-children=no \ --track-fds=yes \ --leak-check=full \ - --show-leak-kinds=all \ + --show-leak-kinds=all \ + --num-callers=50 \ $R/bin/afb-daemon-cov \ --verbose \ --verbose \ @@ -29,6 +83,7 @@ $R/bin/afb-daemon-cov \ --log error,warning,notice,info,debug,critical,alert-error,warning,notice,info,debug,critical,alert+error,warning,notice,info,debug,critical,alert \ --foreground \ --name binder-cov \ + --port 8888 \ --roothttp $R/www \ --rootbase /opx \ --rootapi /api \ @@ -41,7 +96,6 @@ $R/bin/afb-daemon-cov \ --rootdir . \ --ldpaths $R/ldpath/strong \ --binding $R/bin/demat.so \ - --weak-ldpaths $R/ldpath/weak \ --auto-api $R/apis/auto \ --token HELLO \ --random-token \ @@ -50,6 +104,7 @@ $R/bin/afb-daemon-cov \ --traceapi all \ --traceses all \ --traceevt all \ + --monitoring \ --call demat/ping:true \ --ws-server unix:$R/apis/ws/hello \ --ws-server unix:$R/apis/ws/salut \ |