specify posix.sys.times: - before: tms = require "posix.sys.times" - describe times: - before: table.unpack = table.unpack or unpack times = tms.times # posix.times takes an optional string or table as its first # argument, followed by zero or more strings only if the first # argument was a string; since we can't express that with # `badargs.diagnose` do it all manually again... - context with bad arguments: badargs.diagnose (times, "()") - it returns a PosixTms: expect (prototype (times ())).to_be "PosixTms" - it fetches everything without an argument: keys = { "tms_utime", "tms_stime", "tms_cutime", "tms_cstime", "elapsed" } t = times () expect (t).to_contain.a_permutation_of (keys) for _, key in ipairs (keys) do expect (type (t[key])).to_be "number" end