summaryrefslogtreecommitdiff
path: root/src/unittest/test_nodedef.cpp
diff options
context:
space:
mode:
authorkwolekr <kwolekr@minetest.net>2015-04-26 01:24:19 -0400
committerkwolekr <kwolekr@minetest.net>2015-04-26 15:08:54 -0400
commit7220ca906dfc804bd508336f5bed252bcec62ae0 (patch)
tree6a61f536227510a57b023019271084450042a7ad /src/unittest/test_nodedef.cpp
parent45a77c8bf1a744edc1642d717579281cf988f8dd (diff)
downloadminetest-7220ca906dfc804bd508336f5bed252bcec62ae0.tar.gz
minetest-7220ca906dfc804bd508336f5bed252bcec62ae0.tar.bz2
minetest-7220ca906dfc804bd508336f5bed252bcec62ae0.zip
Tests: Modularize unit testing
Split unit tests into separate files under src/unittest/ Give better unittest diagnostics Clean up some code
Diffstat (limited to 'src/unittest/test_nodedef.cpp')
-rw-r--r--src/unittest/test_nodedef.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/unittest/test_nodedef.cpp b/src/unittest/test_nodedef.cpp
new file mode 100644
index 000000000..85093f52f
--- /dev/null
+++ b/src/unittest/test_nodedef.cpp
@@ -0,0 +1,66 @@
+/*
+Minetest
+Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#include "test.h"
+
+#include <sstream>
+
+#include "gamedef.h"
+#include "nodedef.h"
+#include "network/networkprotocol.h"
+
+class TestNodeDef : public TestBase {
+public:
+ TestNodeDef() { TestManager::registerTestModule(this); }
+ const char *getName() { return "TestNodeDef"; }
+
+ void runTests(IGameDef *gamedef);
+
+ void testContentFeaturesSerialization();
+};
+
+static TestNodeDef g_test_instance;
+
+void TestNodeDef::runTests(IGameDef *gamedef)
+{
+ TEST(testContentFeaturesSerialization);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+void TestNodeDef::testContentFeaturesSerialization()
+{
+ ContentFeatures f;
+
+ f.name = "default:stone";
+ for (int i = 0; i < 6; i++)
+ f.tiledef[i].name = "default_stone.png";
+ f.is_ground_content = true;
+
+ std::ostringstream os(std::ios::binary);
+ f.serialize(os, LATEST_PROTOCOL_VERSION);
+ //verbosestream<<"Test ContentFeatures size: "<<os.str().size()<<std::endl;
+
+ std::istringstream is(os.str(), std::ios::binary);
+ ContentFeatures f2;
+ f2.deSerialize(is);
+
+ UASSERT(f.walkable == f2.walkable);
+ UASSERT(f.node_box.type == f2.node_box.type);
+}