From 4028f1cebbe159c0abdd4cca7d741488791669f2 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Wed, 17 Aug 2016 17:43:53 +0100 Subject: [PATCH] Make SortPlugins take a vector of plugins to sort --- include/loot/database_interface.h | 7 ++- resources/l10n/template.pot | 16 +++---- src/api/api_database.cpp | 4 +- src/api/api_database.h | 2 +- src/backend/game/game.cpp | 47 ++++++++++++------- src/backend/game/game.h | 3 +- src/backend/plugin/plugin.cpp | 8 ++++ src/backend/plugin/plugin.h | 1 + src/gui/query_handler.cpp | 6 +-- src/tests/api/database_interface_test.h | 14 +++++- src/tests/backend/game/game_test.h | 24 +++++----- .../backend/metadata/condition_grammar_test.h | 36 +++++++------- src/tests/backend/plugin/plugin_sorter_test.h | 16 +++---- 13 files changed, 111 insertions(+), 73 deletions(-) diff --git a/include/loot/database_interface.h b/include/loot/database_interface.h index b7640341..76b835d5 100644 --- a/include/loot/database_interface.h +++ b/include/loot/database_interface.h @@ -84,9 +84,12 @@ public: * loaded, and reads the contents of each plugin. No changes are * applied to the load order used by the game. This function does * not load or evaluate the masterlist or userlist. - * @returns A vector of plugin filenames in their sorted load order. + * @param plugins + * A vector of filenames of the plugins to sort. + * @returns A vector of the given plugin filenames in their sorted load + * order. */ - virtual std::vector SortPlugins() = 0; + virtual std::vector SortPlugins(const std::vector& plugins) = 0; /** * @} diff --git a/resources/l10n/template.pot b/resources/l10n/template.pot index 06693b18..c37835ae 100644 --- a/resources/l10n/template.pot +++ b/resources/l10n/template.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: LOOT 0.9.2\n" "Report-Msgid-Bugs-To: https://github.com/loot/loot/issues\n" -"POT-Creation-Date: 2016-08-13 07:20+0100\n" +"POT-Creation-Date: 2016-08-17 18:15+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -671,19 +671,19 @@ msgstr "" msgid "Error: Game-specific settings could not be initialised. %1%" msgstr "" -#: src/backend/app/loot_state.cpp:272 +#: src/backend/app/loot_state.cpp:274 msgid "None of the supported games were detected." msgstr "" -#: src/backend/game/game.cpp:62 +#: src/backend/game/game.cpp:60 msgid "Invalid game ID supplied." msgstr "" -#: src/backend/game/game.cpp:69 +#: src/backend/game/game.cpp:67 msgid "Game path could not be detected." msgstr "" -#: src/backend/game/game.cpp:79 +#: src/backend/game/game.cpp:77 msgid "Could not create LOOT folder for game. Details:" msgstr "" @@ -819,15 +819,15 @@ msgstr "" msgid "Cannot read \"%1%\". Details: %2%" msgstr "" -#: src/backend/plugin/plugin.cpp:213 src/backend/plugin/plugin.cpp:224 +#: src/backend/plugin/plugin.cpp:221 src/backend/plugin/plugin.cpp:232 msgid "This plugin requires \"%1%\" to be installed, but it is missing." msgstr "" -#: src/backend/plugin/plugin.cpp:216 +#: src/backend/plugin/plugin.cpp:224 msgid "This plugin requires \"%1%\" to be active, but it is inactive." msgstr "" -#: src/backend/plugin/plugin.cpp:230 +#: src/backend/plugin/plugin.cpp:238 msgid "This plugin is incompatible with \"%1%\", but both are present." msgstr "" diff --git a/src/api/api_database.cpp b/src/api/api_database.cpp index b3edd9c6..343c1ca6 100644 --- a/src/api/api_database.cpp +++ b/src/api/api_database.cpp @@ -86,9 +86,9 @@ void ApiDatabase::EvalLists(const LanguageCode language) { // LOOT Functionality Functions //////////////////////////////////// -std::vector ApiDatabase::SortPlugins() { +std::vector ApiDatabase::SortPlugins(const std::vector& plugins) { // Always reload all the plugins. - game_.LoadPlugins(false); + game_.LoadPlugins(plugins, false); //Sort plugins into their load order. PluginSorter sorter; diff --git a/src/api/api_database.h b/src/api/api_database.h index febd4334..e7c932cb 100644 --- a/src/api/api_database.h +++ b/src/api/api_database.h @@ -43,7 +43,7 @@ struct ApiDatabase : public DatabaseInterface { void EvalLists(const LanguageCode language); - std::vector SortPlugins(); + std::vector SortPlugins(const std::vector& plugins); bool UpdateMasterlist(const std::string& masterlist_path, const std::string& remote_url, diff --git a/src/backend/game/game.cpp b/src/backend/game/game.cpp index dc7fbdd3..79be8497 100644 --- a/src/backend/game/game.cpp +++ b/src/backend/game/game.cpp @@ -113,31 +113,28 @@ void Game::RedatePlugins() { } } -void Game::LoadPlugins(bool headersOnly) { +void Game::LoadPlugins(const std::vector& plugins, bool headersOnly) { uintmax_t meanFileSize = 0; std::multimap sizeMap; - // First find out how many plugins there are, and their sizes. - BOOST_LOG_TRIVIAL(trace) << "Scanning for plugins in " << this->DataPath(); - for (fs::directory_iterator it(this->DataPath()); it != fs::directory_iterator(); ++it) { - if (fs::is_regular_file(it->status()) && Plugin::IsValid(it->path().filename().string(), *this)) { - string name = it->path().filename().string(); - BOOST_LOG_TRIVIAL(info) << "Found plugin: " << name; + // First get the plugin sizes. + for (const auto& plugin : plugins) { + if (!Plugin::IsValid(plugin, *this)) + throw Error(Error::Code::invalid_args, "\"" + plugin + "\" is not a valid plugin"); - // Trim .ghost extension if present. - if (boost::iends_with(name, ".ghost")) - name = name.substr(0, name.length() - 6); + uintmax_t fileSize = Plugin::GetFileSize(plugin, *this); + meanFileSize += fileSize; - uintmax_t fileSize = fs::file_size(it->path()); - meanFileSize += fileSize; - - sizeMap.emplace(fileSize, name); - } + // Trim .ghost extension if present. + if (boost::iends_with(plugin, ".ghost")) + sizeMap.emplace(fileSize, plugin.substr(0, plugin.length() - 6)); + else + sizeMap.emplace(fileSize, plugin); } meanFileSize /= sizeMap.size(); //Rounding error, but not important. - // Get the number of threads to use. - // hardware_concurrency() may be zero, if so then use only one thread. + // Get the number of threads to use. + // hardware_concurrency() may be zero, if so then use only one thread. size_t threadsToUse = std::min((size_t)thread::hardware_concurrency(), sizeMap.size()); threadsToUse = std::max(threadsToUse, (size_t)1); @@ -185,6 +182,22 @@ void Game::LoadPlugins(bool headersOnly) { pluginsFullyLoaded_ = !headersOnly; } +void Game::LoadAllInstalledPlugins(bool headersOnly) { + std::vector plugins; + + BOOST_LOG_TRIVIAL(trace) << "Scanning for plugins in " << this->DataPath(); + for (fs::directory_iterator it(this->DataPath()); it != fs::directory_iterator(); ++it) { + if (fs::is_regular_file(it->status()) && Plugin::IsValid(it->path().filename().string(), *this)) { + string name = it->path().filename().string(); + BOOST_LOG_TRIVIAL(info) << "Found plugin: " << name; + + plugins.push_back(name); + } + } + + LoadPlugins(plugins, headersOnly); +} + bool Game::ArePluginsFullyLoaded() const { return pluginsFullyLoaded_; } diff --git a/src/backend/game/game.h b/src/backend/game/game.h index 7095d28f..cc6690cf 100644 --- a/src/backend/game/game.h +++ b/src/backend/game/game.h @@ -45,7 +45,8 @@ public: void RedatePlugins(); //Change timestamps to match load order (Skyrim only). - void LoadPlugins(bool headersOnly); //Loads all installed plugins. + void LoadPlugins(const std::vector& plugins, bool headersOnly); + void LoadAllInstalledPlugins(bool headersOnly); //Loads all installed plugins. bool ArePluginsFullyLoaded() const; // Checks if the game's plugins have already been loaded. // Check if the plugin is active by using the cached value if diff --git a/src/backend/plugin/plugin.cpp b/src/backend/plugin/plugin.cpp index ae63915b..be7b2500 100644 --- a/src/backend/plugin/plugin.cpp +++ b/src/backend/plugin/plugin.cpp @@ -187,6 +187,14 @@ bool Plugin::IsValid(const std::string& filename, const Game& game) { return false; } +uintmax_t Plugin::GetFileSize(const std::string & filename, const Game & game) { + boost::filesystem::path realPath = game.DataPath() / filename; + if (!boost::filesystem::exists(realPath)) + realPath += ".ghost"; + + return boost::filesystem::file_size(realPath); +} + bool Plugin::operator < (const Plugin & rhs) const { return boost::ilexicographical_compare(Name(), rhs.Name());; } diff --git a/src/backend/plugin/plugin.h b/src/backend/plugin/plugin.h index c6400fd0..6d0ee110 100644 --- a/src/backend/plugin/plugin.h +++ b/src/backend/plugin/plugin.h @@ -62,6 +62,7 @@ public: // Checks that reqs and masters are all present, and that no incs are present. void CheckInstallValidity(const Game& game); static bool IsValid(const std::string& filename, const Game& game); + static uintmax_t GetFileSize(const std::string& filename, const Game& game); bool operator < (const Plugin& rhs) const; private: diff --git a/src/gui/query_handler.cpp b/src/gui/query_handler.cpp index 5bc75878..68950f03 100644 --- a/src/gui/query_handler.cpp +++ b/src/gui/query_handler.cpp @@ -353,7 +353,7 @@ void QueryHandler::GetConflictingPlugins(const std::string& pluginName, CefRefPt // Checking for FormID overlap will only work if the plugins have been loaded, so check if // the plugins have been fully loaded, and if not load all plugins. if (!lootState_.getCurrentGame().ArePluginsFullyLoaded()) - lootState_.getCurrentGame().LoadPlugins(false); + lootState_.getCurrentGame().LoadAllInstalledPlugins(false); YAML::Node node; auto plugin = lootState_.getCurrentGame().GetPlugin(pluginName); @@ -578,7 +578,7 @@ void QueryHandler::GetGameData(CefRefPtr frame, CefRefPtr ca lootState_.getCurrentGame().ClearCachedConditions(); bool isFirstLoad = lootState_.getCurrentGame().GetPlugins().empty(); - lootState_.getCurrentGame().LoadPlugins(true); + lootState_.getCurrentGame().LoadAllInstalledPlugins(true); //Sort plugins into their load order. list installed; @@ -846,7 +846,7 @@ void QueryHandler::SortPlugins(CefRefPtr frame, CefRefPtr ca try { // Always reload all the plugins. SendProgressUpdate(frame, translate("Loading plugin contents...")); - lootState_.getCurrentGame().LoadPlugins(false); + lootState_.getCurrentGame().LoadAllInstalledPlugins(false); //Sort plugins into their load order. SendProgressUpdate(frame, translate("Sorting load order...")); diff --git a/src/tests/api/database_interface_test.h b/src/tests/api/database_interface_test.h index b72e8e02..f7d4950d 100644 --- a/src/tests/api/database_interface_test.h +++ b/src/tests/api/database_interface_test.h @@ -171,7 +171,19 @@ TEST_P(DatabaseInterfaceTest, sortPluginsShouldSucceedIfPassedValidArguments) { ASSERT_NO_THROW(GenerateMasterlist()); ASSERT_NO_THROW(db_->LoadLists(masterlistPath.string(), "")); - std::vector actualOrder = db_->SortPlugins(); + std::vector actualOrder = db_->SortPlugins({ + blankEsp, + blankPluginDependentEsp, + blankDifferentMasterDependentEsm, + blankMasterDependentEsp, + blankDifferentMasterDependentEsp, + blankDifferentEsp, + blankDifferentPluginDependentEsp, + masterFile, + blankEsm, + blankMasterDependentEsm, + blankDifferentEsm, + }); ASSERT_EQ(expectedOrder, actualOrder); } diff --git a/src/tests/backend/game/game_test.h b/src/tests/backend/game/game_test.h index b0d55c43..ad40d198 100644 --- a/src/tests/backend/game/game_test.h +++ b/src/tests/backend/game/game_test.h @@ -187,11 +187,11 @@ TEST_P(GameTest, redatePluginsShouldRedatePluginsForSkyrimAndDoNothingForOtherGa } } -TEST_P(GameTest, loadPluginsWithHeadersOnlyTrueShouldLoadTheHeadersOfAllInstalledPlugins) { +TEST_P(GameTest, loadAllInstalledPluginsWithHeadersOnlyTrueShouldLoadTheHeadersOfAllInstalledPlugins) { Game game(GetParam()); game.SetGamePath(dataPath.parent_path()); - EXPECT_NO_THROW(game.LoadPlugins(true)); + EXPECT_NO_THROW(game.LoadAllInstalledPlugins(true)); EXPECT_EQ(11, game.GetPlugins().size()); // Check that one plugin's header has been read. @@ -203,11 +203,11 @@ TEST_P(GameTest, loadPluginsWithHeadersOnlyTrueShouldLoadTheHeadersOfAllInstalle EXPECT_EQ(0, plugin.Crc()); } -TEST_P(GameTest, loadPluginsWithHeadersOnlyFalseShouldFullyLoadAllInstalledPlugins) { +TEST_P(GameTest, loadAllInstalledPluginsWithHeadersOnlyFalseShouldFullyLoadAllInstalledPlugins) { Game game(GetParam()); game.SetGamePath(dataPath.parent_path()); - EXPECT_NO_THROW(game.LoadPlugins(false)); + EXPECT_NO_THROW(game.LoadAllInstalledPlugins(false)); EXPECT_EQ(11, game.GetPlugins().size()); // Check that one plugin's header has been read. @@ -229,7 +229,7 @@ TEST_P(GameTest, pluginsShouldNotBeFullyLoadedAfterLoadingHeadersOnly) { Game game(GetParam()); game.SetGamePath(dataPath.parent_path()); - ASSERT_NO_THROW(game.LoadPlugins(true)); + ASSERT_NO_THROW(game.LoadAllInstalledPlugins(true)); EXPECT_FALSE(game.ArePluginsFullyLoaded()); } @@ -238,7 +238,7 @@ TEST_P(GameTest, pluginsShouldBeFullyLoadedAfterFullyLoadingThem) { Game game(GetParam()); game.SetGamePath(dataPath.parent_path()); - ASSERT_NO_THROW(game.LoadPlugins(false)); + ASSERT_NO_THROW(game.LoadAllInstalledPlugins(false)); EXPECT_TRUE(game.ArePluginsFullyLoaded()); } @@ -269,7 +269,7 @@ TEST_P(GameTest, shouldShowBlankEspAsInactiveIfItHasNotBeenLoadedAndTheGameHasBe TEST_P(GameTest, shouldShowBlankEsmAsInactiveIfItsHeaderHasBeenLoadedAndGameHasNotBeenInitialised) { Game game(GetParam()); game.SetGamePath(dataPath.parent_path()); - ASSERT_NO_THROW(game.LoadPlugins(true)); + ASSERT_NO_THROW(game.LoadAllInstalledPlugins(true)); EXPECT_FALSE(game.IsPluginActive(blankEsm)); } @@ -277,7 +277,7 @@ TEST_P(GameTest, shouldShowBlankEsmAsInactiveIfItsHeaderHasBeenLoadedAndGameHasN TEST_P(GameTest, shouldShowBlankEspAsInactiveIfItsHeaderHasBeenLoadedAndGameHasNotBeenInitialised) { Game game(GetParam()); game.SetGamePath(dataPath.parent_path()); - ASSERT_NO_THROW(game.LoadPlugins(true)); + ASSERT_NO_THROW(game.LoadAllInstalledPlugins(true)); EXPECT_FALSE(game.IsPluginActive(blankEsp)); } @@ -286,7 +286,7 @@ TEST_P(GameTest, shouldShowBlankEsmAsActiveIfItsHeaderHasBeenLoadedAndTheGameHas Game game(GetParam()); game.SetGamePath(dataPath.parent_path()); ASSERT_NO_THROW(game.Init(false, localPath)); - ASSERT_NO_THROW(game.LoadPlugins(true)); + ASSERT_NO_THROW(game.LoadAllInstalledPlugins(true)); EXPECT_TRUE(game.IsPluginActive(blankEsm)); } @@ -295,7 +295,7 @@ TEST_P(GameTest, shouldShowBlankEspAsInactiveIfItsHeaderHasBeenLoadedAndTheGameH Game game(GetParam()); game.SetGamePath(dataPath.parent_path()); ASSERT_NO_THROW(game.Init(false, localPath)); - ASSERT_NO_THROW(game.LoadPlugins(true)); + ASSERT_NO_THROW(game.LoadAllInstalledPlugins(true)); EXPECT_FALSE(game.IsPluginActive(blankEsp)); } @@ -304,7 +304,7 @@ TEST_P(GameTest, shouldShowBlankEsmAsActiveIfItHasBeenFullyLoadedAndTheGameHasBe Game game(GetParam()); game.SetGamePath(dataPath.parent_path()); ASSERT_NO_THROW(game.Init(false, localPath)); - ASSERT_NO_THROW(game.LoadPlugins(false)); + ASSERT_NO_THROW(game.LoadAllInstalledPlugins(false)); EXPECT_TRUE(game.IsPluginActive(blankEsm)); } @@ -313,7 +313,7 @@ TEST_P(GameTest, shouldShowBlankEspAsInactiveIfItHasBeenFullyLoadedAndTheGameHas Game game(GetParam()); game.SetGamePath(dataPath.parent_path()); ASSERT_NO_THROW(game.Init(false, localPath)); - ASSERT_NO_THROW(game.LoadPlugins(false)); + ASSERT_NO_THROW(game.LoadAllInstalledPlugins(false)); EXPECT_FALSE(game.IsPluginActive(blankEsp)); } diff --git a/src/tests/backend/metadata/condition_grammar_test.h b/src/tests/backend/metadata/condition_grammar_test.h index bda4de17..71bf22a0 100644 --- a/src/tests/backend/metadata/condition_grammar_test.h +++ b/src/tests/backend/metadata/condition_grammar_test.h @@ -276,7 +276,7 @@ TEST_P(ConditionGrammarTest, aChecksumConditionWithACrcThatDoesNotMatchTheActual } TEST_P(ConditionGrammarTest, aVersionEqualityConditionWithAVersionThatEqualsTheActualPluginVersionShouldEvaluateToTrue) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsm + "\", \"5.0\", ==)"); @@ -291,7 +291,7 @@ TEST_P(ConditionGrammarTest, aVersionEqualityConditionWithAVersionThatEqualsTheA } TEST_P(ConditionGrammarTest, aVersionEqualityConditionWithAVersionThatDoesNotEqualTheActualPluginVersionShouldEvaluateToFalse) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsm + "\", \"6.0\", ==)"); @@ -306,7 +306,7 @@ TEST_P(ConditionGrammarTest, aVersionEqualityConditionWithAVersionThatDoesNotEqu } TEST_P(ConditionGrammarTest, aVersionEqualityConditionForAPluginWithNoVersionShouldEvaluateToFalse) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsp + "\", \"6.0\", ==)"); @@ -321,7 +321,7 @@ TEST_P(ConditionGrammarTest, aVersionEqualityConditionForAPluginWithNoVersionSho } TEST_P(ConditionGrammarTest, aVersionInequalityConditionWithAVersionThatDoesNotEqualTheActualPluginVersionShouldEvaluateToTrue) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsm + "\", \"6.0\", !=)"); @@ -336,7 +336,7 @@ TEST_P(ConditionGrammarTest, aVersionInequalityConditionWithAVersionThatDoesNotE } TEST_P(ConditionGrammarTest, aVersionInequalityConditionWithAVersionThatEqualsTheActualPluginVersionShouldEvaluateToFalse) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsm + "\", \"5.0\", !=)"); @@ -351,7 +351,7 @@ TEST_P(ConditionGrammarTest, aVersionInequalityConditionWithAVersionThatEqualsTh } TEST_P(ConditionGrammarTest, aVersionInequalityConditionForAPluginWithNoVersionShouldEvaluateToTrue) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsp + "\", \"6.0\", !=)"); @@ -366,7 +366,7 @@ TEST_P(ConditionGrammarTest, aVersionInequalityConditionForAPluginWithNoVersionS } TEST_P(ConditionGrammarTest, aVersionLessThanConditionWithAnActualPluginVersionLessThanTheGivenVersionShouldEvaluateToTrue) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsm + "\", \"6.0\", <)"); @@ -381,7 +381,7 @@ TEST_P(ConditionGrammarTest, aVersionLessThanConditionWithAnActualPluginVersionL } TEST_P(ConditionGrammarTest, aVersionLessThanConditionWithAnActualPluginVersionEqualToTheGivenVersionShouldEvaluateToFalse) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsm + "\", \"5.0\", <)"); @@ -396,7 +396,7 @@ TEST_P(ConditionGrammarTest, aVersionLessThanConditionWithAnActualPluginVersionE } TEST_P(ConditionGrammarTest, aVersionLessThanConditionForAPluginWithNoVersionShouldEvaluateToTrue) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsp + "\", \"5.0\", <)"); @@ -411,7 +411,7 @@ TEST_P(ConditionGrammarTest, aVersionLessThanConditionForAPluginWithNoVersionSho } TEST_P(ConditionGrammarTest, aVersionGreaterThanConditionWithAnActualPluginVersionGreaterThanTheGivenVersionShouldEvaluateToTrue) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsm + "\", \"4.0\", >)"); @@ -426,7 +426,7 @@ TEST_P(ConditionGrammarTest, aVersionGreaterThanConditionWithAnActualPluginVersi } TEST_P(ConditionGrammarTest, aVersionGreaterThanConditionWithAnActualPluginVersionEqualToTheGivenVersionShouldEvaluateToFalse) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsm + "\", \"5.0\", >)"); @@ -441,7 +441,7 @@ TEST_P(ConditionGrammarTest, aVersionGreaterThanConditionWithAnActualPluginVersi } TEST_P(ConditionGrammarTest, aVersionGreaterThanConditionForAPluginWithNoVersionShouldEvaluateToFalse) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsp + "\", \"5.0\", >)"); @@ -456,7 +456,7 @@ TEST_P(ConditionGrammarTest, aVersionGreaterThanConditionForAPluginWithNoVersion } TEST_P(ConditionGrammarTest, aVersionLessThanOrEqualToConditionWithAnActualPluginVersionEqualToTheGivenVersionShouldEvaluateToTrue) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsm + "\", \"5.0\", <=)"); @@ -471,7 +471,7 @@ TEST_P(ConditionGrammarTest, aVersionLessThanOrEqualToConditionWithAnActualPlugi } TEST_P(ConditionGrammarTest, aVersionLessThanOrEqualToConditionWithAnActualPluginVersionGreaterThanTheGivenVersionShouldEvaluateToFalse) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsm + "\", \"4.0\", <=)"); @@ -486,7 +486,7 @@ TEST_P(ConditionGrammarTest, aVersionLessThanOrEqualToConditionWithAnActualPlugi } TEST_P(ConditionGrammarTest, aVersionLessThanOrEqualToConditionForAPluginWithNoVersionShouldEvaluateToTrue) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsp + "\", \"5.0\", <=)"); @@ -502,7 +502,7 @@ TEST_P(ConditionGrammarTest, aVersionLessThanOrEqualToConditionForAPluginWithNoV TEST_P(ConditionGrammarTest, aVersionGreaterThanOrEqualToConditionWithAnActualPluginVersionEqualToTheGivenVersionShouldEvaluateToTrue) { ASSERT_NO_THROW(game_.Init(false, localPath)); - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsm + "\", \"5.0\", >=)"); @@ -517,7 +517,7 @@ TEST_P(ConditionGrammarTest, aVersionGreaterThanOrEqualToConditionWithAnActualPl } TEST_P(ConditionGrammarTest, aVersionGreaterThanOrEqualToConditionWithAnActualPluginVersionLessThanTheGivenVersionShouldEvaluateToFalse) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsm + "\", \"6.0\", >=)"); @@ -532,7 +532,7 @@ TEST_P(ConditionGrammarTest, aVersionGreaterThanOrEqualToConditionWithAnActualPl } TEST_P(ConditionGrammarTest, aVersionGreaterThanOrEqualToConditionForAPluginWithNoVersionShouldEvaluateToFalse) { - ASSERT_NO_THROW(game_.LoadPlugins(true)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(true)); Grammar grammar(&game_); std::string condition("version(\"" + blankEsp + "\", \"5.0\", >=)"); diff --git a/src/tests/backend/plugin/plugin_sorter_test.h b/src/tests/backend/plugin/plugin_sorter_test.h index a0f54d45..de31ea98 100644 --- a/src/tests/backend/plugin/plugin_sorter_test.h +++ b/src/tests/backend/plugin/plugin_sorter_test.h @@ -59,7 +59,7 @@ TEST_P(PluginSorterTest, sortingWithNoLoadedPluginsShouldReturnAnEmptyList) { } TEST_P(PluginSorterTest, sortingShouldNotMakeUnnecessaryChangesToAnExistingLoadOrder) { - ASSERT_NO_THROW(game_.LoadPlugins(false)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(false)); PluginSorter ps; std::vector expectedSortedOrder = getLoadOrder(); @@ -73,7 +73,7 @@ TEST_P(PluginSorterTest, sortingShouldNotMakeUnnecessaryChangesToAnExistingLoadO } TEST_P(PluginSorterTest, sortingShouldClearExistingGameMessages) { - ASSERT_NO_THROW(game_.LoadPlugins(false)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(false)); game_.AppendMessage(Message(MessageType::say, "1")); ASSERT_FALSE(game_.GetMessages().empty()); @@ -83,7 +83,7 @@ TEST_P(PluginSorterTest, sortingShouldClearExistingGameMessages) { } TEST_P(PluginSorterTest, failedSortShouldNotClearExistingGameMessages) { - ASSERT_NO_THROW(game_.LoadPlugins(false)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(false)); PluginMetadata plugin(blankEsm); plugin.LoadAfter({File(blankMasterDependentEsm)}); game_.GetUserlist().AddPlugin(plugin); @@ -96,7 +96,7 @@ TEST_P(PluginSorterTest, failedSortShouldNotClearExistingGameMessages) { } TEST_P(PluginSorterTest, sortingShouldEvaluateRelativeGlobalPriorities) { - ASSERT_NO_THROW(game_.LoadPlugins(false)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(false)); PluginMetadata plugin(blankDifferentMasterDependentEsp); plugin.GlobalPriority(Priority(-100)); game_.GetUserlist().AddPlugin(plugin); @@ -121,7 +121,7 @@ TEST_P(PluginSorterTest, sortingShouldEvaluateRelativeGlobalPriorities) { } TEST_P(PluginSorterTest, sortingWithGlobalPrioritiesShouldInheritRecursivelyRegardlessOfEvaluationOrder) { - ASSERT_NO_THROW(game_.LoadPlugins(false)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(false)); // Set Blank.esp's priority. PluginMetadata plugin(blankEsp); @@ -171,7 +171,7 @@ TEST_P(PluginSorterTest, sortingWithGlobalPrioritiesShouldInheritRecursivelyRega } TEST_P(PluginSorterTest, sortingShouldUseLoadAfterMetadataWhenDecidingRelativePluginPositions) { - ASSERT_NO_THROW(game_.LoadPlugins(false)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(false)); PluginMetadata plugin(blankEsp); plugin.LoadAfter({ File(blankDifferentEsp), @@ -199,7 +199,7 @@ TEST_P(PluginSorterTest, sortingShouldUseLoadAfterMetadataWhenDecidingRelativePl } TEST_P(PluginSorterTest, sortingShouldUseRequirementMetadataWhenDecidingRelativePluginPositions) { - ASSERT_NO_THROW(game_.LoadPlugins(false)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(false)); PluginMetadata plugin(blankEsp); plugin.Reqs({ File(blankDifferentEsp), @@ -227,7 +227,7 @@ TEST_P(PluginSorterTest, sortingShouldUseRequirementMetadataWhenDecidingRelative } TEST_P(PluginSorterTest, sortingShouldThrowIfACyclicInteractionIsEncountered) { - ASSERT_NO_THROW(game_.LoadPlugins(false)); + ASSERT_NO_THROW(game_.LoadAllInstalledPlugins(false)); PluginMetadata plugin(blankEsm); plugin.LoadAfter({File(blankMasterDependentEsm)}); game_.GetUserlist().AddPlugin(plugin);