From 0147e5165859c3bea1d1bb9be2e57d2eec9e2d2d Mon Sep 17 00:00:00 2001 From: Eric Wasylishen Date: Tue, 10 May 2022 23:32:56 -0600 Subject: [PATCH] build: fix testcommon on clang-cl --- common/test.cc | 60 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/common/test.cc b/common/test.cc index 89d938da..4518aef7 100644 --- a/common/test.cc +++ b/common/test.cc @@ -9,7 +9,8 @@ TEST(settings, booleanFlagImplicit) settings::setting_container settings; settings::setting_bool boolSetting(&settings, "locked", false); const char *arguments[] = {"qbsp.exe", "-locked"}; - settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + settings.parse(p); ASSERT_EQ(boolSetting.value(), true); } @@ -18,7 +19,8 @@ TEST(settings, booleanFlagExplicit) settings::setting_container settings; settings::setting_bool boolSetting(&settings, "locked", false); const char *arguments[] = {"qbsp.exe", "-locked", "1"}; - settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + settings.parse(p); ASSERT_EQ(boolSetting.value(), true); } @@ -27,7 +29,8 @@ TEST(settings, booleanFlagStray) settings::setting_container settings; settings::setting_bool boolSetting(&settings, "locked", false); const char *arguments[] = {"qbsp.exe", "-locked", "stray"}; - settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + settings.parse(p); ASSERT_EQ(boolSetting.value(), true); } @@ -37,7 +40,8 @@ TEST(settings, scalarSimple) settings::setting_container settings; settings::setting_scalar scalarSetting(&settings, "scale", 1.0); const char *arguments[] = {"qbsp.exe", "-scale", "1.25"}; - settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + settings.parse(p); ASSERT_EQ(scalarSetting.value(), 1.25); } @@ -46,7 +50,8 @@ TEST(settings, scalarNegative) settings::setting_container settings; settings::setting_scalar scalarSetting(&settings, "scale", 1.0); const char *arguments[] = {"qbsp.exe", "-scale", "-0.25"}; - settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + settings.parse(p); ASSERT_EQ(scalarSetting.value(), -0.25); } @@ -55,7 +60,8 @@ TEST(settings, scalarInfinity) settings::setting_container settings; settings::setting_scalar scalarSetting(&settings, "scale", 1.0, 0.0, std::numeric_limits::infinity()); const char *arguments[] = {"qbsp.exe", "-scale", "INFINITY"}; - settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + settings.parse(p); ASSERT_EQ(scalarSetting.value(), std::numeric_limits::infinity()); } @@ -64,7 +70,8 @@ TEST(settings, scalarNAN) settings::setting_container settings; settings::setting_scalar scalarSetting(&settings, "scale", 1.0); const char *arguments[] = {"qbsp.exe", "-scale", "NAN"}; - settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + settings.parse(p); ASSERT_TRUE(std::isnan(scalarSetting.value())); } @@ -73,7 +80,8 @@ TEST(settings, scalarScientific) settings::setting_container settings; settings::setting_scalar scalarSetting(&settings, "scale", 1.0); const char *arguments[] = {"qbsp.exe", "-scale", "1.54334E-34"}; - settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + settings.parse(p); ASSERT_EQ(scalarSetting.value(), 1.54334E-34); } @@ -82,7 +90,8 @@ TEST(settings, scalarEOF) settings::setting_container settings; settings::setting_scalar scalarSetting(&settings, "scale", 1.0); const char *arguments[] = {"qbsp.exe", "-scale"}; - ASSERT_THROW(settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}), settings::parse_exception); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + ASSERT_THROW(settings.parse(p), settings::parse_exception); } TEST(settings, scalarStray) @@ -90,7 +99,8 @@ TEST(settings, scalarStray) settings::setting_container settings; settings::setting_scalar scalarSetting(&settings, "scale", 1.0); const char *arguments[] = {"qbsp.exe", "-scale", "stray"}; - ASSERT_THROW(settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}), settings::parse_exception); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + ASSERT_THROW(settings.parse(p), settings::parse_exception); } // test scalars @@ -99,7 +109,8 @@ TEST(settings, vec3Simple) settings::setting_container settings; settings::setting_vec3 scalarSetting(&settings, "origin", 0, 0, 0); const char *arguments[] = {"qbsp.exe", "-origin", "1", "2", "3"}; - settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + settings.parse(p); ASSERT_EQ(scalarSetting.value(), (qvec3d{1, 2, 3})); } @@ -108,7 +119,8 @@ TEST(settings, vec3Complex) settings::setting_container settings; settings::setting_vec3 scalarSetting(&settings, "origin", 0, 0, 0); const char *arguments[] = {"qbsp.exe", "-origin", "-12.5", "-INFINITY", "NAN"}; - settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + settings.parse(p); ASSERT_EQ(scalarSetting.value()[0], -12.5); ASSERT_EQ(scalarSetting.value()[1], -std::numeric_limits::infinity()); ASSERT_TRUE(std::isnan(scalarSetting.value()[2])); @@ -119,7 +131,8 @@ TEST(settings, vec3Incomplete) settings::setting_container settings; settings::setting_vec3 scalarSetting(&settings, "origin", 0, 0, 0); const char *arguments[] = {"qbsp.exe", "-origin", "1", "2"}; - ASSERT_THROW(settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}), settings::parse_exception); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + ASSERT_THROW(settings.parse(p), settings::parse_exception); } TEST(settings, vec3Stray) @@ -127,7 +140,8 @@ TEST(settings, vec3Stray) settings::setting_container settings; settings::setting_vec3 scalarSetting(&settings, "origin", 0, 0, 0); const char *arguments[] = {"qbsp.exe", "-origin", "1", "2", "abc"}; - ASSERT_THROW(settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}), settings::parse_exception); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + ASSERT_THROW(settings.parse(p), settings::parse_exception); } // test string formatting @@ -136,7 +150,8 @@ TEST(settings, stringSimple) settings::setting_container settings; settings::setting_string stringSetting(&settings, "name", ""); const char *arguments[] = {"qbsp.exe", "-name", "i am a string with spaces in it"}; - settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + settings.parse(p); ASSERT_EQ(stringSetting.value(), arguments[2]); } @@ -145,7 +160,8 @@ TEST(settings, stringSpan) settings::setting_container settings; settings::setting_string stringSetting(&settings, "name", ""); const char *arguments[] = {"qbsp.exe", "-name", "i", "am", "a", "string"}; - settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + settings.parse(p); ASSERT_EQ(stringSetting.value(), "i am a string"); } @@ -155,7 +171,8 @@ TEST(settings, stringSpanWithBlockingOption) settings::setting_string stringSetting(&settings, "name", ""); settings::setting_bool flagSetting(&settings, "flag", false); const char *arguments[] = {"qbsp.exe", "-name", "i", "am", "a", "string", "-flag"}; - settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + settings.parse(p); ASSERT_EQ(stringSetting.value(), "i am a string"); ASSERT_EQ(flagSetting.value(), true); } @@ -168,7 +185,8 @@ TEST(settings, remainder) settings::setting_bool flagSetting(&settings, "flag", false); const char *arguments[] = { "qbsp.exe", "-name", "i", "am", "a", "string", "-flag", "remainder one", "remainder two"}; - auto remainder = settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + auto remainder = settings.parse(p); ASSERT_EQ(remainder[0], "remainder one"); ASSERT_EQ(remainder[1], "remainder two"); } @@ -180,7 +198,8 @@ TEST(settings, doubleHyphen) settings::setting_bool boolSetting(&settings, "locked", false); settings::setting_string stringSetting(&settings, "name", ""); const char *arguments[] = {"qbsp.exe", "--locked", "--name", "my name!"}; - settings.parse(token_parser_t{std::size(arguments) - 1, arguments + 1}); + token_parser_t p{std::size(arguments) - 1, arguments + 1}; + settings.parse(p); ASSERT_EQ(boolSetting.value(), true); ASSERT_EQ(stringSetting.value(), "my name!"); } @@ -235,7 +254,8 @@ TEST(settings, copyMangle) settings::setting_container settings; settings::setting_mangle sunvec{&settings, {"sunlight_mangle"}, 0.0, 0.0, 0.0}; - EXPECT_TRUE(sunvec.parse("", parser_t(std::string_view("0.0 -90.0 0.0")))); + parser_t p(std::string_view("0.0 -90.0 0.0")); + EXPECT_TRUE(sunvec.parse("", p)); EXPECT_NEAR(0, sunvec.value()[0], 1e-6); EXPECT_NEAR(0, sunvec.value()[1], 1e-6); EXPECT_NEAR(-1, sunvec.value()[2], 1e-6);