summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTycho <work.tycho+git@gmail.com>2014-05-27 13:44:56 +0200
committerTycho <work.tycho+git@gmail.com>2014-05-27 13:46:22 +0200
commit19df18c46199f06f3bf2058cc0efee9126e7670a (patch)
tree786ebe6c351eee68dc02f685b1e4c2c982178288
parentinject TestGlobals.h correctly (diff)
downloadcuberite-19df18c46199f06f3bf2058cc0efee9126e7670a.tar
cuberite-19df18c46199f06f3bf2058cc0efee9126e7670a.tar.gz
cuberite-19df18c46199f06f3bf2058cc0efee9126e7670a.tar.bz2
cuberite-19df18c46199f06f3bf2058cc0efee9126e7670a.tar.lz
cuberite-19df18c46199f06f3bf2058cc0efee9126e7670a.tar.xz
cuberite-19df18c46199f06f3bf2058cc0efee9126e7670a.tar.zst
cuberite-19df18c46199f06f3bf2058cc0efee9126e7670a.zip
-rw-r--r--src/ChunkData.cpp4
-rw-r--r--src/Globals.h48
-rw-r--r--tests/ChunkData/ArraytoCoord.cpp2
-rw-r--r--tests/ChunkData/Coordinates.cpp2
-rw-r--r--tests/ChunkData/Copies.cpp2
-rw-r--r--tests/ChunkData/creatable.cpp2
-rw-r--r--tests/TestGlobals.h139
7 files changed, 40 insertions, 159 deletions
diff --git a/src/ChunkData.cpp b/src/ChunkData.cpp
index 79029f0cf..c41dcb265 100644
--- a/src/ChunkData.cpp
+++ b/src/ChunkData.cpp
@@ -1,9 +1,5 @@
-#ifdef TEST_GLOBALS
-#include "TestGlobals.h"
-#else
#include "Globals.h"
-#endif
#include "ChunkData.h"
cChunkData::cChunkData()
diff --git a/src/Globals.h b/src/Globals.h
index 71e9191e4..85cfd2f18 100644
--- a/src/Globals.h
+++ b/src/Globals.h
@@ -225,16 +225,28 @@ template class SizeChecker<UInt16, 2>;
+#ifndef TEST_GLOBALS
+ // Common headers (part 1, without macros):
+ #include "StringUtils.h"
+ #include "OSSupport/Sleep.h"
+ #include "OSSupport/CriticalSection.h"
+ #include "OSSupport/Semaphore.h"
+ #include "OSSupport/Event.h"
+ #include "OSSupport/Thread.h"
+ #include "OSSupport/File.h"
+ #include "MCLogger.h"
+#else
+ // Logging functions
+void inline LOGERROR(const char* a_Format, ...) FORMATSTRING(1,2);
-// Common headers (part 1, without macros):
-#include "StringUtils.h"
-#include "OSSupport/Sleep.h"
-#include "OSSupport/CriticalSection.h"
-#include "OSSupport/Semaphore.h"
-#include "OSSupport/Event.h"
-#include "OSSupport/Thread.h"
-#include "OSSupport/File.h"
-#include "MCLogger.h"
+void inline LOGERROR(const char* a_Format, ...)
+{
+ va_list argList;
+ va_start(argList, a_Format);
+ vprintf(a_Format, argList);
+ va_end(argList);
+}
+#endif
@@ -253,10 +265,22 @@ template class SizeChecker<UInt16, 2>;
#define FAST_FLOOR_DIV( x, div ) (((x) - (((x) < 0) ? ((div) - 1) : 0)) / (div))
// Own version of assert() that writes failed assertions to the log for review
-#ifdef _DEBUG
- #define ASSERT( x ) ( !!(x) || ( LOGERROR("Assertion failed: %s, file %s, line %i", #x, __FILE__, __LINE__ ), assert(0), 0 ) )
+#ifdef TEST_GLOBALS
+
+ class cAssertFailure
+ {
+ };
+
+ #define ASSERT(x) do { if (!(x)) { throw cAssertFailure();} } while (0)
+ #define testassert(x) do { if(!(x)) { exit(1); } } while (0)
+ #define CheckAsserts(x) do { try {x} catch (cAssertFailure) { break; } exit(1); } while (0)
+
#else
- #define ASSERT(x) ((void)(x))
+ #ifdef _DEBUG
+ #define ASSERT( x ) ( !!(x) || ( LOGERROR("Assertion failed: %s, file %s, line %i", #x, __FILE__, __LINE__ ), assert(0), 0 ) )
+ #else
+ #define ASSERT(x) ((void)(x))
+ #endif
#endif
// Pretty much the same as ASSERT() but stays in Release builds
diff --git a/tests/ChunkData/ArraytoCoord.cpp b/tests/ChunkData/ArraytoCoord.cpp
index 1138fb5b6..37533de77 100644
--- a/tests/ChunkData/ArraytoCoord.cpp
+++ b/tests/ChunkData/ArraytoCoord.cpp
@@ -1,5 +1,5 @@
-#include "TestGlobals.h"
+#include "Globals.h"
#include "ChunkData.h"
diff --git a/tests/ChunkData/Coordinates.cpp b/tests/ChunkData/Coordinates.cpp
index f02b68d40..938c66dcc 100644
--- a/tests/ChunkData/Coordinates.cpp
+++ b/tests/ChunkData/Coordinates.cpp
@@ -1,5 +1,5 @@
-#include "TestGlobals.h"
+#include "Globals.h"
#include "ChunkData.h"
diff --git a/tests/ChunkData/Copies.cpp b/tests/ChunkData/Copies.cpp
index b10ddb759..78a458f5b 100644
--- a/tests/ChunkData/Copies.cpp
+++ b/tests/ChunkData/Copies.cpp
@@ -1,5 +1,5 @@
-#include "TestGlobals.h"
+#include "Globals.h"
#include "ChunkData.h"
diff --git a/tests/ChunkData/creatable.cpp b/tests/ChunkData/creatable.cpp
index 74025cb14..1321bf49b 100644
--- a/tests/ChunkData/creatable.cpp
+++ b/tests/ChunkData/creatable.cpp
@@ -1,5 +1,5 @@
-#include "TestGlobals.h"
+#include "Globals.h"
#include "ChunkData.h"
int main(int argc, char** argv)
diff --git a/tests/TestGlobals.h b/tests/TestGlobals.h
deleted file mode 100644
index ea43de733..000000000
--- a/tests/TestGlobals.h
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
-#include <cstdarg>
-#include <cstdio>
-#include <cstdlib>
-
-
-// Compiler-dependent stuff:
-#if defined(_MSC_VER)
- // MSVC produces warning C4481 on the override keyword usage, so disable the warning altogether
- #pragma warning(disable:4481)
-
- // Disable some warnings that we don't care about:
- #pragma warning(disable:4100) // Unreferenced formal parameter
-
- // Useful warnings from warning level 4:
- #pragma warning(3 : 4127) // Conditional expression is constant
- #pragma warning(3 : 4189) // Local variable is initialized but not referenced
- #pragma warning(3 : 4245) // Conversion from 'type1' to 'type2', signed/unsigned mismatch
- #pragma warning(3 : 4310) // Cast truncates constant value
- #pragma warning(3 : 4389) // Signed/unsigned mismatch
- #pragma warning(3 : 4505) // Unreferenced local function has been removed
- #pragma warning(3 : 4701) // Potentially unitialized local variable used
- #pragma warning(3 : 4702) // Unreachable code
- #pragma warning(3 : 4706) // Assignment within conditional expression
-
- // Disabling this warning, because we know what we're doing when we're doing this:
- #pragma warning(disable: 4355) // 'this' used in initializer list
-
- // Disabled because it's useless:
- #pragma warning(disable: 4512) // 'class': assignment operator could not be generated - reported for each class that has a reference-type member
-
- // 2014_01_06 xoft: Disabled this warning because MSVC is stupid and reports it in obviously wrong places
- // #pragma warning(3 : 4244) // Conversion from 'type1' to 'type2', possible loss of data
-
- #define OBSOLETE __declspec(deprecated)
-
- // No alignment needed in MSVC
- #define ALIGN_8
- #define ALIGN_16
-
- #define FORMATSTRING(formatIndex, va_argsIndex)
-
- // MSVC has its own custom version of zu format
- #define SIZE_T_FMT "%Iu"
- #define SIZE_T_FMT_PRECISION(x) "%" #x "Iu"
- #define SIZE_T_FMT_HEX "%Ix"
-
- #define NORETURN __declspec(noreturn)
-
-#elif defined(__GNUC__)
-
- // TODO: Can GCC explicitly mark classes as abstract (no instances can be created)?
- #define abstract
-
- // override is part of c++11
- #if __cplusplus < 201103L
- #define override
- #endif
-
- #define OBSOLETE __attribute__((deprecated))
-
- #define ALIGN_8 __attribute__((aligned(8)))
- #define ALIGN_16 __attribute__((aligned(16)))
-
- // Some portability macros :)
- #define stricmp strcasecmp
-
- #define FORMATSTRING(formatIndex, va_argsIndex) __attribute__((format (printf, formatIndex, va_argsIndex)))
-
- #define SIZE_T_FMT "%zu"
- #define SIZE_T_FMT_PRECISION(x) "%" #x "zu"
- #define SIZE_T_FMT_HEX "%zx"
-
- #define NORETURN __attribute((__noreturn__))
-
-#else
-
- #error "You are using an unsupported compiler, you might need to #define some stuff here for your compiler"
-
- /*
- // Copy and uncomment this into another #elif section based on your compiler identification
-
- // Explicitly mark classes as abstract (no instances can be created)
- #define abstract
-
- // Mark virtual methods as overriding (forcing them to have a virtual function of the same signature in the base class)
- #define override
-
- // Mark functions as obsolete, so that their usage results in a compile-time warning
- #define OBSOLETE
-
- // Mark types / variables for alignment. Do the platforms need it?
- #define ALIGN_8
- #define ALIGN_16
- */
-
-#endif
-
-
-
-// Integral types with predefined sizes:
-typedef long long Int64;
-typedef int Int32;
-typedef short Int16;
-
-typedef unsigned long long UInt64;
-typedef unsigned int UInt32;
-typedef unsigned short UInt16;
-
-typedef unsigned char Byte;
-
-class cAssertFailure
-{
-};
-
-#define ASSERT(x) do { if (!(x)) { throw cAssertFailure();} } while (0)
-#define testassert(x) do { if(!(x)) { exit(1); } } while (0)
-#define CheckAsserts(x) do { try {x} catch (cAssertFailure) { break; } exit(1); } while (0)
-
-#ifndef TOLUA_TEMPLATE_BIND
-#define TOLUA_TEMPLATE_BIND(x)
-#endif
-
-// A macro that is used to mark unused function parameters, to avoid pedantic warnings in gcc
-#define UNUSED(X) (void)(X)
-
-// Logging functions
-void inline LOGERROR(const char* a_Format, ...) FORMATSTRING(1,2);
-
-void inline LOGERROR(const char* a_Format, ...)
-{
- va_list argList;
- va_start(argList, a_Format);
- vprintf(a_Format, argList);
- va_end(argList);
-}
-
-