You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
3.3 KiB
116 lines
3.3 KiB
|
|
# HG changeset patch
|
|
# User Tom?s Guisasola Gorham <tomas@tecgraf.puc-rio.br>
|
|
# Date 1343436760 -3600
|
|
# Node ID b2a77ebe7aed73ef5318895dd8f34dcdece94114
|
|
# Parent e981a82571cf5c54d5e84f73fbcad7214f699c03
|
|
test.lua: Expand tests and add compatibility with Lua 5.2
|
|
|
|
diff -r e981a82571cf -r b2a77ebe7aed tests/test.lua
|
|
--- a/tests/test.lua Sat Jul 28 00:15:08 2012 +0100
|
|
+++ b/tests/test.lua Sat Jul 28 01:52:40 2012 +0100
|
|
@@ -2,8 +2,14 @@
|
|
-- See Copyright Notice in license.html
|
|
-- $Id: test.lua,v 1.6 2006/06/08 20:34:52 tomas Exp $
|
|
|
|
-require"lxp"
|
|
+if string.find(_VERSION, " 5.0") then
|
|
+ lxp = assert(loadlib("./lxp.so", "luaopen_lxp"))()
|
|
+else
|
|
+ lxp = require"lxp"
|
|
+ gcinfo = function () return collectgarbage"count" end
|
|
+end
|
|
print (lxp._VERSION)
|
|
+assert(lxp.new, "Cannot find function lxp.new ("..tostring(lxp.new)..")")
|
|
|
|
-- basic test with no preamble
|
|
local p = lxp.new{}
|
|
@@ -35,15 +41,44 @@
|
|
]>
|
|
]]
|
|
|
|
-local X
|
|
-function getargs (...) X = arg end
|
|
+X = {}
|
|
+if string.find(_VERSION, " 5.0") then
|
|
+ function getargs (...) X = arg end
|
|
+ function xgetargs (c)
|
|
+ return function (...)
|
|
+ table.insert(arg, 1, c)
|
|
+ table.insert(X, arg)
|
|
+ end
|
|
+ end
|
|
+else
|
|
+ (loadstring or load)[[
|
|
+ function getargs (...)
|
|
+ X = { ... }
|
|
+ X.n = select('#', ...)
|
|
+ end
|
|
+ function xgetargs (c)
|
|
+ return function (...)
|
|
+ local arg = { ... }
|
|
+ arg.n = select('#', ...) + 1
|
|
+ table.insert(arg, 1, c)
|
|
+ table.insert(X, arg)
|
|
+ end
|
|
+ end
|
|
+ table.getn = function (t)
|
|
+ if t.n then
|
|
+ return t.n
|
|
+ else
|
|
+ local n = 0
|
|
+ for i in pairs(t) do
|
|
+ if type(i) == "number" then
|
|
+ n = math.max(n, i)
|
|
+ end
|
|
+ end
|
|
+ return n
|
|
+ end
|
|
+ end]]()
|
|
+end
|
|
|
|
-function xgetargs (c)
|
|
- return function (...)
|
|
- table.insert(arg, 1, c)
|
|
- table.insert(X, arg)
|
|
- end
|
|
-end
|
|
|
|
|
|
-------------------------------
|
|
@@ -61,7 +96,7 @@
|
|
assert(X.n == 3 and X[1] == p and X[2] == "to")
|
|
x = X[3]
|
|
assert(x.priority=="10" and x.xu=="hi" and x.method=="POST")
|
|
-assert(x[1] == "priority" and x[2] == "xu" and table.getn(x) == 2)
|
|
+assert(x[1] == "priority" and x[2] == "xu" and table.getn(x) == 2, "x[1] == "..tostring(x[1])..", x[2] == "..tostring(x[2])..", #x == "..tostring(table.getn(x)))
|
|
assert(p:parse("</to>"))
|
|
assert(p:parse())
|
|
p:close()
|
|
@@ -95,7 +130,7 @@
|
|
assert(p:parse"<to>")
|
|
assert(p:parse"<![CDATA[hi]]>")
|
|
assert(table.getn(X) == 3)
|
|
-assert(X[1][1] == "s" and X[1][2] == p)
|
|
+assert(X[1][1] == "s" and X[1][2] == p, "X[1][1] == "..tostring(X[1][1])..", X[1][2] == "..tostring(X[1][2])..", p == "..tostring(p))
|
|
assert(X[2][1] == "c" and X[2][2] == p and X[2][3] == "hi")
|
|
assert(X[3][1] == "e" and X[3][2] == p)
|
|
assert(p:parse"</to>")
|
|
@@ -220,7 +255,7 @@
|
|
]])
|
|
p:close()
|
|
x = X[1]
|
|
-assert(x[1] == "sn" and x[3] == "space" and x[4] == "a/namespace" and table.getn(x) == 4)
|
|
+assert(x[1] == "sn" and x[3] == "space" and x[4] == "a/namespace" and table.getn(x) == 4, "x[1] == "..tostring(x[1])..", x[3] == "..tostring(x[3])..", x[4] == "..tostring(x[4])..", #x == "..tostring(table.getn(x)))
|
|
x = X[3]
|
|
assert(x[1] == "s" and x[3] == "a/namespace?a")
|
|
x = X[4]
|
|
@@ -316,7 +351,7 @@
|
|
local x = gcinfo()
|
|
for i=1,100000 do
|
|
-- due to a small bug in Lua...
|
|
- if math.mod(i, 100) == 0 then collectgarbage() end
|
|
+ if (math.mod or math.fmod)(i, 100) == 0 then collectgarbage() end
|
|
lxp.new({})
|
|
end
|
|
collectgarbage(); collectgarbage()
|
|
|