mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
Run parameterised tests against all game types
Almost half the test suites were running against only some game types.
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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 =
|
||||
|
||||
Reference in New Issue
Block a user