#!/bin/bash set -e # Check arguments if [[ $# != 3 ]]; then echo "$0 " exit 1 fi HCAT=$1 VCAT=$2 SOURCE=$3 # Generate input files cat < test_input_bf_expected01.txt MISAKA EOT cat < test_input_bf_expected02.txt MISAKA MISAKA EOT cat < test_input_bf_expected11.txt MISAKA MISAKA EOT cat < test_input_bf_expected12.txt MISAKA MISAKA MISAKA EOT cat < test_input_bf_expected21.txt MISAKA MISAKA MISAKA EOT cat < test_input_bf_expected22.txt MISAKA MISAKA MISAKA MISAKA EOT cat < test_input_bf_expected33.txt MISAKA MISAKA MISAKA MISAKA MISAKA MISAKA MISAKA MISAKA MISAKA EOT # Generate programs $VCAT $SOURCE > test_input_bf_code01.txt $HCAT $SOURCE $SOURCE > test_input_bf_code02.txt $VCAT $SOURCE $SOURCE > test_input_bf_code11.txt $HCAT $SOURCE $SOURCE | $VCAT $SOURCE - > test_input_bf_code12.txt $HCAT $SOURCE $SOURCE | $VCAT - $SOURCE > test_input_bf_code21.txt $HCAT $SOURCE $SOURCE | $VCAT - - > test_input_bf_code22.txt $VCAT $SOURCE | $HCAT - - - | $VCAT - - - > test_input_bf_code33.txt # Run a single input/output pair function Run() { OUTPUT=test_input_bf_expected$1.txt PROGRAM=test_input_bf_code$1.txt if ! ( perl bf.pl -e $OUTPUT $PROGRAM ); then echo "Failed for $1" exit 1 fi } Run 01 Run 02 Run 11 Run 12 Run 21 Run 22 Run 33 # Success exit 0