Changeset

7236:3304a04281d6

Merge 0.10->trunk
author Matthew Wild <mwild1@gmail.com>
date Fri, 04 Mar 2016 22:28:15 +0000
parents 7232:db0dc08929e7 (current diff) 7235:ee1f7e1e548c (diff)
children 7238:7df4e385b248
files
diffstat 4 files changed, 26 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Thu Mar 03 16:06:16 2016 +0100
+++ b/Makefile	Fri Mar 04 22:28:15 2016 +0000
@@ -53,7 +53,7 @@
 	$(MAKE) clean -C util-src
 
 test:
-	cd tests && $(RUNWITH) test.lua
+	cd tests && $(RUNWITH) test.lua 0
 
 util/%.so:
 	$(MAKE) install -C util-src
--- a/tests/test.lua	Thu Mar 03 16:06:16 2016 +0100
+++ b/tests/test.lua	Fri Mar 04 22:28:15 2016 +0000
@@ -18,6 +18,7 @@
 	dotest "core.s2smanager"
 	dotest "core.configmanager"
 	dotest "util.ip"
+	dotest "util.json"
 	dotest "util.stanza"
 	dotest "util.sasl.scram"
 	dotest "util.cache"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test_util_json.lua	Fri Mar 04 22:28:15 2016 +0000
@@ -0,0 +1,21 @@
+
+function encode(encode, json)
+	local function test(f, j, e)
+		if e then
+			assert_equal(f(j), e);
+		end
+		assert_equal(f(j), f(json.decode(f(j))));
+	end
+	test(encode, json.null, "null")
+	test(encode, {}, "{}")
+	test(encode, {a=1});
+	test(encode, {a={1,2,3}});
+	test(encode, {1}, "[1]");
+end
+
+function decode(decode)
+	local empty_array = decode("[]");
+	assert_equal(type(empty_array), "table");
+	assert_equal(#empty_array, 0);
+	assert_equal(next(empty_array), nil);
+end
--- a/util/json.lua	Thu Mar 03 16:06:16 2016 +0100
+++ b/util/json.lua	Fri Mar 04 22:28:15 2016 +0000
@@ -145,7 +145,9 @@
 
 function simplesave(o, buffer)
 	local t = type(o);
-	if t == "number" then
+	if o == null then
+		t_insert(buffer, "null");
+	elseif t == "number" then
 		t_insert(buffer, tostring(o));
 	elseif t == "string" then
 		stringsave(o, buffer);