Add missing Game::Init() calls in tests

Not calling Game::Init() could cause crashing when loading plugins.
Better solutions would be to make the active plugin checks properly
thread-safe, or even to initialise the libloadorder handle on Game
construction (but the latter would mean ensuring Game objects are only
created for games that are installed).
This commit is contained in:
Oliver Hamlet
2017-02-06 18:02:17 +00:00
parent ff575e107e
commit 9ecd455119
3 changed files with 24 additions and 2 deletions
+4 -2
View File
@@ -106,8 +106,9 @@ TEST_P(GameTest, initShouldNotThrowIfGameAndLocalPathsAreNotEmpty) {
EXPECT_NO_THROW(game.Init());
}
TEST_P(GameTest, loadAllInstalledPluginsWithHeadersOnlyTrueShouldLoadTheHeadersOfAllInstalledPlugins) {
TEST_P(GameTest, loadPluginsWithHeadersOnlyTrueShouldLoadTheHeadersOfAllInstalledPlugins) {
Game game = Game(GetParam(), dataPath.parent_path(), localPath);
ASSERT_NO_THROW(game.Init());
EXPECT_NO_THROW(loadInstalledPlugins(game, true));
EXPECT_EQ(11, game.GetPlugins().size());
@@ -121,8 +122,9 @@ TEST_P(GameTest, loadAllInstalledPluginsWithHeadersOnlyTrueShouldLoadTheHeadersO
EXPECT_EQ(0, plugin.Crc());
}
TEST_P(GameTest, loadAllInstalledPluginsWithHeadersOnlyFalseShouldFullyLoadAllInstalledPlugins) {
TEST_P(GameTest, loadPluginsWithHeadersOnlyFalseShouldFullyLoadAllInstalledPlugins) {
Game game = Game(GetParam(), dataPath.parent_path(), localPath);
ASSERT_NO_THROW(game.Init());
EXPECT_NO_THROW(loadInstalledPlugins(game, false));
EXPECT_EQ(11, game.GetPlugins().size());
@@ -271,6 +271,7 @@ TEST_P(ConditionGrammarTest, aChecksumConditionWithACrcThatMatchesTheActualPlugi
}
TEST_P(ConditionGrammarTest, aChecksumConditionWithACrcThatMatchesTheActualCachedPluginCrcShouldEvaluateToTrue) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, false));
Grammar grammar(&game_);
@@ -299,6 +300,7 @@ TEST_P(ConditionGrammarTest, aChecksumConditionWithACrcThatDoesNotMatchTheActual
}
TEST_P(ConditionGrammarTest, aVersionEqualityConditionWithAVersionThatEqualsTheActualPluginVersionShouldEvaluateToTrue) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
@@ -314,6 +316,7 @@ TEST_P(ConditionGrammarTest, aVersionEqualityConditionWithAVersionThatEqualsTheA
}
TEST_P(ConditionGrammarTest, aVersionEqualityConditionWithAVersionThatDoesNotEqualTheActualPluginVersionShouldEvaluateToFalse) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
@@ -329,6 +332,7 @@ TEST_P(ConditionGrammarTest, aVersionEqualityConditionWithAVersionThatDoesNotEqu
}
TEST_P(ConditionGrammarTest, aVersionEqualityConditionForAPluginWithNoVersionShouldEvaluateToFalse) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
@@ -344,6 +348,7 @@ TEST_P(ConditionGrammarTest, aVersionEqualityConditionForAPluginWithNoVersionSho
}
TEST_P(ConditionGrammarTest, aVersionInequalityConditionWithAVersionThatDoesNotEqualTheActualPluginVersionShouldEvaluateToTrue) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
@@ -359,6 +364,7 @@ TEST_P(ConditionGrammarTest, aVersionInequalityConditionWithAVersionThatDoesNotE
}
TEST_P(ConditionGrammarTest, aVersionInequalityConditionWithAVersionThatEqualsTheActualPluginVersionShouldEvaluateToFalse) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
@@ -374,6 +380,7 @@ TEST_P(ConditionGrammarTest, aVersionInequalityConditionWithAVersionThatEqualsTh
}
TEST_P(ConditionGrammarTest, aVersionInequalityConditionForAPluginWithNoVersionShouldEvaluateToTrue) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
@@ -389,6 +396,7 @@ TEST_P(ConditionGrammarTest, aVersionInequalityConditionForAPluginWithNoVersionS
}
TEST_P(ConditionGrammarTest, aVersionLessThanConditionWithAnActualPluginVersionLessThanTheGivenVersionShouldEvaluateToTrue) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
@@ -404,6 +412,7 @@ TEST_P(ConditionGrammarTest, aVersionLessThanConditionWithAnActualPluginVersionL
}
TEST_P(ConditionGrammarTest, aVersionLessThanConditionWithAnActualPluginVersionEqualToTheGivenVersionShouldEvaluateToFalse) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
@@ -419,6 +428,7 @@ TEST_P(ConditionGrammarTest, aVersionLessThanConditionWithAnActualPluginVersionE
}
TEST_P(ConditionGrammarTest, aVersionLessThanConditionForAPluginWithNoVersionShouldEvaluateToTrue) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
@@ -434,6 +444,7 @@ TEST_P(ConditionGrammarTest, aVersionLessThanConditionForAPluginWithNoVersionSho
}
TEST_P(ConditionGrammarTest, aVersionGreaterThanConditionWithAnActualPluginVersionGreaterThanTheGivenVersionShouldEvaluateToTrue) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
@@ -449,6 +460,7 @@ TEST_P(ConditionGrammarTest, aVersionGreaterThanConditionWithAnActualPluginVersi
}
TEST_P(ConditionGrammarTest, aVersionGreaterThanConditionWithAnActualPluginVersionEqualToTheGivenVersionShouldEvaluateToFalse) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
@@ -464,6 +476,7 @@ TEST_P(ConditionGrammarTest, aVersionGreaterThanConditionWithAnActualPluginVersi
}
TEST_P(ConditionGrammarTest, aVersionGreaterThanConditionForAPluginWithNoVersionShouldEvaluateToFalse) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
@@ -479,6 +492,7 @@ TEST_P(ConditionGrammarTest, aVersionGreaterThanConditionForAPluginWithNoVersion
}
TEST_P(ConditionGrammarTest, aVersionLessThanOrEqualToConditionWithAnActualPluginVersionEqualToTheGivenVersionShouldEvaluateToTrue) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
@@ -494,6 +508,7 @@ TEST_P(ConditionGrammarTest, aVersionLessThanOrEqualToConditionWithAnActualPlugi
}
TEST_P(ConditionGrammarTest, aVersionLessThanOrEqualToConditionWithAnActualPluginVersionGreaterThanTheGivenVersionShouldEvaluateToFalse) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
@@ -509,6 +524,7 @@ TEST_P(ConditionGrammarTest, aVersionLessThanOrEqualToConditionWithAnActualPlugi
}
TEST_P(ConditionGrammarTest, aVersionLessThanOrEqualToConditionForAPluginWithNoVersionShouldEvaluateToTrue) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
@@ -540,6 +556,7 @@ TEST_P(ConditionGrammarTest, aVersionGreaterThanOrEqualToConditionWithAnActualPl
}
TEST_P(ConditionGrammarTest, aVersionGreaterThanOrEqualToConditionWithAnActualPluginVersionLessThanTheGivenVersionShouldEvaluateToFalse) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
@@ -555,6 +572,7 @@ TEST_P(ConditionGrammarTest, aVersionGreaterThanOrEqualToConditionWithAnActualPl
}
TEST_P(ConditionGrammarTest, aVersionGreaterThanOrEqualToConditionForAPluginWithNoVersionShouldEvaluateToFalse) {
ASSERT_NO_THROW(game_.Init());
ASSERT_NO_THROW(loadInstalledPlugins(game_, true));
Grammar grammar(&game_);
+2
View File
@@ -196,6 +196,7 @@ TEST_P(GameTest, redatePluginsShouldRedatePluginsForSkyrimAndSkyrimSEAndDoNothin
TEST_P(GameTest, loadAllInstalledPluginsWithHeadersOnlyTrueShouldLoadTheHeadersOfAllInstalledPlugins) {
Game game = Game(GameSettings(GetParam()).SetGamePath(dataPath.parent_path()), "", localPath);
ASSERT_NO_THROW(game.Init());
EXPECT_NO_THROW(game.LoadAllInstalledPlugins(true));
EXPECT_EQ(11, game.GetPlugins().size());
@@ -211,6 +212,7 @@ TEST_P(GameTest, loadAllInstalledPluginsWithHeadersOnlyTrueShouldLoadTheHeadersO
TEST_P(GameTest, loadAllInstalledPluginsWithHeadersOnlyFalseShouldFullyLoadAllInstalledPlugins) {
Game game = Game(GameSettings(GetParam()).SetGamePath(dataPath.parent_path()), "", localPath);
ASSERT_NO_THROW(game.Init());
EXPECT_NO_THROW(game.LoadAllInstalledPlugins(false));
EXPECT_EQ(11, game.GetPlugins().size());