1e6d6c189SCody Peter Mello#!/bin/bash
2e6d6c189SCody Peter Mello
3e6d6c189SCody Peter Melloif [[ -z "$AWK" || -z "$WORKDIR" ]]; then
4e6d6c189SCody Peter Mello    printf '$AWK and $WORKDIR must be set\n' >&2
5e6d6c189SCody Peter Mello    exit 1
6e6d6c189SCody Peter Mellofi
7e6d6c189SCody Peter Mello
8e6d6c189SCody Peter MelloRESULT=0
9e6d6c189SCody Peter Mello
10e6d6c189SCody Peter Mellofail() {
11e6d6c189SCody Peter Mello	echo "$1" >&2
12e6d6c189SCody Peter Mello	RESULT=1
13e6d6c189SCody Peter Mello}
14e6d6c189SCody Peter Mello
15e6d6c189SCody Peter Melloecho T.-f-f: check multiple -f arguments
16e6d6c189SCody Peter Mello
17e6d6c189SCody Peter MelloTEMP0=$WORKDIR/test.temp.0
18e6d6c189SCody Peter MelloTEMP1=$WORKDIR/test.temp.1
19e6d6c189SCody Peter MelloTEMP2=$WORKDIR/test.temp.2
20e6d6c189SCody Peter MelloTEMP3=$WORKDIR/test.temp.3
21e6d6c189SCody Peter MelloTEMP4=$WORKDIR/test.temp.4
22e6d6c189SCody Peter MelloTEMP5=$WORKDIR/test.temp.5
23*3ee4fc2aSCody Peter MelloTEMP6=$WORKDIR/test.temp.6
24e6d6c189SCody Peter Mello
25e6d6c189SCody Peter Melloecho 'begin
26e6d6c189SCody Peter Melloend' > $TEMP0
27e6d6c189SCody Peter Melloecho 'BEGIN { print "begin" }' > $TEMP1
28e6d6c189SCody Peter Melloecho 'END { print "end" }' > $TEMP2
29e6d6c189SCody Peter Melloecho xxx | $AWK -f $TEMP1 -f $TEMP2 > $TEMP3
30e6d6c189SCody Peter Mellodiff $TEMP0 $TEMP3 || fail 'BAD: T.-f-f multiple -fs'
31e6d6c189SCody Peter Mello
32e6d6c189SCody Peter Mello
33e6d6c189SCody Peter Melloecho '/a/' | $AWK -f - /etc/passwd > $TEMP1
34e6d6c189SCody Peter Mello$AWK '/a/' /etc/passwd > $TEMP2
35e6d6c189SCody Peter Mellodiff $TEMP1 $TEMP2 || fail 'BAD: T.-f-f  -f -'
36e6d6c189SCody Peter Mello
37e6d6c189SCody Peter Mello
38e6d6c189SCody Peter Mellocp /etc/passwd $TEMP1
39e6d6c189SCody Peter Melloecho '/./ {' > $TEMP2
40e6d6c189SCody Peter Melloecho 'print' > $TEMP3
41e6d6c189SCody Peter Melloecho '}' > $TEMP4
42e6d6c189SCody Peter Mello$AWK -f $TEMP2 -f $TEMP3 -f $TEMP4 /etc/passwd > $TEMP5
43e6d6c189SCody Peter Mellodiff $TEMP1 $TEMP5 || fail 'BAD: T.-f-f 3 files'
44e6d6c189SCody Peter Mello
45*3ee4fc2aSCody Peter Mello
46*3ee4fc2aSCody Peter Melloecho '/./ {' > $TEMP2
47*3ee4fc2aSCody Peter Melloecho 'print' > $TEMP3
48*3ee4fc2aSCody Peter Melloecho '
49*3ee4fc2aSCody Peter Mello
50*3ee4fc2aSCody Peter Mello
51*3ee4fc2aSCody Peter Mello
52*3ee4fc2aSCody Peter Mello]' > $TEMP4
53*3ee4fc2aSCody Peter Mello$AWK -f $TEMP2 -f $TEMP3 -f $TEMP4 /etc/passwd > $TEMP5 2> $TEMP6
54*3ee4fc2aSCody Peter Mellogrep "syntax error.*file $TEMP4" $TEMP6 >/dev/null 2>&1 || fail 'BAD: T.-f-f source file name'
55*3ee4fc2aSCody Peter Mello
56e6d6c189SCody Peter Melloexit $RESULT
57