summary refs log tree commit diff stats
path: root/tests/async/t7758.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/async/t7758.nim')
-rw-r--r--tests/async/t7758.nim21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/async/t7758.nim b/tests/async/t7758.nim
new file mode 100644
index 000000000..fe6d32ad3
--- /dev/null
+++ b/tests/async/t7758.nim
@@ -0,0 +1,21 @@
+import asyncdispatch
+import std/unittest
+
+proc task() {.async.} =
+  const tSleep = 40
+  await sleepAsync(tSleep)
+
+proc main() =
+  var counter = 0
+  var f = task()
+  while not f.finished:
+    inc(counter)
+    poll(10)
+
+  const slack = 1
+    # because there is overhead in `async` + `sleepAsync`
+    # as can be seen by increasing `tSleep` from 40 to 49, which increases the number
+    # of failures.
+  check counter <= 4 + slack
+
+for i in 0 .. 10: main()