|
@@ -3,19 +3,30 @@
|
|
|
|
|
|
print "testing (parts of) table library"
|
|
|
|
|
|
+local maxI = math.maxinteger
|
|
|
+local minI = math.mininteger
|
|
|
+
|
|
|
+
|
|
|
+local function checkerror (msg, f, ...)
|
|
|
+ local s, err = pcall(f, ...)
|
|
|
+ assert(not s and string.find(err, msg))
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
do print "testing 'table.create'"
|
|
|
+ local N = 10000
|
|
|
collectgarbage()
|
|
|
local m = collectgarbage("count") * 1024
|
|
|
- local t = table.create(10000)
|
|
|
+ local t = table.create(N)
|
|
|
local memdiff = collectgarbage("count") * 1024 - m
|
|
|
- assert(memdiff > 10000 * 4)
|
|
|
+ assert(memdiff > N * 4)
|
|
|
for i = 1, 20 do
|
|
|
assert(#t == i - 1)
|
|
|
t[i] = 0
|
|
|
end
|
|
|
for i = 1, 20 do t[#t + 1] = i * 10 end
|
|
|
assert(#t == 40 and t[39] == 190)
|
|
|
- assert(not T or T.querytab(t) == 10000)
|
|
|
+ assert(not T or T.querytab(t) == N)
|
|
|
t = nil
|
|
|
collectgarbage()
|
|
|
m = collectgarbage("count") * 1024
|
|
@@ -23,6 +34,9 @@ do print "testing 'table.create'"
|
|
|
memdiff = collectgarbage("count") * 1024 - m
|
|
|
assert(memdiff > 1024 * 12)
|
|
|
assert(not T or select(2, T.querytab(t)) == 1024)
|
|
|
+
|
|
|
+ checkerror("table overflow", table.create, (1<<31) + 1)
|
|
|
+ checkerror("table overflow", table.create, 0, (1<<31) + 1)
|
|
|
end
|
|
|
|
|
|
|
|
@@ -30,15 +44,6 @@ print "testing unpack"
|
|
|
|
|
|
local unpack = table.unpack
|
|
|
|
|
|
-local maxI = math.maxinteger
|
|
|
-local minI = math.mininteger
|
|
|
-
|
|
|
-
|
|
|
-local function checkerror (msg, f, ...)
|
|
|
- local s, err = pcall(f, ...)
|
|
|
- assert(not s and string.find(err, msg))
|
|
|
-end
|
|
|
-
|
|
|
|
|
|
checkerror("wrong number of arguments", table.insert, {}, 2, 3, 4)
|
|
|
|