-- This file is part of the Luau programming language and is licensed under MIT License; see LICENSE.txt for details print("testing asserts") -- someone has to if pcall(assert, false) or pcall(function() assert(false) end) then error('catastrophic assertion failure') -- surely error() can't be broken end function ecall(fn, ...) local ok, err = pcall(fn, ...) assert(not ok) return err:sub(err:find(": ") + 2, #err) end -- zero-ret calls work assert(1) assert(true) -- returns first arg assert(assert(1) == 1) assert(type(assert({})) == 'table') -- fails correctly assert(ecall(function() assert() end) == "missing argument #1") assert(ecall(function() assert(nil) end) == "assertion failed!") assert(ecall(function() assert(false) end) == "assertion failed!") -- fails with a message assert(ecall(function() assert(nil, "epic fail") end) == "epic fail") -- returns all arguments for multi-arg calls assert(select('#', assert(1, 2, 3)) == 3) assert(table.concat(table.pack(assert(1, 2, 3)), "") == "123") return('OK')