Added Future[T] tests.

This commit is contained in:
cheatfate 2018-05-23 02:28:16 +03:00
parent bd6375d97c
commit 608924d9f4
2 changed files with 43 additions and 0 deletions

View File

@ -22,6 +22,10 @@ task test, "Run all tests":
exec "nim c -r tests/testtime"
exec "nim c -r -d:release tests/testtime"
exec "nim c -r -d:useSysAssert -d:useGcAssert tests/testfut"
exec "nim c -r tests/testfut"
exec "nim c -r -d:release tests/testfut"
exec "nim c -r -d:useSysAssert -d:useGcAssert tests/testdatagram"
exec "nim c -r tests/testdatagram"
exec "nim c -r -d:release tests/testdatagram"

39
tests/testfut.nim Normal file
View File

@ -0,0 +1,39 @@
# 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":
test "sleepAsync() test":
check test1() == true
test "Immediately completed asynchronous procedure test":
check test2() == true