xref: /illumos-gate/usr/src/test/util-tests/tests/awk/tests/T.-f-f (revision d17be682a2c70b4505d43c830bbd2603da11918d)
1#!/bin/bash
2
3if [[ -z "$AWK" || -z "$WORKDIR" ]]; then
4    printf '$AWK and $WORKDIR must be set\n' >&2
5    exit 1
6fi
7
8RESULT=0
9
10fail() {
11	echo "$1" >&2
12	RESULT=1
13}
14
15echo T.-f-f: check multiple -f arguments
16
17TEMP0=$WORKDIR/test.temp.0
18TEMP1=$WORKDIR/test.temp.1
19TEMP2=$WORKDIR/test.temp.2
20TEMP3=$WORKDIR/test.temp.3
21TEMP4=$WORKDIR/test.temp.4
22TEMP5=$WORKDIR/test.temp.5
23TEMP6=$WORKDIR/test.temp.6
24
25echo 'begin
26end' > $TEMP0
27echo 'BEGIN { print "begin" }' > $TEMP1
28echo 'END { print "end" }' > $TEMP2
29echo xxx | $AWK -f $TEMP1 -f $TEMP2 > $TEMP3
30diff $TEMP0 $TEMP3 || fail 'BAD: T.-f-f multiple -fs'
31
32
33echo '/a/' | $AWK -f - /etc/passwd > $TEMP1
34$AWK '/a/' /etc/passwd > $TEMP2
35diff $TEMP1 $TEMP2 || fail 'BAD: T.-f-f  -f -'
36
37
38cp /etc/passwd $TEMP1
39echo '/./ {' > $TEMP2
40echo 'print' > $TEMP3
41echo '}' > $TEMP4
42$AWK -f $TEMP2 -f $TEMP3 -f $TEMP4 /etc/passwd > $TEMP5
43diff $TEMP1 $TEMP5 || fail 'BAD: T.-f-f 3 files'
44
45
46echo '/./ {' > $TEMP2
47echo 'print' > $TEMP3
48echo '
49
50
51
52]' > $TEMP4
53$AWK -f $TEMP2 -f $TEMP3 -f $TEMP4 /etc/passwd > $TEMP5 2> $TEMP6
54grep "syntax error.*file $TEMP4" $TEMP6 >/dev/null 2>&1 || fail 'BAD: T.-f-f source file name'
55
56exit $RESULT
57