Run parameterised tests against all game types

Almost half the test suites were running against only some game types.
This commit is contained in:
Oliver Hamlet
2025-04-30 08:39:03 +01:00
parent b2b7e04584
commit 7c1191cd90
8 changed files with 35 additions and 79 deletions
@@ -88,17 +88,7 @@ protected:
// but we only have the one so no prefix is necessary.
INSTANTIATE_TEST_SUITE_P(,
CreateGameHandleTest,
::testing::Values(GameType::tes4,
GameType::tes5,
GameType::fo3,
GameType::fonv,
GameType::fo4,
GameType::tes5se,
GameType::fo4vr,
GameType::tes5vr,
GameType::tes3,
GameType::starfield,
GameType::openmw));
::testing::ValuesIn(ALL_GAME_TYPES));
TEST_P(CreateGameHandleTest,
shouldSucceedIfPassedValidParametersWithRelativePaths) {
@@ -113,12 +113,7 @@ protected:
// but we only have the one so no prefix is necessary.
INSTANTIATE_TEST_SUITE_P(,
DatabaseInterfaceTest,
::testing::Values(GameType::tes4,
GameType::tes5,
GameType::fo3,
GameType::fonv,
GameType::fo4,
GameType::tes5se));
::testing::ValuesIn(ALL_GAME_TYPES));
TEST_P(DatabaseInterfaceTest,
loadMasterlistShouldSucceedEvenIfGameHandleIsDiscarded) {
@@ -275,7 +270,7 @@ TEST_P(DatabaseInterfaceTest, writeUserMetadataShouldShouldWriteUserMetadata) {
}
TEST_P(DatabaseInterfaceTest, evaluateShouldReturnTrueIfTheConditionIsTrue) {
EXPECT_TRUE(handle_->GetDatabase().Evaluate("file(\"Blank.esp\")"));
EXPECT_TRUE(handle_->GetDatabase().Evaluate("file(\"Blank.esp\")"));
}
TEST_P(DatabaseInterfaceTest, evaluateShouldReturnFalseIfTheConditionIsFalse) {
+1 -11
View File
@@ -74,17 +74,7 @@ protected:
// but we only have the one so no prefix is necessary.
INSTANTIATE_TEST_SUITE_P(,
GameInterfaceTest,
::testing::Values(GameType::tes4,
GameType::tes5,
GameType::fo3,
GameType::fonv,
GameType::fo4,
GameType::tes5se,
GameType::fo4vr,
GameType::tes5vr,
GameType::tes3,
GameType::starfield,
GameType::openmw));
::testing::ValuesIn(ALL_GAME_TYPES));
TEST_P(GameInterfaceTest, setAdditionalDataPathsShouldDoThat) {
const auto paths = std::vector<std::filesystem::path>{
@@ -41,12 +41,7 @@ protected:
// but we only have the one so no prefix is necessary.
INSTANTIATE_TEST_SUITE_P(,
ConditionalMetadataTest,
::testing::Values(GameType::tes4,
GameType::tes5,
GameType::fo3,
GameType::fonv,
GameType::fo4,
GameType::tes5se));
::testing::ValuesIn(ALL_GAME_TYPES));
TEST_P(ConditionalMetadataTest,
defaultConstructorShouldSetEmptyConditionString) {
+1 -13
View File
@@ -50,19 +50,7 @@ protected:
// Pass an empty first argument, as it's a prefix for the test instantation,
// but we only have the one so no prefix is necessary.
INSTANTIATE_TEST_SUITE_P(,
GameTest,
::testing::Values(GameType::tes4,
GameType::tes5,
GameType::fo3,
GameType::fonv,
GameType::fo4,
GameType::tes5se,
GameType::fo4vr,
GameType::tes5vr,
GameType::tes3,
GameType::starfield,
GameType::openmw));
INSTANTIATE_TEST_SUITE_P(, GameTest, ::testing::ValuesIn(ALL_GAME_TYPES));
TEST_P(GameTest, constructingShouldStoreTheGivenValues) {
Game game = Game(GetParam(), gamePath, localPath);
@@ -50,6 +50,16 @@ protected:
}) {
if (GetParam() == GameType::fo4 || GetParam() == GameType::tes5se) {
loadOrderToSet_.insert(loadOrderToSet_.begin() + 5, blankEsl);
} else if (GetParam() == GameType::starfield) {
loadOrderToSet_ = {
masterFile,
blankEsm,
blankMasterDependentEsm,
blankDifferentEsm,
blankDifferentEsp,
blankEsp,
blankMasterDependentEsp,
};
}
}
@@ -87,6 +97,16 @@ protected:
"DLCUltraHighResolution.esm"};
case GameType::fo4vr:
return {"Fallout4.esm", "Fallout4_VR.esm"};
case GameType::starfield:
return {"Starfield.esm",
"Constellation.esm",
"OldMars.esm",
"ShatteredSpace.esm",
"SFBGS003.esm",
"SFBGS004.esm",
"SFBGS006.esm",
"SFBGS007.esm",
"SFBGS008.esm"};
default:
return {};
}
@@ -109,14 +129,7 @@ protected:
// but we only have the one so no prefix is necessary.
INSTANTIATE_TEST_SUITE_P(,
LoadOrderHandlerTest,
::testing::Values(GameType::tes3,
GameType::tes4,
GameType::tes5,
GameType::fo3,
GameType::fonv,
GameType::fo4,
GameType::tes5se,
GameType::openmw));
::testing::ValuesIn(ALL_GAME_TYPES));
TEST_P(LoadOrderHandlerTest, constructorShouldThrowIfNoGamePathIsSet) {
EXPECT_THROW(LoadOrderHandler(GetParam(), ""), std::invalid_argument);
@@ -281,7 +294,9 @@ TEST_P(LoadOrderHandlerTest, setLoadOrderShouldSetTheLoadOrder) {
EXPECT_NO_THROW(loadOrderHandler.SetLoadOrder(loadOrderToSet_));
if (GetParam() == GameType::fo4 || GetParam() == GameType::tes5se)
if (GetParam() == GameType::fo4 || GetParam() == GameType::fo4vr ||
GetParam() == GameType::tes5se || GetParam() == GameType::tes5vr ||
GetParam() == GameType::starfield)
loadOrderToSet_.erase(begin(loadOrderToSet_));
if (GetParam() == GameType::openmw) {
@@ -82,14 +82,7 @@ protected:
// but we only have the one so no prefix is necessary.
INSTANTIATE_TEST_SUITE_P(,
ConditionEvaluatorTest,
::testing::Values(GameType::tes3,
GameType::tes4,
GameType::tes5,
GameType::fo3,
GameType::fonv,
GameType::fo4,
GameType::tes5se,
GameType::openmw));
::testing::ValuesIn(ALL_GAME_TYPES));
TEST_P(ConditionEvaluatorTest,
evaluateShouldReturnTrueForAnEmptyConditionString) {
+4 -14
View File
@@ -208,7 +208,9 @@ public:
otherPlugin->assetsOverlapWith.count(this) != 0;
}
void AddMaster(std::string_view master) { masters_.push_back(std::string(master)); }
void AddMaster(std::string_view master) {
masters_.push_back(std::string(master));
}
void SetIsMaster(bool isMaster) { isMaster_ = isMaster; }
@@ -246,19 +248,7 @@ private:
// Pass an empty first argument, as it's a prefix for the test instantation,
// but we only have the one so no prefix is necessary.
INSTANTIATE_TEST_SUITE_P(,
PluginTest,
::testing::Values(GameType::tes4,
GameType::tes5,
GameType::fo3,
GameType::fonv,
GameType::fo4,
GameType::tes5se,
GameType::fo4vr,
GameType::tes5vr,
GameType::tes3,
GameType::starfield,
GameType::openmw));
INSTANTIATE_TEST_SUITE_P(, PluginTest, ::testing::ValuesIn(ALL_GAME_TYPES));
TEST_P(PluginTest, constructorShouldTrimGhostExtensionExceptForOpenMW) {
const auto pluginPath =