test/timertest.lua

Wed, 03 Mar 2010 18:19:20 -0600

author
James Snyder <jbsnyder@fanplastic.org>
date
Wed, 03 Mar 2010 18:19:20 -0600
changeset 101
f5369fe8f107
parent 25
5778073d2903
permissions
-rw-r--r--

Changes to compile on OS X.

- BSD version of install doesn't have -D flag
- stdlib.h should include malloc defs (malloc.h is obsolete)

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