pack("n") SUCCESS null pack("b", 1) SUCCESS true pack("b", 0) SUCCESS false pack("i", 1) SUCCESS 1 pack("I", (uint64_t)0x123456789abcdef) SUCCESS 81985529216486895 pack("f", 3.14) SUCCESS 3.1400000000000001 pack("s", "test") SUCCESS "test" pack("s?", "test") SUCCESS "test" pack("s?", NULL) SUCCESS null pack("s#", "test asdf", 4) SUCCESS "test" pack("s%", "test asdf", (size_t)4) SUCCESS "test" pack("s#", buffer, 4) SUCCESS "test" pack("s%", buffer, (size_t)4) SUCCESS "test" pack("s++", "te", "st", "ing") SUCCESS "testing" pack("s#+#+", "test", 1, "test", 2, "test") SUCCESS "ttetest" pack("s%+%+", "test", (size_t)1, "test", (size_t)2, "test") SUCCESS "ttetest" pack("{}", 1.0) SUCCESS { } pack("[]", 1.0) SUCCESS [ ] pack("o", json_object_new_int(1)) SUCCESS 1 pack("o?", json_object_new_int(1)) SUCCESS 1 pack("o?", NULL) SUCCESS null pack("O", json_object_new_int(1)) SUCCESS 1 pack("O?", json_object_new_int(1)) SUCCESS 1 pack("O?", NULL) SUCCESS null pack("{s:[]}", "foo") SUCCESS { "foo": [ ] } pack("{s+#+: []}", "foo", "barbar", 3, "baz") SUCCESS { "foobarbaz": [ ] } pack("{s:s,s:o,s:O}", "a", NULL, "b", NULL, "c", NULL) ERROR[char 6 err 10] string is NULL pack("{s:**}", "a", NULL) ERROR[char 4 err 5] invalid character pack("{s:s*,s:o*,s:O*}", "a", NULL, "b", NULL, "c", NULL) SUCCESS { } pack("[i,i,i]", 0, 1, 2) SUCCESS [ 0, 1, 2 ] pack("[s,o,O]", NULL, NULL, NULL) ERROR[char 4 err 10] string is NULL pack("[**]", NULL) ERROR[char 2 err 5] invalid character pack("[s*,o*,O*]", NULL, NULL, NULL) SUCCESS [ ] pack(" s ", "test") SUCCESS "test" pack("[ ]") SUCCESS [ ] pack("[ i , i, i ] ", 1, 2, 3) SUCCESS [ 1, 2, 3 ] pack("{\n\n1") ERROR[char 4 err 5] invalid character pack("[}") ERROR[char 2 err 5] invalid character pack("{]") ERROR[char 2 err 5] invalid character pack("[") ERROR[char 2 err 2] truncated pack("{") ERROR[char 2 err 2] truncated pack("[i]a", 42) ERROR[char 4 err 5] invalid character pack("ia", 42) ERROR[char 2 err 5] invalid character pack("s", NULL) ERROR[char 2 err 10] string is NULL pack("+", NULL) ERROR[char 1 err 5] invalid character pack(NULL) ERROR[char 1 err 8] spec is NULL pack("{s:i}", NULL, 1) ERROR[char 4 err 10] string is NULL pack("{ {}: s }", "foo") ERROR[char 3 err 5] invalid character pack("{ s: {}, s:[ii{} }", "foo", "bar", 12, 13) ERROR[char 19 err 5] invalid character pack("[[[[[ [[[[[ [[[[ }]]]] ]]]] ]]]]]") ERROR[char 21 err 5] invalid character pack("y", "???????hello>>>>>>>", (size_t)19) SUCCESS "Pz8_Pz8_P2hlbGxvPj4-Pj4-Pg" pack("Y", "???????hello>>>>>>>", (size_t)19) SUCCESS "Pz8\/Pz8\/P2hlbGxvPj4+Pj4+Pg" pack("{sy?}", "foo", "hi", (size_t)2) SUCCESS { "foo": "aGk" } pack("{sy?}", "foo", NULL, 0) SUCCESS { "foo": null } pack("{sy*}", "foo", "hi", (size_t)2) SUCCESS { "foo": "aGk" } pack("{sy*}", "foo", NULL, 0) SUCCESS { } unpack("true", "b", &xi[0]) SUCCESS b:1 unpack("false", "b", &xi[0]) SUCCESS b:0 unpack("null", "n") SUCCESS n unpack("42", "i", &xi[0]) SUCCESS i:42 unpack("123456789", "I", &xI[0]) SUCCESS I:123456789 unpack("3.14", "f", &xf[0]) SUCCESS f:3.140000 unpack("12345", "F", &xf[0]) SUCCESS F:12345.000000 unpack("3.14", "F", &xf[0]) SUCCESS F:3.140000 unpack("\"foo\"", "s", &xs[0]) SUCCESS s:foo unpack("\"foo\"", "s%", &xs[0], &xz[0]) SUCCESS s:foo %:3 unpack("{}", "{}") SUCCESS unpack("[]", "[]") SUCCESS unpack("{}", "o", &xo[0]) SUCCESS o:{ } unpack("{}", "O", &xo[0]) SUCCESS O:{ } unpack("{\"foo\":42}", "{si}", "foo", &xi[0]) SUCCESS s:foo i:42 unpack("[1,2,3]", "[i,i,i]", &xi[0], &xi[1], &xi[2]) SUCCESS i:1 i:2 i:3 unpack("{\"a\":1,\"b\":2,\"c\":3}", "{s:i, s:i, s:i}", "a", &xi[0], "b", &xi[1], "c", &xi[2]) SUCCESS s:a i:1 s:b i:2 s:c i:3 unpack("42", "z") ERROR[char 1 err 5] invalid character unpack("null", "[i]") ERROR[char 1 err 13] missfit of type unpack("[]", "[}") ERROR[char 2 err 5] invalid character unpack("{}", "{]") ERROR[char 2 err 5] invalid character unpack("[]", "[") ERROR[char 2 err 11] array too small unpack("{}", "{") ERROR[char 2 err 2] truncated unpack("[42]", "[i]a", &xi[0]) ERROR[char 4 err 5] invalid character unpack("42", "ia", &xi[0]) ERROR[char 2 err 5] invalid character unpack("[]", NULL) ERROR[char 1 err 8] spec is NULL unpack("\"foo\"", "s", NULL) SUCCESS s:(null) unpack("42", "s", NULL) ERROR[char 1 err 13] missfit of type unpack("42", "n") ERROR[char 1 err 13] missfit of type unpack("42", "b", NULL) ERROR[char 1 err 13] missfit of type unpack("42", "f", NULL) ERROR[char 1 err 13] missfit of type unpack("42", "[i]", NULL) ERROR[char 1 err 13] missfit of type unpack("42", "{si}", "foo", NULL) ERROR[char 1 err 13] missfit of type unpack("\"foo\"", "n") ERROR[char 1 err 13] missfit of type unpack("\"foo\"", "b", NULL) ERROR[char 1 err 13] missfit of type unpack("\"foo\"", "i", NULL) ERROR[char 1 err 13] missfit of type unpack("\"foo\"", "I", NULL) ERROR[char 1 err 13] missfit of type unpack("\"foo\"", "f", NULL) ERROR[char 1 err 13] missfit of type unpack("\"foo\"", "F", NULL) ERROR[char 1 err 13] missfit of type unpack("true", "s", NULL) ERROR[char 1 err 13] missfit of type unpack("true", "n") ERROR[char 1 err 13] missfit of type unpack("true", "i", NULL) ERROR[char 1 err 13] missfit of type unpack("true", "I", NULL) ERROR[char 1 err 13] missfit of type unpack("true", "f", NULL) ERROR[char 1 err 13] missfit of type unpack("true", "F", NULL) ERROR[char 1 err 13] missfit of type unpack("[42]", "[ii]", &xi[0], &xi[1]) ERROR[char 3 err 11] array too small unpack("{\"foo\":42}", "{si}", NULL, &xi[0]) ERROR[char 3 err 9] key is NULL unpack("{\"foo\":42}", "{si}", "baz", &xi[0]) ERROR[char 3 err 14] key not found unpack("[1,2,3]", "[iii!]", &xi[0], &xi[1], &xi[2]) SUCCESS i:1 i:2 i:3 unpack("[1,2,3]", "[ii!]", &xi[0], &xi[1]) ERROR[char 5 err 12] incomplete container unpack("[1,2,3]", "[ii]", &xi[0], &xi[1]) SUCCESS i:1 i:2 unpack("[1,2,3]", "[ii*]", &xi[0], &xi[1]) SUCCESS i:1 i:2 unpack("{\"foo\":42,\"baz\":45}", "{sisi}", "baz", &xi[0], "foo", &xi[1]) SUCCESS s:baz i:45 s:foo i:42 unpack("{\"foo\":42,\"baz\":45}", "{sisi*}", "baz", &xi[0], "foo", &xi[1]) SUCCESS s:baz i:45 s:foo i:42 unpack("{\"foo\":42,\"baz\":45}", "{sisi!}", "baz", &xi[0], "foo", &xi[1]) SUCCESS s:baz i:45 s:foo i:42 unpack("{\"foo\":42,\"baz\":45}", "{si}", "baz", &xi[0], "foo", &xi[1]) SUCCESS s:baz i:45 unpack("{\"foo\":42,\"baz\":45}", "{si*}", "baz", &xi[0], "foo", &xi[1]) SUCCESS s:baz i:45 unpack("{\"foo\":42,\"baz\":45}", "{si!}", "baz", &xi[0], "foo", &xi[1]) ERROR[char 5 err 12] incomplete container unpack("[1,{\"foo\":2,\"bar\":null},[3,4]]", "[i{sisn}[ii]]", &xi[0], "foo", &xi[1], "bar", &xi[2], &xi[3]) SUCCESS i:1 s:foo i:2 s:bar n i:3 i:4 unpack("[1,2,3]", "[ii!i]", &xi[0], &xi[1], &xi[2]) ERROR[char 5 err 5] invalid character unpack("[1,2,3]", "[ii*i]", &xi[0], &xi[1], &xi[2]) ERROR[char 5 err 5] invalid character unpack("{\"foo\":1,\"bar\":2}", "{si!si}", "foo", &xi[1], "bar", &xi[2]) ERROR[char 5 err 5] invalid character unpack("{\"foo\":1,\"bar\":2}", "{si*si}", "foo", &xi[1], "bar", &xi[2]) ERROR[char 5 err 5] invalid character unpack("{\"foo\":{\"baz\":null,\"bar\":null}}", "{s{sn!}}", "foo", "bar") ERROR[char 7 err 12] incomplete container unpack("[[1,2,3]]", "[[ii!]]", &xi[0], &xi[1]) ERROR[char 6 err 12] incomplete container unpack("{}", "{s?i}", "foo", &xi[0]) SUCCESS s:foo i:0 unpack("{\"foo\":1}", "{s?i}", "foo", &xi[0]) SUCCESS s:foo i:1 unpack("{}", "{s?[ii]s?{s{si!}}}", "foo", &xi[0], &xi[1], "bar", "baz", "quux", &xi[2]) SUCCESS s:foo i:0 i:0 s:bar s:baz s:quux i:0 unpack("{\"foo\":[1,2]}", "{s?[ii]s?{s{si!}}}", "foo", &xi[0], &xi[1], "bar", "baz", "quux", &xi[2]) SUCCESS s:foo i:1 i:2 s:bar s:baz s:quux i:0 unpack("{\"bar\":{\"baz\":{\"quux\":15}}}", "{s?[ii]s?{s{si!}}}", "foo", &xi[0], &xi[1], "bar", "baz", "quux", &xi[2]) SUCCESS s:foo i:0 i:0 s:bar s:baz s:quux i:15 unpack("{\"foo\":{\"bar\":4}}", "{s?{s?i}}", "foo", "bar", &xi[0]) SUCCESS s:foo s:bar i:4 unpack("{\"foo\":{}}", "{s?{s?i}}", "foo", "bar", &xi[0]) SUCCESS s:foo s:bar i:0 unpack("{}", "{s?{s?i}}", "foo", "bar", &xi[0]) SUCCESS s:foo s:bar i:0 unpack("{\"foo\":42,\"baz\":45}", "{s?isi!}", "baz", &xi[0], "foo", &xi[1]) SUCCESS s:baz i:45 s:foo i:42 unpack("{\"foo\":42}", "{s?isi!}", "baz", &xi[0], "foo", &xi[1]) SUCCESS s:baz i:0 s:foo i:42 unpack("\"Pz8_Pz8_P2hlbGxvPj4-Pj4-Pg\"", "y", &xy[0], &xz[0]) SUCCESS y/19:???????hello>>>>>>> unpack("\"\"", "y", &xy[0], &xz[0]) SUCCESS y/0: unpack("null", "y", &xy[0], &xz[0]) SUCCESS y/0: unpack("{\"foo\":\"Pz8_Pz8_P2hlbGxvPj4-Pj4-Pg\"}", "{s?y}", "foo", &xy[0], &xz[0]) SUCCESS s:foo y/19:???????hello>>>>>>> unpack("{\"foo\":\"\"}", "{s?y}", "foo", &xy[0], &xz[0]) SUCCESS s:foo y/0: unpack("{}", "{s?y}", "foo", &xy[0], &xz[0]) SUCCESS s:foo y/0: compare(null)(null) -> 0 / 1 compare(true)(true) -> 0 / 1 compare(false)(false) -> 0 / 1 compare(1)(1) -> 0 / 1 compare(1.0)(1.0) -> 0 / 1 compare("")("") -> 0 / 1 compare("hi")("hi") -> 0 / 1 compare({})({}) -> 0 / 1 compare({"a":true,"b":false})({"b":false,"a":true}) -> 0 / 1 compare([])([]) -> 0 / 1 compare([1,true,null])([1,true,null]) -> 0 / 1 compare(null)(true) -> -1 / 0 compare(null)(false) -> -1 / 0 compare(0)(1) -> -1 / 0 compare(1)(0) -> 1 / 0 compare(0)(true) -> 2 / 0 compare(0)(false) -> 2 / 0 compare(0)(null) -> 3 / 0 compare("hi")("hello") -> 4 / 0 compare("hello")("hi") -> -4 / 0 compare({})(null) -> 4 / 0 compare({})(true) -> 3 / 0 compare({})(1) -> 1 / 0 compare({})(1.0) -> 2 / 0 compare({})([]) -> -1 / 0 compare({})("x") -> -2 / 0 compare([1,true,null])([1,true]) -> 1 / 1 compare({"a":true,"b":false})({"a":true}) -> 1 / 1 compare({"a":true,"b":false})({"a":true,"c":false}) -> -1 / 0 compare({"a":true,"c":false})({"a":true,"b":false}) -> 1 / 0