awesome/tests/test-use-after-gc.lua

32 lines
776 B
Lua
Raw Normal View History

-- Test behaviour of C objects after they were finalized
local runner = require("_runner")
local done
do
local obj
local func = function()
assert(obj.valid == false)
assert(not pcall(function()
print(obj.visible)
end))
assert(not pcall(function()
obj.visible = true
end))
done = true
end
if _VERSION >= "Lua 5.2" then
setmetatable({}, { __gc = func })
else
local newproxy = newproxy -- luacheck: globals newproxy
getmetatable(newproxy(true)).__gc = func
end
obj = drawin({})
end
collectgarbage("collect")
assert(done)
runner.run_steps({ function() return true end })
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80