Add test for issue #1429.
UDP receive timeout doesn't work for the libevent driver. (cherry picked from commit 443e0713ded4d2eaf5e9bc6c24ed79069d2a92dd) (cherry picked from commit 6997dc304c2d09511c409bd18f847bac330a06a3)
This commit is contained in:
parent
8f66cc9827
commit
9e6436fce3
4
tests/vibe.core.net.1429/dub.sdl
Normal file
4
tests/vibe.core.net.1429/dub.sdl
Normal file
|
@ -0,0 +1,4 @@
|
|||
name "tests"
|
||||
description "TCP disconnect task issue"
|
||||
dependency "vibe-d:core" path="../../"
|
||||
versions "VibeDefaultMain"
|
29
tests/vibe.core.net.1429/source/app.d
Normal file
29
tests/vibe.core.net.1429/source/app.d
Normal file
|
@ -0,0 +1,29 @@
|
|||
import vibe.core.core;
|
||||
import vibe.core.log : logInfo;
|
||||
import vibe.core.net;
|
||||
import core.time : msecs;
|
||||
import std.datetime : Clock, UTC;
|
||||
|
||||
shared static this()
|
||||
{
|
||||
auto udp = listenUDP(11429, "127.0.0.1");
|
||||
|
||||
runTask({
|
||||
sleep(500.msecs);
|
||||
assert(false, "Receive call did not return in a timely manner. Killing process.");
|
||||
});
|
||||
|
||||
runTask({
|
||||
auto start = Clock.currTime(UTC());
|
||||
try {
|
||||
udp.recv(100.msecs);
|
||||
assert(false, "Timeout did not occur.");
|
||||
} catch (Exception e) {
|
||||
auto duration = Clock.currTime(UTC()) - start;
|
||||
assert(duration >= 99.msecs, "Timeout occurred too early");
|
||||
assert(duration >= 99.msecs && duration < 150.msecs, "Timeout occurred too late.");
|
||||
logInfo("UDP receive timeout test was successful.");
|
||||
exitEventLoop();
|
||||
}
|
||||
});
|
||||
}
|
Loading…
Reference in a new issue