From ca5a8bfabdd8d1d7c54ef81c4f97100fa8e90743 Mon Sep 17 00:00:00 2001 From: NatureFreshMilk Date: Thu, 7 Nov 2019 11:01:02 +0100 Subject: [PATCH] travis tests --- .travis.yml | 21 +++++++++++++++++++++ init.lua | 4 ++++ integration_test.lua | 25 +++++++++++++++++++++++++ test.sh | 20 ++++++++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 .travis.yml create mode 100644 integration_test.lua create mode 100755 test.sh diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..fb6465b --- /dev/null +++ b/.travis.yml @@ -0,0 +1,21 @@ +jobs: + include: + - stage: luacheck + language: generic + sudo: false + addons: + apt: + packages: + - luarocks + before_install: + - luarocks install --local luacheck + script: + - $HOME/.luarocks/bin/luacheck --no-color . + + - stage: integration test + language: generic + services: + - docker + script: + - ./test.sh + diff --git a/init.lua b/init.lua index 0b09106..ee6be4a 100644 --- a/init.lua +++ b/init.lua @@ -41,4 +41,8 @@ dofile(MP.."/chatcmd.lua") dofile(MP.."/builtin.lua") dofile(MP.."/protector.lua") +if minetest.settings:get_bool("enable_xp_redo_integration_test") then + dofile(MP.."/integration_test.lua") +end + print("[OK] XP-Redo") diff --git a/integration_test.lua b/integration_test.lua new file mode 100644 index 0000000..65e9dfd --- /dev/null +++ b/integration_test.lua @@ -0,0 +1,25 @@ + +minetest.log("warning", "[TEST] integration-test enabled!") + +minetest.register_on_mods_loaded(function() + minetest.after(1, function() + + local data = minetest.write_json({ success = true }, true); + local file = io.open(minetest.get_worldpath().."/integration_test.json", "w" ); + if file then + file:write(data) + file:close() + end + + file = io.open(minetest.get_worldpath().."/registered_nodes.txt", "w" ); + if file then + for name in pairs(minetest.registered_nodes) do + file:write(name .. '\n') + end + file:close() + end + + minetest.log("warning", "[TEST] integration tests done!") + minetest.request_shutdown("success") + end) +end) diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..1a5882b --- /dev/null +++ b/test.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# simple integration test + +CFG=/tmp/minetest.conf +MTDIR=/tmp/mt +WORLDDIR=${MTDIR}/worlds/world + +cat < ${CFG} + enable_xp_redo_integration_test = true +EOF + +mkdir -p ${WORLDDIR} +chmod 777 ${MTDIR} -R +docker run --rm -it \ + -v ${CFG}:/etc/minetest/minetest.conf:ro \ + -v ${MTDIR}:/var/lib/minetest/.minetest \ + -v $(pwd):/var/lib/minetest/.minetest/worlds/world/worldmods/epic \ + registry.gitlab.com/minetest/minetest/server:5.0.1 + +test -f ${WORLDDIR}/integration_test.json && exit 0 || exit 1