summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2024-07-02 23:41:38 +0800
committerruki <[email protected]>2024-07-02 23:41:38 +0800
commita8bf62a7022a9bdcbed2e0c3a03abe37153962de (patch)
tree8ad888722c4e6eeb66409a5f924fbb9042710583
parent6289723f9bd7dbc44bdcfa32ad4fe9bece0e3840 (diff)
fix null for test
-rwxr-xr-xtests/modules/json/test.lua20
-rw-r--r--xmake/core/base/json.lua1
-rw-r--r--xmake/core/sandbox/modules/import/core/base/json.lua1
3 files changed, 5 insertions, 17 deletions
diff --git a/tests/modules/json/test.lua b/tests/modules/json/test.lua
index ad0e84ac6..a09f0918a 100755
--- a/tests/modules/json/test.lua
+++ b/tests/modules/json/test.lua
@@ -1,21 +1,7 @@
import("core.base.json")
local json_null = json.null
-local json_pure_null = {}
-debug.setmetatable(json_pure_null, {
- __is_json_null = true,
- __eq = function (obj)
- if type(obj) == "table" then
- local mt = debug.getmetatable(obj)
- if mt and mt.__is_json_null then
- return true
- end
- end
- return false
- end,
- __tostring = function()
- return "null"
- end})
+local json_pure_null = json.purenull
function json_decode(jsonstr)
return json.decode(jsonstr)
@@ -59,7 +45,7 @@ function test_pure_json_decode(t)
t:are_equal(json_pure_decode('[]'), {})
t:are_equal(json.is_marked_as_array(json_pure_decode('[]')), true)
t:are_equal(not json.is_marked_as_array(json_pure_decode('{}')), true)
--- t:are_equal(json_pure_decode('{"a":1, "b":"2", "c":true, "d":false, "e":null, "f":[]}'), {a = 1, b = "2", c = true, d = false, e = json_pure_null, f = {}})
+ t:are_equal(json_pure_decode('{"a":1, "b":"2", "c":true, "d":false, "e":null, "f":[]}'), {a = 1, b = "2", c = true, d = false, e = json_pure_null, f = {}})
t:are_equal(json_pure_decode('{"a":[], "b":[1,2], "c":{"a":1}}'), {a = {}, b = {1,2}, c = {a = 1}})
t:are_equal(json_pure_decode('[1,"2"]'), {1, "2"})
t:are_equal(json_pure_decode('[1,"2", {"a":1, "b":true}]'), {1, "2", {a = 1, b = true}})
@@ -69,7 +55,7 @@ end
function test_pure_json_encode(t)
t:are_equal(json_pure_encode({}), '{}')
t:are_equal(json_pure_encode(json.mark_as_array({})), '[]')
--- t:are_equal(json_pure_encode({json_pure_null, 1, "2", false, true}), '[null,1,"2",false,true]')
+ t:are_equal(json_pure_encode({json_pure_null, 1, "2", false, true}), '[null,1,"2",false,true]')
t:are_equal(json_pure_encode({1, "2", {a = 1}}), '[1,"2",{"a":1}]')
t:are_equal(json_pure_encode({1, "2", {b = true}}), '[1,"2",{"b":true}]')
t:are_equal(json_pure_encode(json.mark_as_array({1, 0xa, 0xdeadbeef, 0xffffffff, -1})), '[1,10,3735928559,4294967295,-1]')
diff --git a/xmake/core/base/json.lua b/xmake/core/base/json.lua
index 487e4b062..b68751627 100644
--- a/xmake/core/base/json.lua
+++ b/xmake/core/base/json.lua
@@ -47,6 +47,7 @@ else
__tostring = function()
return "null"
end})
+ json.purenull = json.null
end
function json._pure_kind_of(obj)
diff --git a/xmake/core/sandbox/modules/import/core/base/json.lua b/xmake/core/sandbox/modules/import/core/base/json.lua
index ed551993d..68f70a331 100644
--- a/xmake/core/sandbox/modules/import/core/base/json.lua
+++ b/xmake/core/sandbox/modules/import/core/base/json.lua
@@ -27,6 +27,7 @@ local raise = require("sandbox/modules/raise")
-- inherit some builtin interfaces
sandbox_core_base_json.null = json.null
+sandbox_core_base_json.purenull = json.purenull
sandbox_core_base_json.mark_as_array = json.mark_as_array
sandbox_core_base_json.is_marked_as_array = json.is_marked_as_array