X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ftest.cpp;h=072bda8ef79ab63bd5abae70662328667918db68;hb=00fc0babe0c6c5464fa9ffbc5a257b1e2aa93111;hp=30252d85ba1842514a4989ccaaa747e04ed519bb;hpb=5da6896d51ae3ee5140dc1041eff44a616751231;p=oweals%2Fminetest.git diff --git a/src/test.cpp b/src/test.cpp index 30252d85b..072bda8ef 100644 --- a/src/test.cpp +++ b/src/test.cpp @@ -440,7 +440,7 @@ struct TestPath: public TestBase "some multiline text\n" \ " with leading whitespace!\n" \ "\"\"\"\n" \ - "np_terrain = 5, 40, (250, 250, 250), 12345, 5, 0.7\n" \ + "np_terrain = 5, 40, (250, 250, 250), 12341, 5, 0.7, 2.4\n" \ "zoop = true" #define TEST_CONFIG_TEXT_AFTER \ @@ -452,7 +452,6 @@ struct TestPath: public TestBase "coord = (1, 2, 4.5)\n" \ " # this is just a comment\n" \ "this is an invalid line\n" \ - "asdf = sdfghj\n" \ "asdf = {\n" \ " a = 5\n" \ " bb = 2.5\n" \ @@ -467,11 +466,13 @@ struct TestPath: public TestBase " with leading whitespace!\n" \ "\"\"\"\n" \ "np_terrain = {\n" \ + " flags = defaults\n" \ + " lacunarity = 2.4\n" \ " octaves = 6\n" \ " offset = 3.5\n" \ " persistence = 0.7\n" \ " scale = 40\n" \ - " seed = 12345\n" \ + " seed = 12341\n" \ " spread = (250,250,250)\n" \ "}\n" \ "zoop = true\n" \ @@ -479,10 +480,6 @@ struct TestPath: public TestBase "floaty_thing_2 = 1.2\n" \ "groupy_thing = {\n" \ " animals = cute\n" \ - " animals = {\n" \ - " cat = meow\n" \ - " dog = woof\n" \ - " }\n" \ " num_apples = 4\n" \ " num_oranges = 53\n" \ "}\n" @@ -491,6 +488,7 @@ struct TestSettings: public TestBase { void Run() { + try { Settings s; // Test reading of settings @@ -524,8 +522,6 @@ struct TestSettings: public TestBase UASSERT(group->getS16("a") == 5); UASSERT(fabs(group->getFloat("bb") - 2.5) < 0.001); - s.set("asdf", "sdfghj"); - Settings *group3 = new Settings; group3->set("cat", "meow"); group3->set("dog", "woof"); @@ -534,18 +530,24 @@ struct TestSettings: public TestBase group2->setS16("num_apples", 4); group2->setS16("num_oranges", 53); group2->setGroup("animals", group3); - group2->set("animals", "cute"); + group2->set("animals", "cute"); //destroys group 3 s.setGroup("groupy_thing", group2); + // Test set failure conditions + UASSERT(s.set("Zoop = Poop\nsome_other_setting", "false") == false); + UASSERT(s.set("sneaky", "\"\"\"\njabberwocky = false") == false); + UASSERT(s.set("hehe", "asdfasdf\n\"\"\"\nsomething = false") == false); + // Test multiline settings UASSERT(group->get("ccc") == "testy\n testa "); - s.setGroup("asdf", NULL); UASSERT(s.get("blarg") == "some multiline text\n" " with leading whitespace!"); // Test NoiseParams + UASSERT(s.getEntry("np_terrain").is_group == false); + NoiseParams np; UASSERT(s.getNoiseParams("np_terrain", np) == true); UASSERT(fabs(np.offset - 5) < 0.001); @@ -553,7 +555,7 @@ struct TestSettings: public TestBase UASSERT(fabs(np.spread.X - 250) < 0.001); UASSERT(fabs(np.spread.Y - 250) < 0.001); UASSERT(fabs(np.spread.Z - 250) < 0.001); - UASSERT(np.seed == 12345); + UASSERT(np.seed == 12341); UASSERT(np.octaves == 5); UASSERT(fabs(np.persist - 0.7) < 0.001); @@ -561,6 +563,8 @@ struct TestSettings: public TestBase np.octaves = 6; s.setNoiseParams("np_terrain", np); + UASSERT(s.getEntry("np_terrain").is_group == true); + // Test writing std::ostringstream os(std::ios_base::binary); is.clear(); @@ -570,6 +574,9 @@ struct TestSettings: public TestBase //printf(">>>> expected config:\n%s\n", TEST_CONFIG_TEXT_AFTER); //printf(">>>> actual config:\n%s\n", os.str().c_str()); UASSERT(os.str() == TEST_CONFIG_TEXT_AFTER); + } catch (SettingNotFoundException &e) { + UASSERT(!"Setting not found!"); + } } };