vibe-core/tests/vibe.core.net.1429/source/app.d
Sönke Ludwig 9e6436fce3 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)
2016-04-10 14:40:39 +02:00

30 lines
765 B
D

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();
}
});
}