From 8908a9101608d3343023b470743ef63f1c44b0b7 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Thu, 26 May 2022 15:45:34 +0200 Subject: Get rid of node metadata when it becomes empty fixes #8943 --- games/devtest/mods/unittests/misc.lua | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'games/devtest') diff --git a/games/devtest/mods/unittests/misc.lua b/games/devtest/mods/unittests/misc.lua index ba980866a..4b53004b1 100644 --- a/games/devtest/mods/unittests/misc.lua +++ b/games/devtest/mods/unittests/misc.lua @@ -48,3 +48,23 @@ local function test_v3s16_metatable(player, pos) assert(vector.check(found_pos)) end unittests.register("test_v3s16_metatable", test_v3s16_metatable, {map=true}) + +local function test_clear_meta(_, pos) + local ref = core.get_meta(pos) + + for way = 1, 3 do + ref:set_string("foo", "bar") + assert(ref:contains("foo")) + + if way == 1 then + ref:from_table({}) + elseif way == 2 then + ref:from_table(nil) + else + ref:set_string("foo", "") + end + + assert(#core.find_nodes_with_meta(pos, pos) == 0, "clearing failed " .. way) + end +end +unittests.register("test_clear_meta", test_clear_meta, {map=true}) -- cgit v1.2.3