-#!/bin/sh
+#!/bin/bash
export R=$(realpath $(dirname $0)/..)
export PATH="$R/bin:$R/scripts:$PATH"
lcov -c -i -d $R/bin -o $R/lcov-out.info
-mk() {
+vg() {
+ if [[ -z "$NOVALGRIND" ]]; then
+ valgrind "$@"
+ else
+ while :; do
+ case "$1" in
+ --*) shift;;
+ *) break;;
+ esac
+ done
+ "$@"
+ fi
+}
+
+mkbefore() {
echo
echo "*******************************************************************"
echo "** $*"
echo "*******************************************************************"
lcov -c -i -d $R/bin -o $R/fake.info
- "$@"
+}
+
+mkafter() {
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
}
+mk() {
+ mkbefore "$@"
+ "$@"
+ mkafter "$@"
+}
+
+mkdbgwait() {
+ mkbefore "$@"
+ "$@" &
+ sleep 1
+ kill -INT %%
+ sleep 1
+ mkafter "$@"
+}
+
mkdir /tmp/ldpaths
export AFB_LDPATHS=/tmp/ldpaths
export AFB_TRACEAPI=no
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 --call noapi/noverb:false
+
+mk $R/bin/afb-daemon-cov --call not-a-call
+
+LISTEN_FDNAMES=toto,demat LISTEN_FDS=5
+typeset -x LISTEN_FDNAMES LISTEN_FDS
+mk $R/bin/afb-daemon-cov --no-ldpath --binding $R/bin/demat.so --ws-server sd:demat --call "demat/exit:0"
+typeset +x LISTEN_FDNAMES LISTEN_FDS
mk $R/bin/afb-daemon-cov --weak-ldpaths $R/ldpath/weak --binding $R/bin/demat.so --ws-server sd:demat --call "demat/exit:0"
+AFB_DEBUG_BREAK=zero,one,two,main-start AFB_DEBUG_WAIT="here I am,main-args"
+typeset -x AFB_DEBUG_BREAK AFB_DEBUG_WAIT
+mkdbgwait $R/bin/afb-daemon-cov --rootdir $R/i-will-never-exist
+typeset +x AFB_DEBUG_BREAK AFB_DEBUG_WAIT
+
+mk $R/bin/afb-daemon-cov --workdir=/etc/you/should/not/be/able/to/create/me
+
+mk $R/bin/afb-daemon-cov --exec $R/it-doesn-t-exist
+
##########################################################
# test of the bench
##########################################################
mk $R/bin/test-wrap-json
##########################################################
-# true life test
+# true life test: run parts as direct client
##########################################################
mk \
-valgrind \
+vg \
--log-file=$R/valgrind.out \
--trace-children=no \
--track-fds=yes \
--name binder-cov \
--port 8888 \
--roothttp $R/www \
- --rootbase /opx \
+ --rootbase /opa \
--rootapi /api \
--alias /icons:$R/www \
--apitimeout 90 \
--traceapi all \
--traceses all \
--traceevt all \
+ --traceglob none \
--monitoring \
+ --set hello/key:a-kind-of-text \
--call demat/ping:true \
+ --call hello/ping:false \
--ws-server unix:$R/apis/ws/hello \
--ws-server unix:$R/apis/ws/salut \
--exec $R/scripts/run-parts.sh @p @t
+##########################################################
+# true life test: run parts as in-direct client
+##########################################################
+mk \
+vg \
+ --log-file=$R/valgrind.out \
+ --trace-children=no \
+ --track-fds=yes \
+ --leak-check=full \
+ --show-leak-kinds=all \
+ --num-callers=50 \
+$R/bin/afb-daemon-cov \
+ --quiet \
+ --quiet \
+ --foreground \
+ --roothttp $R/www \
+ --alias /icons:$R/www \
+ --workdir . \
+ --uploaddir . \
+ --rootdir . \
+ --ldpaths $R/ldpath/strong \
+ --binding $R/bin/demat.so \
+ --auto-api $R/apis/auto \
+ --random-token \
+ --ws-server unix:$R/apis/ws/hello \
+ --ws-server unix:$R/apis/ws/salut \
+ --ws-server localhost:9595/salut \
+ --exec \
+ $R/bin/afb-daemon-nocov \
+ --auto-api $R/apis/auto \
+ --auto-api $R/apis/ws \
+ --ws-client localhost:@p/salut2 \
+ $R/scripts/run-parts.sh @@p @@t
+
exit 0
+