build: fix testcommon on clang-cl

This commit is contained in:
Eric Wasylishen 2022-05-10 23:32:56 -06:00
parent e9abb212bb
commit 0147e51658
1 changed files with 40 additions and 20 deletions

View File

@ -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<vec_t>::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<vec_t>::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<vec_t>::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);