new tester; all tests categorized

This commit is contained in:
Araq 2014-01-13 02:10:03 +01:00
commit 20b5f31c03
481 changed files with 794 additions and 2506 deletions

View file

@ -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)