aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew J. Schorr <aschorr@telemetry-investments.com>2021-12-07 12:00:22 -0500
committerAndrew J. Schorr <aschorr@telemetry-investments.com>2021-12-07 12:00:22 -0500
commite03c8822c48bedfe6cc7fbd5a9382d9630de6494 (patch)
treefc65ceddd8e959ccd6c6bb041ee5061262e89c0d
parent7d8a75a766b17fe395c0a82050d314c2dea57f3e (diff)
downloadegawk-e03c8822c48bedfe6cc7fbd5a9382d9630de6494.tar.gz
egawk-e03c8822c48bedfe6cc7fbd5a9382d9630de6494.tar.bz2
egawk-e03c8822c48bedfe6cc7fbd5a9382d9630de6494.zip
Reorder statements in iolint to try to eliminate a race condition.
-rw-r--r--test/ChangeLog7
-rw-r--r--test/iolint.awk2
-rw-r--r--test/iolint.ok2
3 files changed, 9 insertions, 2 deletions
diff --git a/test/ChangeLog b/test/ChangeLog
index 3f368170..1fb76bab 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,10 @@
+2021-12-07 Andrew J. Schorr <aschorr@telemetry-investments.com>
+
+ * iolint.awk, iolint.ok: Reorder "cat" pipe/output file test to reduce
+ the likelihood of a race condition, since close operates on the
+ most-recently-used item. Thanks to Miguel Pineiro Jr.,
+ <mpj@pineiro.cc>, for suggesting the fix.
+
2021-11-21 Arnold D. Robbins <arnold@skeeve.com>
* Makefile.am (EXTRA_DIST): stupid5, new test.
diff --git a/test/iolint.awk b/test/iolint.awk
index 042f743b..3ebaf436 100644
--- a/test/iolint.awk
+++ b/test/iolint.awk
@@ -49,8 +49,8 @@ BEGIN {
# `%.*s' used for output pipe and two-way pipe
# Not doing |& due to race condition and signals. sigh
cat = "cat"
- print "hello" | "cat"
print "/bin/cat \"$@\"" > "cat"
+ print "hello" | "cat"
print close("cat")
print close("cat")
fflush()
diff --git a/test/iolint.ok b/test/iolint.ok
index 7a165aa9..860bcfbf 100644
--- a/test/iolint.ok
+++ b/test/iolint.ok
@@ -20,9 +20,9 @@ gawk: iolint.awk:42: warning: `echo hello' used for input pipe and output file
0
0
gawk: iolint.awk:53: warning: `cat' used for output file and output pipe
-0
hello
0
+0
gawk: iolint.awk:67: warning: `eval $CMD_TO_RUN' used for input pipe and output pipe
0
0