#!/bin/sh FP=$(date +%s)-false-positive.txt FN=$(date +%s)-false-negative.txt REPORT=wrtc-$(date +%s).xml if hash wrtc then echo Found wrtc else echo Please setup the Aplix Web runtime http://wiki.webvm.net/wrtc/ exit fi if ! test $1 then echo $0 "http://dev.w3.org/2006/waf/widgets/test-suite/test-suite.xml # P&C tests" echo $0 "http://dev.w3.org/2006/waf/widgets/test-suite/test-suite.xml e4 # P&C test only id 'db'" exit fi case "$1" in http://*) W3C=$(tempfile) wget -q $1 -O $W3C if ! test -e test-suite.csv then xmlstarlet sel -t -m '//test' -v '@id' -o ',' -v '@src' -o ',' -v '@expected' -n $W3C > test-suite.csv fi export W3CURI=$1 ;; (*) echo Missing test-suite.xml exit ;; esac SPECIFICTEST=$2 # Clean up everything killall wrtd rm -rf ~/.widgetmanager for tc in $(cat test-suite.csv) do IFS="," set -- $tc WIDGET=$(basename $2) if test $SPECIFICTEST then if ! test $1 = $SPECIFICTEST then continue fi fi if wget -q $(dirname $W3CURI)/$2 -O $WIDGET then echo Downloaded $WIDGET else echo Failed to download $WIDGET continue fi if test -e $WIDGET then file $WIDGET md5sum $WIDGET else echo $WIDGET missing exit fi WIDGETID=$(tempfile) # Install widget, though store ID of the installed widget so it can be run later wrtc -i $1 $(pwd)/$WIDGET > $WIDGETID CODE=$? echo Error code $CODE if test $CODE -eq 0 then if test $(grep "^$1" test-suite.csv | grep invalid | wc -l) -eq 0 then echo "" >> $REPORT INSTANCE=$(wrtc -r $(cat $WIDGETID)) sleep 1 # Run widget for a second wrtc -k $INSTANCE else echo FAILED $1 - $W should have been rejected echo $1:$2 >> $FP fi wrtc -u $(cat $WIDGETID) -p # Uninstall else if test $(grep "^$1" test-suite.csv | grep invalid | wc -l) -gt 0 then echo "" >> $REPORT INSTANCE=$(wrtc -r $(cat $WIDGETID)) sleep 1 wrtc -k $INSTANCE else echo FAILED $1 - should not have been rejected echo $1:$2 >> $FN fi fi rm -f $WIDGET # delete downloaded widget rm -f $WIDGETID # clear up tempfile done rm -f $W3C