-- 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