summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am4
-rw-r--r--src/main.cpp17
2 files changed, 21 insertions, 0 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 204c21bfc..62b762af6 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -21,6 +21,10 @@ else
manaplus_SOURCES =
endif
+if ENABLE_UNITTESTS
+manaplus_CXXFLAGS += -DUNITTESTS
+endif
+
if USE_INTERNALGUICHAN
manaplus_CXXFLAGS += -DUSE_INTERNALGUICHAN
manaplus_SOURCES += guichan/include/guichan/actionevent.hpp \
diff --git a/src/main.cpp b/src/main.cpp
index dc87ca9e0..f30e7bc62 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -35,6 +35,10 @@
#include "utils/stringutils.h"
#include "utils/xml.h"
+#ifdef UNITTESTS
+#include <gtest/gtest.h>
+#endif
+
#ifdef __MINGW32__
#include <windows.h>
#endif
@@ -210,6 +214,8 @@ static void parseOptions(int argc, char *argv[], Client::Options &options)
extern "C" char const *_nl_locale_name_default(void);
#endif
+#ifndef UNITTESTS
+// main for normal game usage
int main(int argc, char *argv[])
{
#if defined(__MINGW32__)
@@ -262,3 +268,14 @@ int main(int argc, char *argv[])
return client.testsExec();
}
}
+
+#else
+
+// main for unit testing
+int main(int argc, char **argv)
+{
+ ::testing::InitGoogleTest(&argc, argv);
+ return RUN_ALL_TESTS();
+}
+
+#endif