# Copyright (c) Facebook, Inc. and its affiliates. # # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. #!/bin/bash TESTFILE="$1" shift TESTNAME=`basename "$TESTFILE"` OUTFILE="$TESTFILE.out" EXPFILE="$TESTFILE.exp" DIFFFILE="$TESTFILE.diff" if [[ $VERBOSE > 0 ]] then DEST=/dev/stdout else DEST=/dev/null fi if $* 2>&1 | tee "$OUTFILE" > $DEST then if diff <(cat "$EXPFILE" 2> /dev/null || true) "$OUTFILE" > "$DIFFFILE" then echo "[+] $TESTNAME succeeded" rm "$DIFFFILE" exit 0 else echo "[-] $TESTNAME failed (unexpected output)" printf '\033[1;31m\n' if [[ $LIMIT > 0 ]] then tail -n $LIMIT "$DIFFFILE" else cat "$DIFFFILE" fi printf '\033[0m\n' rm "$DIFFFILE" exit 1 fi else echo "[-] $TESTNAME failed (error $?)" exit 2 fi