#!/bin/sh
RED="\033[31m"
GREEN="\033[0;32m"
BLUE="\033[0;34m"
ENDCOLOR="\033[0m"
function myPrintLine {
printf "%b\n" "${1}${2}${ENDCOLOR}";
}
testCnt=0
function myDiff {
res=`diff $1 $2`
if [ -z "$res" ]; then
echo "PASS $testCnt"
else
echo "FAILED"
while read li
do
myPrintLine ${RED} "$li"
done < $3
myPrintLine ${GREEN} `cat r1`
myPrintLine ${BLUE} `cat r2`
fi
testCnt=`expr $testCnt + 1`
}
function myTest {
for (( i=0; i<$1; i=i+1 ))
do
./$2 > data
./$3 > r1
./$4 > r2
myDiff r1 r2 data
done
rm -rf r1 r2 data
}
myTest $1 $2 $3 $4
$1为测试次数,$2为测试用例生成程序,$3为标准测试程序,$4为待测试程序