aboutsummaryrefslogtreecommitdiffstats
path: root/test/timeout.awk
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2015-04-05 11:20:41 +0300
committerArnold D. Robbins <arnold@skeeve.com>2015-04-05 11:20:41 +0300
commit4de12ef40f9ea9a0b715903cfe6da51b97eedb77 (patch)
tree84a0c8d117e9a2a629e186a1fe22ebe185e5d6a4 /test/timeout.awk
parent14da33f5ac17b4adfd15ddb12c07715741bd1b1f (diff)
parentdbf9d5a4fc4b6d6340912395f020019576ed37f6 (diff)
downloadegawk-4de12ef40f9ea9a0b715903cfe6da51b97eedb77.tar.gz
egawk-4de12ef40f9ea9a0b715903cfe6da51b97eedb77.tar.bz2
egawk-4de12ef40f9ea9a0b715903cfe6da51b97eedb77.zip
Merge branch 'master' into cmake
Diffstat (limited to 'test/timeout.awk')
-rw-r--r--test/timeout.awk26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/timeout.awk b/test/timeout.awk
new file mode 100644
index 00000000..ccf4537d
--- /dev/null
+++ b/test/timeout.awk
@@ -0,0 +1,26 @@
+BEGIN {
+ cmd = "echo hello; sleep 1; echo goodbye"
+
+ print "With timeouts"
+ PROCINFO[cmd, "READ_TIMEOUT"] = 300
+ while ((rc = (cmd | getline x)) > 0)
+ print x
+ if (rc < 0)
+ print rc, (PROCINFO["errno"] != 0), (ERRNO != "")
+ print (close(cmd) != 0)
+
+ PROCINFO[cmd, "RETRY"]
+ print ""
+ print "With timeouts and retries"
+ while (((rc = (cmd | getline x)) > 0) || (rc == -2)) {
+ if (rc > 0) {
+ print x
+ n = 0
+ }
+ else
+ print ++n, "timed out; trying again"
+ }
+ if (rc < 0)
+ print rc, (PROCINFO["errno"] != 0), (ERRNO != "")
+ print (close(cmd) != 0)
+}