diff --git a/test/tests/IniWriterTest.cpp b/test/tests/IniWriterTest.cpp index b83a41a1f4..58e0e4b9ef 100644 --- a/test/tests/IniWriterTest.cpp +++ b/test/tests/IniWriterTest.cpp @@ -3,6 +3,7 @@ #include "openrct2/config/ConfigEnum.hpp" #include "openrct2/config/IniWriter.hpp" #include "openrct2/core/MemoryStream.h" +#include "openrct2/platform/platform.h" class IniWriterTest : public testing::Test { @@ -33,11 +34,12 @@ TEST_F(IniWriterTest, create_one_section) iw->WriteSection("OpenRCT2"); int8_t null_terminator = 0; ms->Write(&null_terminator, 1); - ASSERT_EQ(ms->GetPosition(), 12); - ASSERT_EQ(ms->GetLength(), 12); + ASSERT_GE(ms->GetPosition(), 12); + ASSERT_LE(ms->GetPosition(), 13); // Accomodate for varying-sized newline (Windows) + ASSERT_EQ(ms->GetLength(), ms->GetPosition()); ms->SetPosition(0); const char * ini = (const char *)ms->ReadString(); - ASSERT_STREQ(ini, "[OpenRCT2]\n"); + ASSERT_STREQ(ini, "[OpenRCT2]" PLATFORM_NEWLINE); Memory::Free(ini); delete iw; delete ms; @@ -55,11 +57,13 @@ TEST_F(IniWriterTest, create_multiple_sections) iw->WriteSection("OpenRCT4"); int8_t null_terminator = 0; ms->Write(&null_terminator, 1); - ASSERT_EQ(ms->GetPosition(), 48); - ASSERT_EQ(ms->GetLength(), 48); + ASSERT_GE(ms->GetPosition(), 48); + ASSERT_LE(ms->GetPosition(), 55); // Accomodate for varying-sized newline (Windows) + ASSERT_EQ(ms->GetLength(), ms->GetPosition()); ms->SetPosition(0); const char * ini = (const char *)ms->ReadString(); - ASSERT_STREQ(ini, "[OpenRCT1]\n\n[OpenRCT2]\n\n[OpenRCT3]\n\n[OpenRCT4]\n"); + ASSERT_STREQ(ini, "[OpenRCT1]" PLATFORM_NEWLINE PLATFORM_NEWLINE "[OpenRCT2]" PLATFORM_NEWLINE PLATFORM_NEWLINE + "[OpenRCT3]" PLATFORM_NEWLINE PLATFORM_NEWLINE "[OpenRCT4]" PLATFORM_NEWLINE); Memory::Free(ini); delete iw; delete ms; @@ -74,11 +78,12 @@ TEST_F(IniWriterTest, create_loose_bool_entry) iw->WriteBoolean("boolval", true); int8_t null_terminator = 0; ms->Write(&null_terminator, 1); - ASSERT_EQ(ms->GetPosition(), 16); - ASSERT_EQ(ms->GetLength(), 16); + ASSERT_GE(ms->GetPosition(), 16); + ASSERT_LE(ms->GetPosition(), 17); // Accomodate for varying-sized newline (Windows) + ASSERT_EQ(ms->GetLength(), ms->GetPosition()); ms->SetPosition(0); const char * ini = (const char *)ms->ReadString(); - ASSERT_STREQ(ini, "boolval = true\n"); + ASSERT_STREQ(ini, "boolval = true" PLATFORM_NEWLINE); Memory::Free(ini); delete iw; delete ms; @@ -94,11 +99,12 @@ TEST_F(IniWriterTest, create_loose_enum_entry) iw->WriteEnum("sint32", 0, Enum_Currency); int8_t null_terminator = 0; ms->Write(&null_terminator, 1); - ASSERT_EQ(ms->GetPosition(), 34); - ASSERT_EQ(ms->GetLength(), 34); + ASSERT_GE(ms->GetPosition(), 34); + ASSERT_LE(ms->GetPosition(), 36); // Accomodate for varying-sized newline (Windows) + ASSERT_EQ(ms->GetLength(), ms->GetPosition()); ms->SetPosition(0); const char * ini = (const char *)ms->ReadString(); - ASSERT_STREQ(ini, "by_string = stringval\nsint32 = 0\n"); + ASSERT_STREQ(ini, "by_string = stringval" PLATFORM_NEWLINE "sint32 = 0" PLATFORM_NEWLINE); Memory::Free(ini); delete iw; delete ms; @@ -113,12 +119,13 @@ TEST_F(IniWriterTest, create_loose_float_entry) iw->WriteFloat("one", 1.); int8_t null_terminator = 0; ms->Write(&null_terminator, 1); - ASSERT_EQ(ms->GetPosition(), 16); - ASSERT_EQ(ms->GetLength(), 16); + ASSERT_GE(ms->GetPosition(), 16); + ASSERT_LE(ms->GetPosition(), 17); // Accomodate for varying-sized newline (Windows) + ASSERT_EQ(ms->GetLength(), ms->GetPosition()); ms->SetPosition(0); const char * ini = (const char *)ms->ReadString(); // This will be non-fatal due to float. - EXPECT_STREQ(ini, "one = 1.000000\n"); + EXPECT_STREQ(ini, "one = 1.000000" PLATFORM_NEWLINE); Memory::Free(ini); delete iw; delete ms; @@ -133,15 +140,17 @@ TEST_F(IniWriterTest, create_loose_sint32_entry) iw->WriteSint32("one", 1); iw->WriteSint32("zero", 0); iw->WriteSint32("minusone", -1); - iw->WriteSint32("intmin", std::numeric_limits::min()); - iw->WriteSint32("intmax", std::numeric_limits::max()); + iw->WriteSint32("intmin", (std::numeric_limits::min)()); + iw->WriteSint32("intmax", (std::numeric_limits::max)()); int8_t null_terminator = 0; ms->Write(&null_terminator, 1); - ASSERT_EQ(ms->GetPosition(), 73); - ASSERT_EQ(ms->GetLength(), 73); + ASSERT_GE(ms->GetPosition(), 73); + ASSERT_LE(ms->GetPosition(), 78); // Accomodate for varying-sized newline (Windows) + ASSERT_EQ(ms->GetLength(), ms->GetPosition()); ms->SetPosition(0); const char * ini = (const char *)ms->ReadString(); - ASSERT_STREQ(ini, "one = 1\nzero = 0\nminusone = -1\nintmin = -2147483648\nintmax = 2147483647\n"); + ASSERT_STREQ(ini, "one = 1" PLATFORM_NEWLINE "zero = 0" PLATFORM_NEWLINE "minusone = -1" PLATFORM_NEWLINE + "intmin = -2147483648" PLATFORM_NEWLINE "intmax = 2147483647" PLATFORM_NEWLINE); Memory::Free(ini); delete iw; delete ms; @@ -156,11 +165,12 @@ TEST_F(IniWriterTest, create_loose_string_entry) iw->WriteString("path", u8"C:'\\some/dir\\here/神鷹暢遊"); int8_t null_terminator = 0; ms->Write(&null_terminator, 1); - ASSERT_EQ(ms->GetPosition(), 43); - ASSERT_EQ(ms->GetLength(), 43); + ASSERT_GE(ms->GetPosition(), 43); + ASSERT_LE(ms->GetPosition(), 44); // Accomodate for varying-sized newline (Windows) + ASSERT_EQ(ms->GetLength(), ms->GetPosition()); ms->SetPosition(0); const char * ini = (const char *)ms->ReadString(); - ASSERT_STREQ(ini, "path = \"C:'\\\\some/dir\\\\here/\xE7\xA5\x9E\xE9\xB7\xB9\xE6\x9A\xA2\xE9\x81\x8A\"\n"); + ASSERT_STREQ(ini, "path = \"C:'\\\\some/dir\\\\here/\xE7\xA5\x9E\xE9\xB7\xB9\xE6\x9A\xA2\xE9\x81\x8A\"" PLATFORM_NEWLINE); Memory::Free(ini); delete iw; delete ms; @@ -181,12 +191,15 @@ TEST_F(IniWriterTest, create_multiple_section_with_values) iw->WriteString("path", u8"C:'\\some/dir\\here/神鷹暢遊"); int8_t null_terminator = 0; ms->Write(&null_terminator, 1); - ASSERT_EQ(ms->GetPosition(), 99); - ASSERT_EQ(ms->GetLength(), 99); + ASSERT_GE(ms->GetPosition(), 99); + ASSERT_LE(ms->GetPosition(), 108); // Accomodate for varying-sized newline (Windows) + ASSERT_EQ(ms->GetLength(), ms->GetPosition()); ms->SetPosition(0); const char * ini = (const char *)ms->ReadString(); - ASSERT_STREQ(ini, "[bool]\nboolval = true\n\n[int]\none = 1\nzero = 0\n\n[string]\npath = " - "\"C:'\\\\some/dir\\\\here/\xE7\xA5\x9E\xE9\xB7\xB9\xE6\x9A\xA2\xE9\x81\x8A\"\n"); + ASSERT_STREQ(ini, + "[bool]" PLATFORM_NEWLINE "boolval = true" PLATFORM_NEWLINE PLATFORM_NEWLINE "[int]" PLATFORM_NEWLINE + "one = 1" PLATFORM_NEWLINE "zero = 0" PLATFORM_NEWLINE PLATFORM_NEWLINE "[string]" PLATFORM_NEWLINE "path = " + "\"C:'\\\\some/dir\\\\here/\xE7\xA5\x9E\xE9\xB7\xB9\xE6\x9A\xA2\xE9\x81\x8A\"" PLATFORM_NEWLINE); Memory::Free(ini); delete iw; delete ms;