test/timertest.lua

Mon, 16 Jan 2012 01:53:45 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Mon, 16 Jan 2012 01:53:45 +0000
changeset 107
f937d449075d
parent 25
5778073d2903
permissions
-rw-r--r--

Merge with upstream

25
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
1 require("luaevent.core")
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
2
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
3 c = luaevent.core.new()
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
4 local f = 100
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
5 local function createEvent()
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
6 return c:addevent(nil, luaevent.core.EV_TIMEOUT, function(ev) io.write(".." .. f) f = f - 1 if f < 0 then return -1 end collectgarbage() end, 0.01)
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
7 end
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
8 ev = createEvent()
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
9 print("TESTING Garbage-collect-safe version")
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
10 c:loop()
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
11 assert(f < 0, "DID NOT FINISH LOOPING")
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
12 io.write("\n")
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
13 print("TESTING Garbage-collect unsafe version")
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
14 f = 100
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
15 createEvent()
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
16 c:loop()
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
17 assert(f >= 0, "Did not perform expected collection")
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
18 io.write("\n")
5778073d2903 Added timertest. Prevented GC-ed events from causing an abort.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
19 print("Completed both tests")

mercurial