diff options
author | Loic Blot <loic.blot@unix-experience.fr> | 2015-02-19 09:38:01 +0100 |
---|---|---|
committer | Loic Blot <loic.blot@unix-experience.fr> | 2015-02-21 11:04:19 +0100 |
commit | b3aeba684b4e27e9fdf2c07949750bb567e40d6b (patch) | |
tree | 73a97bc7d155174523cac1999274348c5e3d1b30 | |
parent | 38e62805527b774e478617d9781bde72ce2bdcb9 (diff) | |
download | minetest-b3aeba684b4e27e9fdf2c07949750bb567e40d6b.tar.gz minetest-b3aeba684b4e27e9fdf2c07949750bb567e40d6b.tar.bz2 minetest-b3aeba684b4e27e9fdf2c07949750bb567e40d6b.zip |
Unit tests must be done at integration process.
* Remove --enable-unittests and --disable-unittests and add --do-unittests function
* --do-unittests function will exit 0 on success.
* minetest and minetestserver binaries are launched with --do-unittests in travis build.
-rw-r--r-- | src/CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/main.cpp | 23 | ||||
-rw-r--r-- | src/test.cpp | 14 | ||||
-rwxr-xr-x | util/travis/script.sh | 6 |
4 files changed, 21 insertions, 28 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 929dbacad..ce1cc30bf 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -355,6 +355,10 @@ add_subdirectory(jthread) add_subdirectory(script) add_subdirectory(util) +set (unittests_SRCS + test.cpp +) + set(common_SRCS ban.cpp base64.cpp @@ -422,7 +426,6 @@ set(common_SRCS sound.cpp staticobject.cpp subgame.cpp - test.cpp tool.cpp treegen.cpp version.cpp @@ -435,6 +438,7 @@ set(common_SRCS ${JTHREAD_SRCS} ${common_SCRIPT_SRCS} ${UTIL_SRCS} + ${unittests_SRCS} ) # This gives us the icon and file version information diff --git a/src/main.cpp b/src/main.cpp index 092fa9e17..33cb34f68 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -17,19 +17,6 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef NDEBUG - /*#ifdef _WIN32 - #pragma message ("Disabling unit tests") - #else - #warning "Disabling unit tests" - #endif*/ - // Disable unit tests - #define ENABLE_TESTS 0 -#else - // Enable unit tests - #define ENABLE_TESTS 1 -#endif - #ifdef _MSC_VER #ifndef SERVER // Dedicated server isn't linked with Irrlicht #pragma comment(lib, "Irrlicht.lib") @@ -279,9 +266,9 @@ int main(int argc, char *argv[]) #ifndef __ANDROID__ // Run unit tests - if ((ENABLE_TESTS && cmd_args.getFlag("disable-unittests") == false) - || cmd_args.getFlag("enable-unittests") == true) { + if (cmd_args.getFlag("do-unittests")) { run_tests(); + return 0; } #endif @@ -352,10 +339,8 @@ static void set_allowed_options(OptionList *allowed_options) _("Load configuration from specified file")))); allowed_options->insert(std::make_pair("port", ValueSpec(VALUETYPE_STRING, _("Set network port (UDP)")))); - allowed_options->insert(std::make_pair("disable-unittests", ValueSpec(VALUETYPE_FLAG, - _("Disable unit tests")))); - allowed_options->insert(std::make_pair("enable-unittests", ValueSpec(VALUETYPE_FLAG, - _("Enable unit tests")))); + allowed_options->insert(std::make_pair("do-unittests", ValueSpec(VALUETYPE_FLAG, + _("Run the unit tests and exit")))); allowed_options->insert(std::make_pair("map-dir", ValueSpec(VALUETYPE_STRING, _("Same as --world (deprecated)")))); allowed_options->insert(std::make_pair("world", ValueSpec(VALUETYPE_STRING, diff --git a/src/test.cpp b/src/test.cpp index d8ab6336f..40943035d 100644 --- a/src/test.cpp +++ b/src/test.cpp @@ -2132,9 +2132,9 @@ void run_tests() TEST(TestCollision); if(INTERNET_SIMULATOR == false){ TEST(TestSocket); - dout_con<<"=== BEGIN RUNNING UNIT TESTS FOR CONNECTION ==="<<std::endl; + dout_con << "=== BEGIN RUNNING UNIT TESTS FOR CONNECTION ===" << std::endl; TEST(TestConnection); - dout_con<<"=== END RUNNING UNIT TESTS FOR CONNECTION ==="<<std::endl; + dout_con << "=== END RUNNING UNIT TESTS FOR CONNECTION ===" << std::endl; } log_set_lev_silence(LMT_ERROR, false); @@ -2142,13 +2142,13 @@ void run_tests() delete idef; delete ndef; - if(tests_failed == 0){ - infostream<<"run_tests(): "<<tests_failed<<" / "<<tests_run<<" tests failed."<<std::endl; - infostream<<"run_tests() passed."<<std::endl; + if(tests_failed == 0) { + actionstream << "run_tests(): " << tests_failed << " / " << tests_run << " tests failed." << std::endl; + actionstream << "run_tests() passed." << std::endl; return; } else { - errorstream<<"run_tests(): "<<tests_failed<<" / "<<tests_run<<" tests failed."<<std::endl; - errorstream<<"run_tests() aborting."<<std::endl; + errorstream << "run_tests(): " << tests_failed << " / " << tests_run << " tests failed." << std::endl; + errorstream << "run_tests() aborting." << std::endl; abort(); } } diff --git a/util/travis/script.sh b/util/travis/script.sh index c37816cee..437cf1ac5 100755 --- a/util/travis/script.sh +++ b/util/travis/script.sh @@ -3,8 +3,12 @@ if [ $WINDOWS = "no" ]; then mkdir -p travisbuild cd travisbuild - cmake -DENABLE_GETTEXT=1 -DENABLE_LEVELDB=1 -DENABLE_REDIS=1 .. + cmake -DENABLE_GETTEXT=1 -DENABLE_LEVELDB=1 -DENABLE_REDIS=1 -DCMAKE_BUILD_TYPE=Debug .. make -j2 + echo "Running unit tests for minetest" + ../bin/minetest --do-unittests + echo "Running unit tests for minetestserver" + ../bin/minetestserver --do-unittests else [ $CC = "clang" ] && exit 1 # Not supposed to happen # We need to have our build directory outside of the minetest directory because |