我正在为我的应用程序编写测试套件并使用bash脚本来检查测试套件输出是否与预期输出匹配。下面是一段脚本:将输入发送到bash的运行shell脚本
for filename in test/*.bcs ;
do
./BCSC $filename > /dev/null
NUMBER=`echo "$filename" | awk -F"[./]" '{print $2}'`
gcc -g -m32 -mstackrealign runtime.c $filename.s -o test/e$NUMBER
# run the file and diff against expected output
echo "Running test file... "$filename
test/e$NUMBER > test/e$NUMBER.out
if [ $NUMBER = "4" ]
then
# it's trying to read the line
# Pass some input to the file...
fi
diff test/e$NUMBER.out test/o$NUMBER.out
done
测试#4测试从标准输入读取输入。我想测试脚本#4,如果是的话,传递一组样本输入。
我才意识到,你可以不喜欢它
test/e4 <test/e4.in> test/e4.out
其中e4.in具有样本输入。是否有另一种方法将输入传递给正在运行的脚本?
对不起,我想'expect'类似的东西,我猜想,但不知道如何有条件地做,并在shell脚本。 – 2011-04-30 22:39:38