diff options
author | Araq <rumpf_a@web.de> | 2014-03-24 18:42:31 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2014-03-24 18:42:31 +0100 |
commit | bf2f6397c807991f09dd8325c1f860869a1a73b6 (patch) | |
tree | c1c6bb517689c6305583367843d74f0647aec7cf /tests | |
parent | 907e1b80b2a3a64cbd60f98c221cd662988d74aa (diff) | |
parent | e8c50640d7a4d386197b8508c82b26f5563060cb (diff) | |
download | Nim-bf2f6397c807991f09dd8325c1f860869a1a73b6.tar.gz |
Merge branch 'devel' of https://github.com/Araq/Nimrod into devel
Diffstat (limited to 'tests')
-rw-r--r-- | tests/async/tasyncawait.nim | 45 | ||||
-rw-r--r-- | tests/template/tsymchoicefield.nim | 12 | ||||
-rw-r--r-- | tests/vm/tstaticprintseq.nim | 11 |
3 files changed, 41 insertions, 27 deletions
diff --git a/tests/async/tasyncawait.nim b/tests/async/tasyncawait.nim index 7f2c1e6cc..7e6270247 100644 --- a/tests/async/tasyncawait.nim +++ b/tests/async/tasyncawait.nim @@ -5,7 +5,6 @@ discard """ """ import asyncdispatch, rawsockets, net, strutils, os -var disp = newDispatcher() var msgCount = 0 const @@ -14,31 +13,31 @@ const var clientCount = 0 -proc sendMessages(disp: PDispatcher, client: TSocketHandle) {.async.} = +proc sendMessages(client: TAsyncFD) {.async.} = for i in 0 .. <messagesToSend: - await disp.send(client, "Message " & $i & "\c\L") + await send(client, "Message " & $i & "\c\L") -proc launchSwarm(disp: PDispatcher, port: TPort) {.async.} = +proc launchSwarm(port: TPort) {.async.} = for i in 0 .. <swarmSize: - var sock = disp.socket() + var sock = newAsyncRawSocket() #disp.register(sock) - await disp.connect(sock, "localhost", port) + await connect(sock, "localhost", port) when true: - await sendMessages(disp, sock) - disp.close(sock) + await sendMessages(sock) + close(sock) else: # Issue #932: https://github.com/Araq/Nimrod/issues/932 - var msgFut = sendMessages(disp, sock) + var msgFut = sendMessages(sock) msgFut.callback = proc () = - disp.close(sock) + close(sock) -proc readMessages(disp: PDispatcher, client: TSocketHandle) {.async.} = +proc readMessages(client: TAsyncFD) {.async.} = while true: - var line = await disp.recvLine(client) + var line = await recvLine(client) if line == "": - disp.close(client) + close(client) clientCount.inc break else: @@ -47,8 +46,8 @@ proc readMessages(disp: PDispatcher, client: TSocketHandle) {.async.} = else: doAssert false -proc createServer(disp: PDispatcher, port: TPort) {.async.} = - var server = disp.socket() +proc createServer(port: TPort) {.async.} = + var server = newAsyncRawSocket() #disp.register(server) block: var name: TSockaddr_in @@ -58,20 +57,20 @@ proc createServer(disp: PDispatcher, port: TPort) {.async.} = name.sin_family = toInt(AF_INET) name.sin_port = htons(int16(port)) name.sin_addr.s_addr = htonl(INADDR_ANY) - if bindAddr(server, cast[ptr TSockAddr](addr(name)), - sizeof(name).TSocklen) < 0'i32: + if bindAddr(server.TSocketHandle, cast[ptr TSockAddr](addr(name)), + sizeof(name).TSocklen) < 0'i32: osError(osLastError()) - discard server.listen() + discard server.TSocketHandle.listen() while true: - var client = await disp.accept(server) - readMessages(disp, client) + var client = await accept(server) + readMessages(client) # TODO: Test: readMessages(disp, await disp.accept(server)) -disp.createServer(TPort(10335)) -disp.launchSwarm(TPort(10335)) +createServer(TPort(10335)) +launchSwarm(TPort(10335)) while true: - disp.poll() + poll() if clientCount == swarmSize: break assert msgCount == swarmSize * messagesToSend diff --git a/tests/template/tsymchoicefield.nim b/tests/template/tsymchoicefield.nim new file mode 100644 index 000000000..ab05500bf --- /dev/null +++ b/tests/template/tsymchoicefield.nim @@ -0,0 +1,12 @@ +type Foo = object + len: int + +var f = Foo(len: 40) + +template getLen(f: Foo): expr = f.len + +echo f.getLen +# This fails, because `len` gets the nkOpenSymChoice +# treatment inside the template early pass and then +# it can't be recognized as a field anymore + diff --git a/tests/vm/tstaticprintseq.nim b/tests/vm/tstaticprintseq.nim index 1fe65cca5..3dfd0048d 100644 --- a/tests/vm/tstaticprintseq.nim +++ b/tests/vm/tstaticprintseq.nim @@ -13,6 +13,8 @@ discard """ 3 aa bb +11 +22 aa bb 24''' @@ -45,9 +47,11 @@ type const data: TData = (@["aa", "bb"], @[11, 22]) static: - var m = data - for x in m.letters: - echo x + var m1 = data + for x in m1.letters: echo x + + var m2: TData = data + for x in m2.numbers: echo x macro ff(d: static[TData]): stmt = for x in d.letters: @@ -55,7 +59,6 @@ macro ff(d: static[TData]): stmt = ff(data) - # bug #1010 proc `*==`(x: var int, y: int) {.inline, noSideEffect.} = |