test/timertest.lua

Wed, 15 Jul 2009 10:39:10 -0400

author
Thomas Harning Jr <harningt@gmail.com>
date
Wed, 15 Jul 2009 10:39:10 -0400
changeset 64
dd47dbe85bec
parent 25
5778073d2903
permissions
-rw-r--r--

Merge branch 'v0.2'

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