summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/async/tasyncawait.nim45
-rw-r--r--tests/template/tsymchoicefield.nim12
-rw-r--r--tests/vm/tstaticprintseq.nim11
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.} =