issue #99 test case

lua54-randomgen
Dibyendu Majumdar 4 years ago
parent cf7f8ed380
commit 4d6f9dd9f2

@ -1838,7 +1838,58 @@ assert(z.count == 0)
assert(y == 1)
print 'Test 82 OK'
--
-- Create some slices and invoke GC
x = function ()
local function createarray(values: number[])
local arr: number[] = table.numarray(#values, 0)
for i=1,#values do
arr[i] = values[i]
end
return arr
end
local slice1, slice2, slice3
local finalizer_called = false
do
local arr: number[] = createarray (@number[]{ 1.1, 2.2, 3.3, 4.4, 5.5, 6.6 })
setmetatable(arr, { __gc = function() finalizer_called = true end })
assert(#arr == 6)
slice1 = table.slice(arr, 1, 4)
collectgarbage()
assert(not finalizer_called)
assert(#arr == 6)
assert(#slice1 == 4)
slice2 = table.slice(slice1, 2, 2)
collectgarbage()
assert(not finalizer_called)
assert(#arr == 6)
assert(#slice1 == 4)
assert(#slice2 == 2)
end
collectgarbage()
assert(not finalizer_called)
slice3 = table.slice(slice2, 1, 1)
assert(#slice1 == 4)
assert(#slice2 == 2)
assert(slice3[1] == 2.2)
slice1 = nil
collectgarbage()
assert(not finalizer_called)
assert(#slice2 == 2)
assert(slice3[1] == 2.2)
slice2 = nil
collectgarbage()
assert(not finalizer_called)
assert(#slice3 == 1)
assert(slice3[1] == 2.2)
slice3 = nil
collectgarbage()
assert(finalizer_called)
end
x()
compile(x)
x()
print 'Test 83 OK'
for k,v in pairs(opcodes_coverage)
do

Loading…
Cancel
Save