test/timertest.lua

Sat, 15 Jan 2011 20:21:54 -0500

author
Thomas Harning Jr <harningt@gmail.com>
date
Sat, 15 Jan 2011 20:21:54 -0500
changeset 100
41a6f9a64b9e
parent 25
5778073d2903
permissions
-rw-r--r--

base: noted in CHANGELOG pending 0.3.0 release

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