nes-proj/tests/17-tun-rpl-br/06-native-coap.sh
2017-11-29 09:30:46 -08:00

63 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# Contiki directory
CONTIKI=$1
# Test basename
BASENAME=06-native-coap
IPADDR=fd00::302:304:506:708
declare -i OKCOUNT=0
declare -i TESTCOUNT=0
echo "Enabling IPv6"
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
# Starting Contiki-NG native node
echo "Starting native CoAP server"
make -C $CONTIKI/examples/coap > make.log 2> make.err
sudo $CONTIKI/examples/coap/coap-example-server.native > node.log 2> node.err &
CPID=$!
sleep 2
# Send CoAP requests
echo "Sending CoAP requests"
rm -f $BASENAME.log
for TARGET in .well-known/core test/push; do
echo "Get $TARGET" | tee -a $BASENAME.log
coap get coap://[$IPADDR]/$TARGET 2>&1 | tee coap.log
cat coap.log >> $BASENAME.log
# Fetch coap status code (not $? because this is piped)
SUCCESS=`grep -c '(2.05)' coap.log`
if [ $SUCCESS == 1 ]; then
printf "> OK\n"
OKCOUNT+=1
else
printf "> FAIL\n"
fi
TESTCOUNT+=1
done
echo "Closing native node"
sleep 2
pgrep hello-world | sudo xargs kill -9
if [ $TESTCOUNT -eq $OKCOUNT ] ; then
printf "%-40s TEST OK %3d/%d\n" "$BASENAME" "$OKCOUNT" "$TESTCOUNT" > $BASENAME.testlog;
else
echo "==== make.log ====" ; cat make.log;
echo "==== make.err ====" ; cat make.err;
echo "==== node.log ====" ; cat node.log;
echo "==== node.err ====" ; cat node.err;
echo "==== $BASENAME.log ====" ; cat $BASENAME.log;
printf "%-32s TEST FAIL %3d/%d\n" "$BASENAME" "$OKCOUNT" "$TESTCOUNT" > $BASENAME.testlog;
fi
rm -f make.log make.err node.log node.err coap.log
# We do not want Make to stop -> Return 0
# The Makefile will check if a log contains FAIL at the end
exit 0