summary refs log tree commit diff stats
path: root/tests/reject
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2011-08-15 19:40:00 +0200
committerAraq <rumpf_a@web.de>2011-08-15 19:40:00 +0200
commit2183bf77a658444c2fcd036059249981499c844c (patch)
treedd1ed092f24f0448f75883c21d145166435d0728 /tests/reject
parentc6038dda04b9c28d20bb9a1baaa226f2ecdd1f5c (diff)
downloadNim-2183bf77a658444c2fcd036059249981499c844c.tar.gz
added xmltree.innerText; fixes #49
Diffstat (limited to 'tests/reject')
-rw-r--r--tests/reject/tillegaltyperecursion.nim66
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/reject/tillegaltyperecursion.nim b/tests/reject/tillegaltyperecursion.nim
new file mode 100644
index 000000000..711f458bf
--- /dev/null
+++ b/tests/reject/tillegaltyperecursion.nim
@@ -0,0 +1,66 @@
+discard """
+  cmd: "nimrod c --threads:on $# $#"
+  errormsg: "illegal recursion in type 'TIRC'"
+  line: 16
+"""
+
+import events
+import sockets
+import strutils
+import os
+
+type
+    TMessageReceivedEventArgs = object of TEventArgs
+        Nick*: string
+        Message*: string
+    TIRC = object
+        EventEmitter: TEventEmitter
+        MessageReceivedHandler*: TEventHandler
+        Socket: TSocket
+        Thread: TThread[TIRC]
+        
+proc initIRC*(): TIRC =
+    result.Socket = socket()
+    result.EventEmitter = initEventEmitter()
+    result.MessageReceivedHandler = initEventHandler("MessageReceived")
+
+proc IsConnected*(irc: var TIRC): bool =
+    return running(irc.Thread)
+  
+   
+proc sendRaw*(irc: var TIRC, message: string) =
+    irc.Socket.send(message & "\r\L")
+proc handleData(irc: TIRC) {.thread.} =
+    var connected = False
+    while connected:
+        var tup = @[irc.Socket]
+        var o = select(tup, 200)
+        echo($o)
+        echo($len(tup))
+        if len(tup) == 1:
+            #Connected
+            connected = True
+            
+            #Parse data here
+            
+        else:
+            #Disconnected
+            connected = False
+            return
+   
+proc Connect*(irc: var TIRC, nick: string, host: string, port: int = 6667) =
+    connect(irc.Socket ,host ,TPort(port),TDomain.AF_INET)
+    send(irc.Socket,"USER " & nick & " " & nick & " " & nick & " " & nick &"\r\L")
+    send(irc.Socket,"NICK " & nick & "\r\L")
+    var thread: TThread[TIRC]
+    createThread(thread, handleData, irc)
+    irc.Thread = thread
+
+
+        
+        
+when isMainModule:
+    var irc = initIRC()
+    irc.Connect("AmryBot[Nim]","irc.freenode.net",6667)
+    irc.sendRaw("JOIN #nimrod")
+    os.Sleep(4000)