summaryrefslogtreecommitdiff
path: root/usr/src/test/util-tests/tests/awk/gnu/fflush.sh
blob: 8b03a40991ba5f2756dc3348613d2d50ea574998 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#! /bin/sh

if [ -z "$AWK" ]; then
    printf '$AWK must be set\n' >&2
    exit 1
fi

$AWK 'BEGIN{print "1st";fflush("/dev/stdout");print "2nd"|"cat"}'

$AWK 'BEGIN{print "1st";fflush("/dev/stdout");print "2nd"|"cat"}'|cat

# gawk and nawk differ here: nawk will close stdout, and future writes (by nawk
# or by the cat child) will fail. gawk's child will print "2nd" here, and also
# allow other print statements to succeed.
$AWK 'BEGIN{print "1st";fflush("/dev/stdout");close("/dev/stdout");print "2nd"|"cat"}'|cat

$AWK 'BEGIN{print "1st";fflush("/dev/stdout");print "2nd"|"cat";close("cat")}'|cat

$AWK 'BEGIN{print "1st";fflush("/dev/stdout");print "2nd"|"cat";close("cat")}'|cat

$AWK 'BEGIN{print "1st";fflush("/dev/stdout");print "2nd"|"cat";close("cat")}'|cat

$AWK 'BEGIN{print "1st";fflush("/dev/stdout");print "2nd"|"sort"}'|cat

$AWK 'BEGIN{print "1st";fflush("/dev/stdout");print "2nd"|"sort";close("sort")}'|cat