nim-chronos/tests/testfut.nim

40 lines
937 B
Nim
Raw Normal View History

2018-05-22 23:28:16 +00:00
# Asyncdispatch2 Test Suite
# (c) Copyright 2018
# Status Research & Development GmbH
#
# Licensed under either of
# Apache License, version 2.0, (LICENSE-APACHEv2)
# MIT license (LICENSE-MIT)
import unittest
import ../asyncdispatch2
when defined(vcc):
{.passC: "/Zi /FS".}
proc testFuture1(): Future[int] {.async.} =
await sleepAsync(100)
proc testFuture2(): Future[int] {.async.} =
return 1
proc testFuture3(): Future[int] {.async.} =
result = await testFuture2()
proc test1(): bool =
var fut = testFuture1()
poll()
poll()
result = fut.finished
proc test2(): bool =
var fut = testFuture3()
result = fut.finished
when isMainModule:
suite "Future[T] behavior test suite":
2018-05-25 20:00:32 +00:00
test "`Async undefined behavior (#7758)` test":
2018-05-22 23:28:16 +00:00
check test1() == true
test "Immediately completed asynchronous procedure test":
check test2() == true