summary refs log tree commit diff stats
path: root/tests/async/tasyncrecursion.nim
diff options
context:
space:
mode:
authorEugene Kabanov <ka@hardcore.kiev.ua>2017-03-14 21:03:13 +0200
committerAndreas Rumpf <rumpf_a@web.de>2017-03-14 20:03:13 +0100
commitac2f1996a8cf5581339526aa60c4cdb74ef3cd0c (patch)
tree8e90c0cbd4ae364b4ff7158666ceb3364d48d199 /tests/async/tasyncrecursion.nim
parentb1c494a1504921a21f5578782db72f274efadd95 (diff)
downloadNim-ac2f1996a8cf5581339526aa60c4cdb74ef3cd0c.tar.gz
asyncdispatch.nim recursion test. (#5534)
Diffstat (limited to 'tests/async/tasyncrecursion.nim')
-rw-r--r--tests/async/tasyncrecursion.nim21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/async/tasyncrecursion.nim b/tests/async/tasyncrecursion.nim
new file mode 100644
index 000000000..54482edab
--- /dev/null
+++ b/tests/async/tasyncrecursion.nim
@@ -0,0 +1,21 @@
+discard """
+  file: "tasyncrecursion.nim"
+  output: "50005000"
+"""
+import asyncdispatch
+
+proc asyncRecursionCycle*(counter: int): Future[int] =
+  var retFuture = newFuture[int]("asyncRecursionTest")
+  retFuture.complete(counter + 1)
+  return retFuture
+
+proc asyncRecursionTest*(): Future[int] {.async.} =
+  var i = 0
+  result = 0
+  while i < 10_000:
+    inc(result, await asyncRecursionCycle(i))
+    inc(i)
+
+when isMainModule:
+  var i = waitFor asyncRecursionTest()
+  echo i