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
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=$!
sleep 20
# Connect to the simlation
echo "Starting 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=$!
echo "Waiting for network formation"
sleep 5
# Do ping
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)
STATUS=${PIPESTATUS[0]}
echo "Closing simulation and tunslip6"
sleep 2
sleep 1
kill -9 $JPID
kill -9 $MPID
sleep 1
rm COOJA.testlog
rm COOJA.log
if [ $STATUS -eq 0 ] ; then
mv $BASENAME.log $BASENAME.testlog
echo " OK"
echo "$BASENAME: TEST OK" | tee $BASENAME.testlog;
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 "---- 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;
echo "$BASENAME: TEST FAIL ಠ_ಠ" | tee $BASENAME.testlog;
fi
# We do not want Make to stop -> Return 0

View File

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

View File

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