assert(info.title == game_conf:get("title"))
end
unittests.register("test_game_info", test_game_info)
+
+local function test_mapgen_edges(cb)
+ -- Test that the map can extend to the expected edges and no further.
+ local min_edge, max_edge = minetest.get_mapgen_edges()
+ local min_finished = {}
+ local max_finished = {}
+ local function finish()
+ if #min_finished ~= 1 then
+ return cb("Expected 1 block to emerge around mapgen minimum edge")
+ end
+ if min_finished[1] ~= (min_edge / minetest.MAP_BLOCKSIZE):floor() then
+ return cb("Expected block within minimum edge to emerge")
+ end
+ if #max_finished ~= 1 then
+ return cb("Expected 1 block to emerge around mapgen maximum edge")
+ end
+ if max_finished[1] ~= (max_edge / minetest.MAP_BLOCKSIZE):floor() then
+ return cb("Expected block within maximum edge to emerge")
+ end
+ return cb()
+ end
+ local emerges_left = 2
+ local function emerge_block(blockpos, action, blocks_left, finished)
+ if action ~= minetest.EMERGE_CANCELLED then
+ table.insert(finished, blockpos)
+ end
+ if blocks_left == 0 then
+ emerges_left = emerges_left - 1
+ if emerges_left == 0 then
+ return finish()
+ end
+ end
+ end
+ minetest.emerge_area(min_edge:subtract(1), min_edge, emerge_block, min_finished)
+ minetest.emerge_area(max_edge, max_edge:add(1), emerge_block, max_finished)
+end
+unittests.register("test_mapgen_edges", test_mapgen_edges, {map=true, async=true})