fix #13166 tioselectors flaky test on freebsd+OSX (#14634)

(cherry picked from commit d149823019)
This commit is contained in:
Timothee Cour
2020-06-12 21:19:23 -07:00
committed by narimiran
parent 74f34c81e8
commit 6dde797752
2 changed files with 56 additions and 9 deletions

View File

@@ -10,9 +10,7 @@ template processTest(t, x: untyped) =
#stdout.flushFile()
if not x: echo(t & " FAILED\r\n")
when defined(macosx):
echo "All tests passed!"
elif not defined(windows):
when not defined(windows):
import os, posix, nativesockets
when ioselSupportedPlatform:
@@ -147,15 +145,16 @@ elif not defined(windows):
proc timer_notification_test(): bool =
var selector = newSelector[int]()
var timer = selector.registerTimer(100, false, 0)
var rc1 = selector.select(140)
var rc2 = selector.select(140)
assert(len(rc1) == 1 and len(rc2) == 1)
var rc1 = selector.select(10000)
var rc2 = selector.select(10000)
# if this flakes, see tests/m14634.nim
assert len(rc1) == 1 and len(rc2) == 1, $(len(rc1), len(rc2))
selector.unregister(timer)
discard selector.select(0)
selector.registerTimer(100, true, 0)
var rc4 = selector.select(120)
var rc5 = selector.select(120)
assert(len(rc4) == 1 and len(rc5) == 0)
var rc4 = selector.select(10000)
var rc5 = selector.select(1000) # this will be an actual wait, keep it small
assert len(rc4) == 1 and len(rc5) == 0, $(len(rc4), len(rc5))
assert(selector.isEmpty())
selector.close()
result = true