aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMark Pulford <mark@kyne.com.au>2011-08-10 19:39:52 +0930
committerMark Pulford <mark@kyne.com.au>2011-08-10 19:39:52 +0930
commit386fdad6820fefa77355ed330f3072a5e2a4bd3e (patch)
tree2b72bae1be543dc1116eb512d50f1fa5731ed44e /tests
parente5ee37f77f029f4df68a0fc92fc7a79c9f8af210 (diff)
downloadlua-cjson-386fdad6820fefa77355ed330f3072a5e2a4bd3e.tar.gz
lua-cjson-386fdad6820fefa77355ed330f3072a5e2a4bd3e.tar.bz2
lua-cjson-386fdad6820fefa77355ed330f3072a5e2a4bd3e.zip
Fix detection of objects with numeric string keys
lua_array_length() recognised some objects with numeric string keys as arrays since it was incorrectly using lua_isnumber(). When an object was incorrectly recognised as an array, json_append_array() would not find any entries and generate a result like: [null,null,...] Reported by: Zhang "agentzh" Yichun <agentzh@gmail.com>
Diffstat (limited to 'tests')
-rwxr-xr-xtests/test.lua5
1 files changed, 3 insertions, 2 deletions
diff --git a/tests/test.lua b/tests/test.lua
index 7a9b0ff..7a75243 100755
--- a/tests/test.lua
+++ b/tests/test.lua
@@ -118,13 +118,14 @@ local encode_table_tests = {
118 end, 118 end,
119 { json.encode, { { [3] = "sparse test" } }, 119 { json.encode, { { [3] = "sparse test" } },
120 true, { '[null,null,"sparse test"]' } }, 120 true, { '[null,null,"sparse test"]' } },
121
122 { json.encode, { { [1] = "one", [4] = "sparse test" } }, 121 { json.encode, { { [1] = "one", [4] = "sparse test" } },
123 true, { '["one",null,null,"sparse test"]' } }, 122 true, { '["one",null,null,"sparse test"]' } },
124
125 { json.encode, { { [1] = "one", [5] = "sparse test" } }, 123 { json.encode, { { [1] = "one", [5] = "sparse test" } },
126 true, { '{"1":"one","5":"sparse test"}' } }, 124 true, { '{"1":"one","5":"sparse test"}' } },
127 125
126 { json.encode, { { ["2"] = "numeric string key test" } },
127 true, { '{"2":"numeric string key test"}' } },
128
128 { json.encode, { nested5 }, true, { '[[[[["nested"]]]]]' } }, 129 { json.encode, { nested5 }, true, { '[[[[["nested"]]]]]' } },
129 { json.encode, { { nested5 } }, 130 { json.encode, { { nested5 } },
130 false, { "Cannot serialise, excessive nesting (6)" } }, 131 false, { "Cannot serialise, excessive nesting (6)" } },