aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoic Blot <loic.blot@unix-experience.fr>2015-02-19 09:38:01 +0100
committerLoic Blot <loic.blot@unix-experience.fr>2015-02-21 11:04:19 +0100
commitb3aeba684b4e27e9fdf2c07949750bb567e40d6b (patch)
tree73a97bc7d155174523cac1999274348c5e3d1b30
parent38e62805527b774e478617d9781bde72ce2bdcb9 (diff)
downloadminetest-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.txt6
-rw-r--r--src/main.cpp23
-rw-r--r--src/test.cpp14
-rwxr-xr-xutil/travis/script.sh6
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