adds test for rawlen

This commit is contained in:
kikito 2015-11-21 17:04:28 +01:00
parent 3d27a547e0
commit 387a2f683a

View File

@ -1,6 +1,7 @@
local inspect = require 'inspect' local inspect = require 'inspect'
local unindent = require 'spec.unindent' local unindent = require 'spec.unindent'
local is_luajit, ffi = pcall(require, 'ffi') local is_luajit, ffi = pcall(require, 'ffi')
local has_rawlen = type(_G.rawlen) == 'function'
describe( 'inspect', function() describe( 'inspect', function()
@ -74,6 +75,13 @@ describe( 'inspect', function()
assert.equals('{ "a", "b", "c", { "d", "e" }, "f" }', inspect({'a','b','c', {'d','e'}, 'f'})) assert.equals('{ "a", "b", "c", { "d", "e" }, "f" }', inspect({'a','b','c', {'d','e'}, 'f'}))
end) end)
if has_rawlen then
it('handles arrays with a __len metatable correctly (ignoring the __len metatable and using rawlen)', function()
local arr = setmetatable({1,2,3}, {__len = function() return nil end})
assert.equals("{ 1, 2, 3 }", inspect(arr))
end)
end
it('works with simple dictionary tables', function() it('works with simple dictionary tables', function()
assert.equals("{\n a = 1,\n b = 2\n}", inspect({a = 1, b = 2})) assert.equals("{\n a = 1,\n b = 2\n}", inspect({a = 1, b = 2}))
end) end)