]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/test.cpp
Clean up EmergeManager, do initial work on Mapgen configuration
[dragonfireclient.git] / src / test.cpp
index ee77d0dc83a2bbf44907878179f99855ac91b5f7..bc0692a78325f05ee5fcfb6fac7d2d81b4619081 100644 (file)
@@ -41,6 +41,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "util/numeric.h"
 #include "util/serialize.h"
 #include "noise.h" // PseudoRandom used for random data for compression
+#include "clientserver.h" // LATEST_PROTOCOL_VERSION
 
 /*
        Asserts that the exception occurs
@@ -314,6 +315,26 @@ struct TestSerialization: public TestBase
        }
 };
 
+struct TestNodedefSerialization: public TestBase
+{
+       void Run()
+       {
+               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);
+       }
+};
+
 struct TestCompress: public TestBase
 {
        void Run()
@@ -417,7 +438,7 @@ struct TestCompress: public TestBase
 
                }
 
-               // Test zlib wrapper with large amounts of data (larger than it's
+               // Test zlib wrapper with large amounts of data (larger than its
                // internal buffers)
                {
                        infostream<<"Test: Testing zlib wrappers with a large amount "
@@ -698,6 +719,7 @@ struct TestInventory: public TestBase
        {
                std::string serialized_inventory =
                "List 0 32\n"
+               "Width 3\n"
                "Empty\n"
                "Empty\n"
                "Empty\n"
@@ -735,6 +757,7 @@ struct TestInventory: public TestBase
                
                std::string serialized_inventory_2 =
                "List main 32\n"
+               "Width 5\n"
                "Empty\n"
                "Empty\n"
                "Empty\n"
@@ -778,6 +801,8 @@ struct TestInventory: public TestBase
                inv.getList("0")->setName("main");
                UASSERT(!inv.getList("0"));
                UASSERT(inv.getList("main"));
+               UASSERT(inv.getList("main")->getWidth() == 3);
+               inv.getList("main")->setWidth(5);
                std::ostringstream inv_os(std::ios::binary);
                inv.serialize(inv_os);
                UASSERT(inv_os.str() == serialized_inventory_2);
@@ -1732,6 +1757,7 @@ void run_tests()
        TEST(TestSettings);
        TEST(TestCompress);
        TEST(TestSerialization);
+       TEST(TestNodedefSerialization);
        TESTPARAMS(TestMapNode, ndef);
        TESTPARAMS(TestVoxelManipulator, ndef);
        TESTPARAMS(TestVoxelAlgorithms, ndef);