Я пишу набор тестов для своего приложения и использую скрипт bash, чтобы проверить, соответствует ли вывод набора тестов ожидаемому результату. Вот часть скрипта:
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 имеет пример входных данных. Есть ли другой способ передать ввод в работающий скрипт?