diff options
author | Dominik Picheta <dominikpicheta@googlemail.com> | 2016-09-17 12:48:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-17 12:48:32 +0200 |
commit | 04c1caf02508d0e4100f162f4abed097fac825b0 (patch) | |
tree | 18ab5c067759260cd1bbb167dd37b704ac77c90b | |
parent | e78b9b72686baa3b98702e86569148e0fc8d7057 (diff) | |
parent | 3d556a971920cc11ee834487df0294a374840b2f (diff) | |
download | Nim-04c1caf02508d0e4100f162f4abed097fac825b0.tar.gz |
Merge pull request #4785 from cheatfate/update_tnewasyncudp
Fix tnewasyncudp test
-rw-r--r-- | tests/async/tnewasyncudp.nim | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/tests/async/tnewasyncudp.nim b/tests/async/tnewasyncudp.nim index 7025fa20d..66f75711e 100644 --- a/tests/async/tnewasyncudp.nim +++ b/tests/async/tnewasyncudp.nim @@ -39,8 +39,11 @@ proc prepareAddress(intaddr: uint32, intport: uint16): ptr Sockaddr_in = proc launchSwarm(name: ptr SockAddr) {.async.} = var i = 0 var k = 0 + var buffer: array[16384, char] + var slen = sizeof(Sockaddr_in).SockLen + var saddr = Sockaddr_in() while i < swarmSize: - var peeraddr = prepareAddress(INADDR_ANY, 0) + var peeraddr = prepareAddress(0x7F000001, 0) var sock = newAsyncNativeSocket(nativesockets.AF_INET, nativesockets.SOCK_DGRAM, Protocol.IPPROTO_UDP) @@ -50,10 +53,19 @@ proc launchSwarm(name: ptr SockAddr) {.async.} = let sockport = getSockName(sock.SocketHandle).int k = 0 while k < messagesToSend: + zeroMem(addr(buffer[0]), 16384) + zeroMem(cast[pointer](addr(saddr)), sizeof(Sockaddr_in)) var message = "Message " & $(i * messagesToSend + k) await sendTo(sock, addr message[0], len(message), name, sizeof(Sockaddr_in).SockLen) - saveSendingPort(sockport) + var size = await recvFromInto(sock, cast[pointer](addr buffer[0]), + 16384, cast[ptr SockAddr](addr saddr), + addr slen) + size = 0 + var grammString = $buffer + if grammString == message: + saveSendingPort(sockport) + inc(recvCount) inc(k) closeSocket(sock) inc(i) @@ -75,13 +87,14 @@ proc readMessages(server: AsyncFD) {.async.} = var grammString = $buffer if grammString.startswith("Message ") and saddr.sin_addr.s_addr == 0x100007F: + await sendTo(server, addr grammString[0], len(grammString), + cast[ptr SockAddr](addr saddr), slen) inc(msgCount) saveReceivedPort(ntohs(saddr.sin_port).int) - inc(recvCount) inc(i) proc createServer() {.async.} = - var name = prepareAddress(INADDR_ANY, serverPort) + var name = prepareAddress(0x7F000001, serverPort) var server = newAsyncNativeSocket(nativesockets.AF_INET, nativesockets.SOCK_DGRAM, Protocol.IPPROTO_UDP) |