#!/bin/bash #et -x exit_status=0 for use_odirect in '' "--use-odirect" "" do (echo a; echo b; echo c) > t if ! [ "$(./bcgrep $use_odirect --pattern 'b' --filenames ./t)" = "./t: b" ] then echo "Test 1 failed $use_odirect" 1>&2 exit_status=1 fi (echo a; echo xybpq; echo c) > t if ! [ "$(./bcgrep $use_odirect --pattern 'xybpq' --filenames ./t)" = "./t: xybpq" ] then echo "Test 2 failed $use_odirect" 1>&2 exit_status=1 fi (echo a; echo z; echo c) > t if ! [ "$(./bcgrep $use_odirect --pattern 'b' --filenames ./t)" = "" ] then echo "Test 3 failed $use_odirect" 1>&2 exit_status=1 fi (echo a; echo pqrs; echo c) > t if ! [ "$(./bcgrep $use_odirect --pattern '(qr)' --filenames ./t)" = "./t: qr" ] then echo "Test 4 failed $use_odirect" 1>&2 exit_status=1 fi (echo apqrsb; echo pqrs; echo c) > t if ! [ "$(./bcgrep $use_odirect --invert-match --pattern 'qr' --filenames ./t)" = "./t: c" ] then echo "Test 4 failed $use_odirect" 1>&2 exit_status=1 fi printf 'abc\0def\0ghi\0' > t if ! [ "$(./bcgrep -0 $use_odirect --pattern def --filenames ./t | tr '\0' '\n')" = "./t: def" ] then echo "Test 5 failed $use_odirect" 1>&2 exit_status=1 fi done if [ "$exit_status" = 1 ] then echo 'One or more tests failed' 1>&2 else echo 'Great, all tests passed' 1>&2 fi exit "$exit_status"