#!/bin/bash # Find out where we are and what we're called. cd $(dirname $0) testname=$(basename $(basename $0 .sh)) # All's well that ends well. retcode=0 # Loop through testcases and run each one. # Each testcase is composed of program, packet, output, and optionally, starting data and/or age. for prog in testdata/*.program; do testcase=$(basename $prog .program) prog=$(cat testdata/$testcase.program) pkt=$(cat testdata/$testcase.packet) outputpath=testdata/$testcase.output args="--trace --program $prog --packet $pkt" if [[ -f testdata/$testcase.data ]]; then args="$args --data $(cat testdata/$testcase.data)" fi if [[ -f testdata/$testcase.age ]]; then args="$args --age $(cat testdata/$testcase.age)" fi if diff --color -u <(./apf_run $args) <(cat $outputpath); then echo $testname: $testcase: PASS else echo $testname: $testcase: FAIL retcode=1 fi done # Report pass/fail to the test runner. exit $retcode