CI: simplify script tests

This commit is contained in:
Simon Duquennoy 2017-11-11 15:05:27 +01:00
parent 6cf4d62e90
commit 295a0c6d63
3 changed files with 24 additions and 31 deletions

View File

@ -11,48 +11,45 @@ IPADDR=$3
# Start simulation # Start simulation
echo "Starting Cooja simulation $BASENAME.csc" echo "Starting Cooja simulation $BASENAME.csc"
java -Xshare:on -jar $CONTIKI/tools/cooja/dist/cooja.jar -nogui=$BASENAME.csc -contiki=$CONTIKI > /dev/null & java -Xshare:on -jar $CONTIKI/tools/cooja/dist/cooja.jar -nogui=$BASENAME.csc -contiki=$CONTIKI > $BASENAME.coojalog &
JPID=$! JPID=$!
sleep 20 sleep 20
# Connect to the simlation # Connect to the simlation
echo "Starting tunslip6" echo "Starting tunslip6"
make -C $CONTIKI/tools tunslip6 make -C $CONTIKI/tools tunslip6
make -C $CONTIKI/examples/rpl-border-router/ connect-router-cooja TARGET=zoul > tunslip.log 2> tunslip.err & make -C $CONTIKI/examples/rpl-border-router/ connect-router-cooja TARGET=zoul >> $BASENAME.tunsliplog 2>&1 &
MPID=$! MPID=$!
echo "Waiting for network formation" echo "Waiting for network formation"
sleep 5 sleep 5
# Do ping # Do ping
echo "Pinging" echo "Pinging"
ping6 $IPADDR -c 5 | tee $BASENAME.log ping6 $IPADDR -c 5 | tee $BASENAME.scriptlog
# Fetch ping6 status code (not $? because this is piped) # Fetch ping6 status code (not $? because this is piped)
STATUS=${PIPESTATUS[0]} STATUS=${PIPESTATUS[0]}
echo "Closing simulation and tunslip6" echo "Closing simulation and tunslip6"
sleep 2 sleep 1
kill -9 $JPID kill -9 $JPID
kill -9 $MPID kill -9 $MPID
sleep 1
rm COOJA.testlog
rm COOJA.log
if [ $STATUS -eq 0 ] ; then if [ $STATUS -eq 0 ] ; then
mv $BASENAME.log $BASENAME.testlog echo "$BASENAME: TEST OK" | tee $BASENAME.testlog;
echo " OK"
else else
mv $BASENAME.log $BASENAME.faillog # Verbose output when using CI
if [ "$CI" = "true" ]; then
echo "==== $BASENAME.coojalog ====" ; cat $BASENAME.coojalog;
echo "==== $BASENAME.tunsliplog ====" ; cat $BASENAME.tunsliplog;
echo "==== $BASENAME.scriptlog ====" ; cat $BASENAME.scriptlog;
else
echo "==== Check $BASENAME.coojalog, $BASENAME.tunsliplog, and $BASENAME.scriptlog for details ====";
fi;
echo "" echo "$BASENAME: TEST FAIL ಠ_ಠ" | tee $BASENAME.testlog;
echo "---- COOJA.log"
cat COOJA.log
echo ""
echo "---- tunslip.log"
cat tunslip.log
echo ""
echo "---- tunslip.err"
cat tunslip.err
echo " FAIL ಠ_ಠ" | tee -a $BASENAME.faillog;
fi fi
# We do not want Make to stop -> Return 0 # We do not want Make to stop -> Return 0

View File

@ -25,8 +25,8 @@ sleep 2
sudo kill -9 $CPID sudo kill -9 $CPID
if [ $STATUS -eq 0 ] ; then if [ $STATUS -eq 0 ] ; then
mv $BASENAME.log $BASENAME.testlog cp $BASENAME.log $BASENAME.testlog
echo " OK" echo "$BASENAME: TEST OK" | tee -a $BASENAME.testlog;
else else
mv $BASENAME.log $BASENAME.faillog mv $BASENAME.log $BASENAME.faillog
@ -38,7 +38,8 @@ else
echo "---- node.err" echo "---- node.err"
cat node.err cat node.err
echo " FAIL ಠ_ಠ" | tee -a $BASENAME.faillog; cp $BASENAME.log $BASENAME.faillog
echo "$BASENAME: TEST FAIL ಠ_ಠ" | tee -a $BASENAME.testlog;
fi fi
# We do not want Make to stop -> Return 0 # We do not want Make to stop -> Return 0

View File

@ -1,20 +1,15 @@
TESTS=$(wildcard ??-*.sh) TESTS=$(wildcard ??-*.sh)
TESTLOGS=$(patsubst %.sh,%.testlog,$(TESTS)) TESTLOGS=$(patsubst %.sh,%.testlog,$(TESTS))
FAILLOGS=$(patsubst %.sh,%.faillog,$(TESTS))
CONTIKI=../.. CONTIKI=../..
tests: $(TESTLOGS) tests: $(TESTLOGS)
report: clean tests summary: clean tests
@echo | grep -s -e '' - $(TESTLOGS) $(FAILLOGS) > $@ || true
summary: report
ifeq ($(TESTS),) ifeq ($(TESTS),)
@echo No tests > $@ @echo No tests > $@
else else
@egrep -e ' OK| FAIL' $< > $@ @cat $(TESTLOGS) > $@
@ls -1 ??-*.faillog > /dev/null 2>&1; [ $$? = 0 ] && tail -v ??-*.log ??-*.faillog >> $@ || true
endif endif
all: cooja clean tests all: cooja clean tests
@ -23,7 +18,7 @@ all: cooja clean tests
@bash "$(basename $@).sh" "$(CONTIKI)" @bash "$(basename $@).sh" "$(CONTIKI)"
clean: clean:
@rm -f $(TESTLOGS) $(FAILLOGS) report summary @rm -f *.*log report summary
cooja: $(CONTIKI)/tools/cooja/dist/cooja.jar cooja: $(CONTIKI)/tools/cooja/dist/cooja.jar
$(CONTIKI)/tools/cooja/dist/cooja.jar: $(CONTIKI)/tools/cooja/dist/cooja.jar: