summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tests/ChunkBuffer/Coordinates.cpp95
-rw-r--r--tests/TestGlobals.h11
2 files changed, 100 insertions, 6 deletions
diff --git a/tests/ChunkBuffer/Coordinates.cpp b/tests/ChunkBuffer/Coordinates.cpp
index d61eda7ad..a6a8aa18f 100644
--- a/tests/ChunkBuffer/Coordinates.cpp
+++ b/tests/ChunkBuffer/Coordinates.cpp
@@ -7,9 +7,100 @@
int main(int argc, char** argv)
{
cChunkBuffer buffer;
+
+ // Empty chunks
buffer.SetBlock(0,0,0, 0xAB);
- assert(buffer.GetBlock(0,0,0) == 0xAB);
+ testassert(buffer.GetBlock(0,0,0) == 0xAB);
buffer.SetMeta(0,16,0, 0xC);
- assert(buffer.GetMeta(0,16,0) == 0xC);
+ testassert(buffer.GetMeta(0,16,0) == 0xC);
+
+ // loaded but not written segments
+ testassert(buffer.GetBlock(1,0,0) == 0x0);
+ testassert(buffer.GetMeta(1,16,0) == 0x0);
+
+ // Notloaded segments
+ testassert(buffer.GetBlock(0,32,0) == 0x0);
+ testassert(buffer.GetMeta(0,48,0) == 0x0);
+
+ // Out of Range
+ CheckAsserts(
+ buffer.SetBlock(-1, 0, 0, 0);
+ );
+ CheckAsserts(
+ buffer.SetBlock(0, -1, 0, 0);
+ );
+ CheckAsserts(
+ buffer.SetBlock(0, 0, -1, 0);
+ );
+ CheckAsserts(
+ buffer.SetBlock(256, 0, 0, 0);
+ );
+ CheckAsserts(
+ buffer.SetBlock(0, 256, 0, 0);
+ );
+ CheckAsserts(
+ buffer.SetBlock(0, 0, 256, 0);
+ );
+
+ // Out of Range
+ CheckAsserts(
+ buffer.GetBlock(-1, 0, 0);
+ );
+ CheckAsserts(
+ buffer.GetBlock(0, -1, 0);
+ );
+ CheckAsserts(
+ buffer.GetBlock(0, 0, -1);
+ );
+ CheckAsserts(
+ buffer.GetBlock(256, 0, 0);
+ );
+ CheckAsserts(
+ buffer.GetBlock(0, 256, 0);
+ );
+ CheckAsserts(
+ buffer.GetBlock(0, 0, 256);
+ );
+
+ // Out of Range
+ CheckAsserts(
+ buffer.SetMeta(-1, 0, 0, 0);
+ );
+ CheckAsserts(
+ buffer.SetMeta(0, -1, 0, 0);
+ );
+ CheckAsserts(
+ buffer.SetMeta(0, 0, -1, 0);
+ );
+ CheckAsserts(
+ buffer.SetMeta(256, 0, 0, 0);
+ );
+ CheckAsserts(
+ buffer.SetMeta(0, 256, 0, 0);
+ );
+ CheckAsserts(
+ buffer.SetMeta(0, 0, 256, 0);
+ );
+
+ // Out of Range
+ CheckAsserts(
+ buffer.GetMeta(-1, 0, 0);
+ );
+ CheckAsserts(
+ buffer.GetMeta(0, -1, 0);
+ );
+ CheckAsserts(
+ buffer.GetMeta(0, 0, -1);
+ );
+ CheckAsserts(
+ buffer.GetMeta(256, 0, 0);
+ );
+ CheckAsserts(
+ buffer.GetMeta(0, 256, 0);
+ );
+ CheckAsserts(
+ buffer.GetMeta(0, 0, 256);
+ );
+
return 0;
}
diff --git a/tests/TestGlobals.h b/tests/TestGlobals.h
index cb8fc9376..bb25bd20a 100644
--- a/tests/TestGlobals.h
+++ b/tests/TestGlobals.h
@@ -1,8 +1,8 @@
-#include <cassert>
#include <cstdarg>
#include <cstdio>
+#include <cstdlib>
// Compiler-dependent stuff:
@@ -110,10 +110,13 @@ typedef unsigned short UInt16;
typedef unsigned char Byte;
+class cAssertFailure
+{
+};
-
-#define ASSERT(x) assert(x)
-
+#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)