aboutsummaryrefslogtreecommitdiffstats
path: root/test/close_status.awk
blob: 12b48d638a195db51edd8d54636fe8a2f3bf53b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
BEGIN {
	exit9 = "echo red; exit 9"
	while ((exit9 | getline x) > 0)
		print x
	printf "close(%s) returned %s\n", exit9, close(exit9)

	# run it again, but don't reap the exit status
	while ((exit9 | getline x) > 0)
		print x

	exit0 = "echo blue; exit 0"
	while ((exit0 | getline x) > 0)
		print x
	# reap status out of order
	printf "close(%s) returned %s\n", exit0, close(exit0)

	# check that we got the correct status from the previously
	# exited process
	printf "close(%s) returned %s\n", exit9, close(exit9)
}