From 5dced2d42df85299905bb585942b8fa580304e39 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Sat, 5 Dec 2015 15:23:37 +0000 Subject: [PATCH] Inherit Plugin from libespm This cuts down on data and method duplication --- src/backend/metadata/plugin_metadata.h | 7 +- src/backend/plugin/plugin.cpp | 104 +++++++++---------- src/backend/plugin/plugin.h | 14 ++- src/backend/plugin_sorter.cpp | 8 +- src/gui/handler.cpp | 2 +- src/tests/backend/game/test_game.h | 132 ++++++++++++------------- src/tests/backend/plugin/test_plugin.h | 24 ++--- 7 files changed, 140 insertions(+), 151 deletions(-) diff --git a/src/backend/metadata/plugin_metadata.h b/src/backend/metadata/plugin_metadata.h index 9212bd0e..90a1a73b 100644 --- a/src/backend/metadata/plugin_metadata.h +++ b/src/backend/metadata/plugin_metadata.h @@ -100,7 +100,7 @@ namespace loot { //Compare name string. bool operator == (const std::string& rhs) const; bool operator != (const std::string& rhs) const; - protected: + private: std::string name; bool enabled; //Default to true. bool _isPriorityExplicit; //If false and priority is 0, then priority was not explicitly set as such. @@ -108,10 +108,11 @@ namespace loot { std::set loadAfter; std::set requirements; std::set incompatibilities; - std::list messages; - std::set tags; std::set _dirtyInfo; std::set _locations; + protected: + std::list messages; + std::set tags; }; } diff --git a/src/backend/plugin/plugin.cpp b/src/backend/plugin/plugin.cpp index 363dbab0..8e9726e1 100644 --- a/src/backend/plugin/plugin.cpp +++ b/src/backend/plugin/plugin.cpp @@ -33,8 +33,6 @@ #include #include -#include - using namespace std; using libespm::FormId; @@ -92,62 +90,59 @@ namespace loot { regex(regex7, regex::ECMAScript | regex::icase) }); + // TODO: Remove the name-only constructor. Plugin::Plugin(const std::string& n) : PluginMetadata(n), + libespm::Plugin(libespm::GameId::SKYRIM), _isEmpty(true), _loadsBsa(false), - isMaster(false), crc(0), numOverrideRecords(0) {} - Plugin::Plugin(Game& game, const std::string& n, const bool headerOnly) : - PluginMetadata(n), + Plugin::Plugin(Game& game, const std::string& name, const bool headerOnly) : + PluginMetadata(name), + libespm::Plugin(game.LibespmId()), _isEmpty(true), _loadsBsa(false), - isMaster(false), crc(0), numOverrideRecords(0) { try { - boost::filesystem::path filepath = game.DataPath() / name; + boost::filesystem::path filepath = game.DataPath() / Name(); // In case the plugin is ghosted. if (!boost::filesystem::exists(filepath) && boost::filesystem::exists(filepath.string() + ".ghost")) filepath += ".ghost"; - libespm::Plugin plugin(game.LibespmId()); - plugin.load(filepath, headerOnly); + load(filepath, headerOnly); - isMaster = plugin.isMasterFile(); - masters = plugin.getMasters(); - formIDs = plugin.getFormIds(); - _isEmpty = plugin.getRecordAndGroupCount() == 0; + _isEmpty = getRecordAndGroupCount() == 0; if (!headerOnly) { - BOOST_LOG_TRIVIAL(trace) << name << ": Caching CRC value."; + BOOST_LOG_TRIVIAL(trace) << Name() << ": Caching CRC value."; crc = GetCrc32(filepath); - game.CacheCrc(name, crc); + game.CacheCrc(Name(), crc); } - BOOST_LOG_TRIVIAL(trace) << name << ": Counting override FormIDs."; - for (const auto& formID : formIDs) { - if (!boost::iequals(formID.getPluginName(), name)) + BOOST_LOG_TRIVIAL(trace) << Name() << ": Counting override FormIDs."; + for (const auto& formID : getFormIds()) { + if (!boost::iequals(formID.getPluginName(), Name())) ++numOverrideRecords; } //Also read Bash Tags applied and version string in description. - string text = plugin.getDescription(); - BOOST_LOG_TRIVIAL(trace) << name << ": " << "Attempting to read the version from the description."; + string text = getDescription(); + BOOST_LOG_TRIVIAL(trace) << Name() << ": " << "Attempting to read the version from the description."; for (size_t i = 0; i < version_checks.size(); ++i) { smatch what; if (regex_search(text, what, version_checks[i])) { //Use the first sub-expression match. version = string(what[1].first, what[1].second); boost::trim(version); - BOOST_LOG_TRIVIAL(info) << name << ": " << "Extracted version \"" << version << "\" using regex " << i + 1; + BOOST_LOG_TRIVIAL(info) << Name() << ": " << "Extracted version \"" << version << "\" using regex " << i + 1; break; } } - BOOST_LOG_TRIVIAL(trace) << name << ": " << "Attempting to extract Bash Tags from the description."; + BOOST_LOG_TRIVIAL(trace) << Name() << ": " << "Attempting to extract Bash Tags from the description."; size_t pos1 = text.find("{{BASH:"); if (pos1 != string::npos && pos1 + 7 != text.length()) { pos1 += 7; @@ -161,7 +156,7 @@ namespace loot { for (auto &tag : bashTags) { boost::trim(tag); - BOOST_LOG_TRIVIAL(trace) << name << ": " << "Extracted Bash Tag: " << tag; + BOOST_LOG_TRIVIAL(trace) << Name() << ": " << "Extracted Bash Tag: " << tag; tags.insert(Tag(tag)); } } @@ -170,11 +165,11 @@ namespace loot { // Get whether the plugin loads a BSA or not. if (game.Id() == Game::tes5) { // Skyrim plugins only load BSAs that exactly match their basename. - _loadsBsa = boost::filesystem::exists(game.DataPath() / (name.substr(0, name.length() - 3) + "bsa")); + _loadsBsa = boost::filesystem::exists(game.DataPath() / (Name().substr(0, Name().length() - 3) + "bsa")); } - else if (game.Id() != Game::tes4 || boost::iends_with(name, ".esp")) { + else if (game.Id() != Game::tes4 || boost::iends_with(Name(), ".esp")) { //Oblivion .esp files and FO3, FNV plugins can load BSAs which begin with the plugin basename. - string basename = name.substr(0, name.length() - 4); + string basename = Name().substr(0, Name().length() - 4); for (boost::filesystem::directory_iterator it(game.DataPath()); it != boost::filesystem::directory_iterator(); ++it) { if (it->path().extension().string() == ".bsa" && boost::istarts_with(it->path().filename().string(), basename)) { _loadsBsa = true; @@ -184,25 +179,23 @@ namespace loot { } } catch (std::exception& e) { - BOOST_LOG_TRIVIAL(error) << "Cannot read plugin file \"" << name << "\". Details: " << e.what(); + BOOST_LOG_TRIVIAL(error) << "Cannot read plugin file \"" << Name() << "\". Details: " << e.what(); messages.push_back(loot::Message(loot::Message::error, (boost::format(boost::locale::translate("Cannot read \"%1%\". Details: %2%")) % name % e.what()).str())); } - BOOST_LOG_TRIVIAL(trace) << name << ": " << "Plugin loading complete."; - } - - const std::set& Plugin::FormIDs() const { - return formIDs; + BOOST_LOG_TRIVIAL(trace) << Name() << ": " << "Plugin loading complete."; } bool Plugin::DoFormIDsOverlap(const Plugin& plugin) const { //Basically std::set_intersection except with an early exit instead of an append to results. //BOOST_LOG_TRIVIAL(trace) << "Checking for FormID overlap between \"" << name << "\" and \"" << plugin.Name() << "\"."; - set::const_iterator i = formIDs.begin(), - j = plugin.FormIDs().begin(), - iend = formIDs.end(), - jend = plugin.FormIDs().end(); + set formIds(getFormIds()); + set otherFormIds(plugin.getFormIds()); + auto i = begin(formIds); + auto j = begin(otherFormIds); + auto iend = end(formIds); + auto jend = end(otherFormIds); while (i != iend && j != jend) { if (*i < *j) @@ -221,22 +214,19 @@ namespace loot { } std::set Plugin::OverlapFormIDs(const Plugin& plugin) const { - set otherFormIDs = plugin.FormIDs(); + set formIds(getFormIds()); + set otherFormIds(plugin.getFormIds()); set overlap; - set_intersection(formIDs.begin(), formIDs.end(), otherFormIDs.begin(), otherFormIDs.end(), inserter(overlap, overlap.end())); + set_intersection(begin(formIds), + end(formIds), + begin(otherFormIds), + end(otherFormIds), + inserter(overlap, end(overlap))); return overlap; } - std::vector Plugin::Masters() const { - return masters; - } - - bool Plugin::IsMaster() const { - return isMaster; - } - bool Plugin::IsEmpty() const { return _isEmpty; } @@ -268,7 +258,7 @@ namespace loot { } bool Plugin::IsActive(const Game& game) const { - return game.IsPluginActive(name); + return game.IsPluginActive(Name()); } std::string Plugin::Version() const { @@ -280,45 +270,45 @@ namespace loot { } bool Plugin::CheckInstallValidity(const Game& game) { - BOOST_LOG_TRIVIAL(trace) << "Checking that the current install is valid according to " << name << "'s data."; + BOOST_LOG_TRIVIAL(trace) << "Checking that the current install is valid according to " << Name() << "'s data."; if (IsActive(game)) { auto pluginExists = [](const Game& game, const std::string& file) { return boost::filesystem::exists(game.DataPath() / file) || ((boost::iends_with(file, ".esp") || boost::iends_with(file, ".esm")) && boost::filesystem::exists(game.DataPath() / (file + ".ghost"))); }; if (tags.find(Tag("Filter")) == tags.end()) { - for (const auto &master : masters) { + for (const auto &master : getMasters()) { if (!pluginExists(game, master)) { - BOOST_LOG_TRIVIAL(error) << "\"" << name << "\" requires \"" << master << "\", but it is missing."; + BOOST_LOG_TRIVIAL(error) << "\"" << Name() << "\" requires \"" << master << "\", but it is missing."; messages.push_back(Message(Message::error, (boost::format(boost::locale::translate("This plugin requires \"%1%\" to be installed, but it is missing.")) % master).str())); } else if (!Plugin(master).IsActive(game)) { - BOOST_LOG_TRIVIAL(error) << "\"" << name << "\" requires \"" << master << "\", but it is inactive."; + BOOST_LOG_TRIVIAL(error) << "\"" << Name() << "\" requires \"" << master << "\", but it is inactive."; messages.push_back(Message(Message::error, (boost::format(boost::locale::translate("This plugin requires \"%1%\" to be active, but it is inactive.")) % master).str())); } } } - for (const auto &req : requirements) { + for (const auto &req : Reqs()) { if (!pluginExists(game, req.Name())) { - BOOST_LOG_TRIVIAL(error) << "\"" << name << "\" requires \"" << req.Name() << "\", but it is missing."; + BOOST_LOG_TRIVIAL(error) << "\"" << Name() << "\" requires \"" << req.Name() << "\", but it is missing."; messages.push_back(loot::Message(Message::error, (boost::format(boost::locale::translate("This plugin requires \"%1%\" to be installed, but it is missing.")) % req.Name()).str())); } } - for (const auto &inc : incompatibilities) { + for (const auto &inc : Incs()) { if (pluginExists(game, inc.Name()) && Plugin(inc.Name()).IsActive(game)) { - BOOST_LOG_TRIVIAL(error) << "\"" << name << "\" is incompatible with \"" << inc.Name() << "\", but both are present."; + BOOST_LOG_TRIVIAL(error) << "\"" << Name() << "\" is incompatible with \"" << inc.Name() << "\", but both are present."; messages.push_back(loot::Message(Message::error, (boost::format(boost::locale::translate("This plugin is incompatible with \"%1%\", but both are present.")) % inc.Name()).str())); } } } // Also generate dirty messages. - for (const auto &element : _dirtyInfo) { + for (const auto &element : DirtyInfo()) { messages.push_back(element.AsMessage()); } - return !_dirtyInfo.empty(); + return !DirtyInfo().empty(); } bool Plugin::LoadsBSA() const { diff --git a/src/backend/plugin/plugin.h b/src/backend/plugin/plugin.h index 30a85ac8..11b7ab4b 100644 --- a/src/backend/plugin/plugin.h +++ b/src/backend/plugin/plugin.h @@ -34,19 +34,20 @@ #include -#include +#include namespace loot { class Game; - class Plugin : public PluginMetadata { + class Plugin : public PluginMetadata, private libespm::Plugin { public: Plugin(const std::string& name); Plugin(Game& game, const std::string& name, const bool headerOnly); - const std::set& FormIDs() const; - std::vector Masters() const; - bool IsMaster() const; //Checks master bit flag. + using libespm::Plugin::getFormIds; + using libespm::Plugin::getMasters; + using libespm::Plugin::isMasterFile; + bool IsEmpty() const; std::string Version() const; uint32_t Crc() const; @@ -65,10 +66,7 @@ namespace loot { private: bool _isEmpty; // Does the plugin contain any records other than the TES4 header? bool _loadsBsa; - std::vector masters; - std::set formIDs; std::string version; //Obtained from description field. - bool isMaster; uint32_t crc; //Useful caches. diff --git a/src/backend/plugin_sorter.cpp b/src/backend/plugin_sorter.cpp index f0776fa7..71dd420c 100644 --- a/src/backend/plugin_sorter.cpp +++ b/src/backend/plugin_sorter.cpp @@ -268,13 +268,13 @@ namespace loot { loot::vertex_it vit2 = vit; ++vit2; while (vit2 != vitend) { - if (graph[*vit].IsMaster() == graph[*vit2].IsMaster()) { + if (graph[*vit].isMasterFile() == graph[*vit2].isMasterFile()) { ++vit2; continue; } vertex_t vertex, parentVertex; - if (graph[*vit2].IsMaster()) { + if (graph[*vit2].isMasterFile()) { parentVertex = *vit2; vertex = *vit; } @@ -292,7 +292,7 @@ namespace loot { } BOOST_LOG_TRIVIAL(trace) << "Adding in-edges for masters."; - vector strVec(graph[*vit].Masters()); + vector strVec(graph[*vit].getMasters()); for (const auto &master : strVec) { if (GetVertexByName(master, parentVertex) && !boost::edge(parentVertex, *vit, graph).second) { @@ -361,7 +361,7 @@ namespace loot { for (boost::tie(vit2, vitend2) = boost::vertices(graph); vit2 != vitend2; ++vit2) { if (graph[*vit].Priority() == graph[*vit2].Priority() || (abs(graph[*vit].Priority()) < max_priority && abs(graph[*vit2].Priority()) < max_priority - && !graph[*vit].FormIDs().empty() && !graph[*vit2].FormIDs().empty() && !graph[*vit].DoFormIDsOverlap(graph[*vit2]) + && !graph[*vit].getFormIds().empty() && !graph[*vit2].getFormIds().empty() && !graph[*vit].DoFormIDsOverlap(graph[*vit2]) ) ) { continue; diff --git a/src/gui/handler.cpp b/src/gui/handler.cpp index 962f53df..29520284 100644 --- a/src/gui/handler.cpp +++ b/src/gui/handler.cpp @@ -742,7 +742,7 @@ namespace loot { pluginNode["name"] = plugin.Name(); pluginNode["isActive"] = plugin.IsActive(_lootState.CurrentGame()); pluginNode["isEmpty"] = plugin.IsEmpty(); - pluginNode["isMaster"] = plugin.IsMaster(); + pluginNode["isMaster"] = plugin.isMasterFile(); pluginNode["loadsBSA"] = plugin.LoadsBSA(); pluginNode["crc"] = IntToHexString(plugin.Crc()); pluginNode["version"] = plugin.Version(); diff --git a/src/tests/backend/game/test_game.h b/src/tests/backend/game/test_game.h index 6b653de9..bc0146b5 100644 --- a/src/tests/backend/game/test_game.h +++ b/src/tests/backend/game/test_game.h @@ -274,7 +274,7 @@ TEST_F(Game, LoadPlugins) { loot::Plugin plugin = game.plugins.find("skyrim.esm")->second; EXPECT_EQ("Skyrim.esm", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_TRUE(plugin.IsMaster()); + EXPECT_TRUE(plugin.isMasterFile()); EXPECT_EQ(std::set({ libespm::FormId("Skyrim.esm", std::vector(), 0xCF0), libespm::FormId("Skyrim.esm", std::vector(), 0xCF1), @@ -286,8 +286,8 @@ TEST_F(Game, LoadPlugins) { libespm::FormId("Skyrim.esm", std::vector(), 0xCF7), libespm::FormId("Skyrim.esm", std::vector(), 0xCF8), libespm::FormId("Skyrim.esm", std::vector(), 0xCF9), - }), plugin.FormIDs()); - EXPECT_TRUE(plugin.Masters().empty()); + }), plugin.getFormIds()); + EXPECT_TRUE(plugin.getMasters().empty()); EXPECT_EQ("5.0", plugin.Version()); EXPECT_EQ(0x187BE342, plugin.Crc()); EXPECT_EQ(0, plugin.NumOverrideFormIDs()); @@ -296,7 +296,7 @@ TEST_F(Game, LoadPlugins) { plugin = game.plugins.find("blank.esm")->second; EXPECT_EQ("Blank.esm", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_TRUE(plugin.IsMaster()); + EXPECT_TRUE(plugin.isMasterFile()); EXPECT_EQ(std::set({ libespm::FormId("Blank.esm", std::vector(), 0xCF0), libespm::FormId("Blank.esm", std::vector(), 0xCF1), @@ -308,8 +308,8 @@ TEST_F(Game, LoadPlugins) { libespm::FormId("Blank.esm", std::vector(), 0xCF7), libespm::FormId("Blank.esm", std::vector(), 0xCF8), libespm::FormId("Blank.esm", std::vector(), 0xCF9), - }), plugin.FormIDs()); - EXPECT_TRUE(plugin.Masters().empty()); + }), plugin.getFormIds()); + EXPECT_TRUE(plugin.getMasters().empty()); EXPECT_EQ("5.0", plugin.Version()); EXPECT_EQ(0x187BE342, plugin.Crc()); EXPECT_EQ(0, plugin.NumOverrideFormIDs()); @@ -318,7 +318,7 @@ TEST_F(Game, LoadPlugins) { plugin = game.plugins.find("blank - different.esm")->second; EXPECT_EQ("Blank - Different.esm", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_TRUE(plugin.IsMaster()); + EXPECT_TRUE(plugin.isMasterFile()); EXPECT_EQ(std::set({ libespm::FormId("Blank - Different.esm", std::vector(), 0xCEF), libespm::FormId("Blank - Different.esm", std::vector(), 0xCF0), @@ -329,8 +329,8 @@ TEST_F(Game, LoadPlugins) { libespm::FormId("Blank - Different.esm", std::vector(), 0xCF5), libespm::FormId("Blank - Different.esm", std::vector(), 0xCF6), libespm::FormId("Blank - Different.esm", std::vector(), 0xCF7), - }), plugin.FormIDs()); - EXPECT_TRUE(plugin.Masters().empty()); + }), plugin.getFormIds()); + EXPECT_TRUE(plugin.getMasters().empty()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0x64B9F757, plugin.Crc()); EXPECT_EQ(0, plugin.NumOverrideFormIDs()); @@ -339,7 +339,7 @@ TEST_F(Game, LoadPlugins) { plugin = game.plugins.find("blank - master dependent.esm")->second; EXPECT_EQ("Blank - Master Dependent.esm", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_TRUE(plugin.IsMaster()); + EXPECT_TRUE(plugin.isMasterFile()); EXPECT_EQ(std::set({ libespm::FormId("Blank.esm", std::vector(), 0xCF0), libespm::FormId("Blank.esm", std::vector(), 0xCF1), @@ -349,10 +349,10 @@ TEST_F(Game, LoadPlugins) { libespm::FormId("Blank - Master Dependent.esm", std::vector(), 0xCEB), libespm::FormId("Blank - Master Dependent.esm", std::vector(), 0xCEC), libespm::FormId("Blank - Master Dependent.esm", std::vector(), 0xCED), - }), plugin.FormIDs()); + }), plugin.getFormIds()); EXPECT_EQ(std::vector({ "Blank.esm" - }), plugin.Masters()); + }), plugin.getMasters()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0xB2D4119E, plugin.Crc()); EXPECT_EQ(4, plugin.NumOverrideFormIDs()); @@ -361,7 +361,7 @@ TEST_F(Game, LoadPlugins) { plugin = game.plugins.find("blank - different master dependent.esm")->second; EXPECT_EQ("Blank - Different Master Dependent.esm", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_TRUE(plugin.IsMaster()); + EXPECT_TRUE(plugin.isMasterFile()); EXPECT_EQ(std::set({ libespm::FormId("Blank - Different.esm", std::vector(), 0xCEF), libespm::FormId("Blank - Different.esm", std::vector(), 0xCF0), @@ -370,10 +370,10 @@ TEST_F(Game, LoadPlugins) { libespm::FormId("Blank - Different Master Dependent.esm", std::vector(), 0xCE9), libespm::FormId("Blank - Different Master Dependent.esm", std::vector(), 0xCEA), libespm::FormId("Blank - Different Master Dependent.esm", std::vector(), 0xCEB), - }), plugin.FormIDs()); + }), plugin.getFormIds()); EXPECT_EQ(std::vector({ "Blank - Different.esm" - }), plugin.Masters()); + }), plugin.getMasters()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0xAADF6710, plugin.Crc()); EXPECT_EQ(4, plugin.NumOverrideFormIDs()); @@ -382,7 +382,7 @@ TEST_F(Game, LoadPlugins) { plugin = game.plugins.find("blank.esp")->second; EXPECT_EQ("Blank.esp", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_FALSE(plugin.IsMaster()); + EXPECT_FALSE(plugin.isMasterFile()); EXPECT_EQ(std::set({ libespm::FormId("Blank.esp", std::vector(), 0xCEC), libespm::FormId("Blank.esp", std::vector(), 0xCED), @@ -390,8 +390,8 @@ TEST_F(Game, LoadPlugins) { libespm::FormId("Blank.esp", std::vector(), 0xCEF), libespm::FormId("Blank.esp", std::vector(), 0xCF0), libespm::FormId("Blank.esp", std::vector(), 0xCF1), - }), plugin.FormIDs()); - EXPECT_TRUE(plugin.Masters().empty()); + }), plugin.getFormIds()); + EXPECT_TRUE(plugin.getMasters().empty()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0x24F0E2A1, plugin.Crc()); EXPECT_EQ(0, plugin.NumOverrideFormIDs()); @@ -400,15 +400,15 @@ TEST_F(Game, LoadPlugins) { plugin = game.plugins.find("blank - different.esp")->second; EXPECT_EQ("Blank - Different.esp", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_FALSE(plugin.IsMaster()); + EXPECT_FALSE(plugin.isMasterFile()); EXPECT_EQ(std::set({ libespm::FormId("Blank - Different.esp", std::vector(), 0xCEB), libespm::FormId("Blank - Different.esp", std::vector(), 0xCEC), libespm::FormId("Blank - Different.esp", std::vector(), 0xCED), libespm::FormId("Blank - Different.esp", std::vector(), 0xCEE), libespm::FormId("Blank - Different.esp", std::vector(), 0xCEF), - }), plugin.FormIDs()); - EXPECT_TRUE(plugin.Masters().empty()); + }), plugin.getFormIds()); + EXPECT_TRUE(plugin.getMasters().empty()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0xD4C9B7AE, plugin.Crc()); EXPECT_EQ(0, plugin.NumOverrideFormIDs()); @@ -417,16 +417,16 @@ TEST_F(Game, LoadPlugins) { plugin = game.plugins.find("blank - master dependent.esp")->second; EXPECT_EQ("Blank - Master Dependent.esp", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_FALSE(plugin.IsMaster()); + EXPECT_FALSE(plugin.isMasterFile()); EXPECT_EQ(std::set({ libespm::FormId("Blank.esm", std::vector(), 0xCF0), libespm::FormId("Blank.esm", std::vector(), 0xCF1), libespm::FormId("Blank - Master Dependent.esp", std::vector(), 0xCE9), libespm::FormId("Blank - Master Dependent.esp", std::vector(), 0xCEA), - }), plugin.FormIDs()); + }), plugin.getFormIds()); EXPECT_EQ(std::vector({ "Blank.esm" - }), plugin.Masters()); + }), plugin.getMasters()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0x832152DC, plugin.Crc()); EXPECT_EQ(2, plugin.NumOverrideFormIDs()); @@ -435,15 +435,15 @@ TEST_F(Game, LoadPlugins) { plugin = game.plugins.find("blank - different master dependent.esp")->second; EXPECT_EQ("Blank - Different Master Dependent.esp", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_FALSE(plugin.IsMaster()); + EXPECT_FALSE(plugin.isMasterFile()); EXPECT_EQ(std::set({ libespm::FormId("Blank - Different.esm", std::vector(), 0xCEF), libespm::FormId("Blank - Different.esm", std::vector(), 0xCF0), libespm::FormId("Blank - Different Master Dependent.esp", std::vector(), 0xCE7), - }), plugin.FormIDs()); + }), plugin.getFormIds()); EXPECT_EQ(std::vector({ "Blank - Different.esm" - }), plugin.Masters()); + }), plugin.getMasters()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0x3AD17683, plugin.Crc()); EXPECT_EQ(2, plugin.NumOverrideFormIDs()); @@ -452,14 +452,14 @@ TEST_F(Game, LoadPlugins) { plugin = game.plugins.find("blank - plugin dependent.esp")->second; EXPECT_EQ("Blank - Plugin Dependent.esp", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_FALSE(plugin.IsMaster()); + EXPECT_FALSE(plugin.isMasterFile()); EXPECT_EQ(std::set({ libespm::FormId("Blank.esp", std::vector(), 0xCEC), libespm::FormId("Blank - Plugin Dependent.esp", std::vector(), 0xCE7), - }), plugin.FormIDs()); + }), plugin.getFormIds()); EXPECT_EQ(std::vector({ "Blank.esp" - }), plugin.Masters()); + }), plugin.getMasters()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0x28EF26DB, plugin.Crc()); EXPECT_EQ(1, plugin.NumOverrideFormIDs()); @@ -468,13 +468,13 @@ TEST_F(Game, LoadPlugins) { plugin = game.plugins.find("blank - different plugin dependent.esp")->second; EXPECT_EQ("Blank - Different Plugin Dependent.esp", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_FALSE(plugin.IsMaster()); + EXPECT_FALSE(plugin.isMasterFile()); EXPECT_EQ(std::set({ libespm::FormId("Blank - Different.esp", std::vector(), 0xCEB), - }), plugin.FormIDs()); + }), plugin.getFormIds()); EXPECT_EQ(std::vector({ "Blank - Different.esp" - }), plugin.Masters()); + }), plugin.getMasters()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0xEB47BE63, plugin.Crc()); EXPECT_EQ(1, plugin.NumOverrideFormIDs()); @@ -492,9 +492,9 @@ TEST_F(Game, LoadPlugins_HeadersOnly) { loot::Plugin plugin = game.plugins.find("skyrim.esm")->second; EXPECT_EQ("Skyrim.esm", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_TRUE(plugin.IsMaster()); - EXPECT_TRUE(plugin.FormIDs().empty()); - EXPECT_TRUE(plugin.Masters().empty()); + EXPECT_TRUE(plugin.isMasterFile()); + EXPECT_TRUE(plugin.getFormIds().empty()); + EXPECT_TRUE(plugin.getMasters().empty()); EXPECT_EQ("5.0", plugin.Version()); EXPECT_EQ(0, plugin.Crc()); EXPECT_EQ(0, plugin.NumOverrideFormIDs()); @@ -503,9 +503,9 @@ TEST_F(Game, LoadPlugins_HeadersOnly) { plugin = game.plugins.find("blank.esm")->second; EXPECT_EQ("Blank.esm", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_TRUE(plugin.IsMaster()); - EXPECT_TRUE(plugin.FormIDs().empty()); - EXPECT_TRUE(plugin.Masters().empty()); + EXPECT_TRUE(plugin.isMasterFile()); + EXPECT_TRUE(plugin.getFormIds().empty()); + EXPECT_TRUE(plugin.getMasters().empty()); EXPECT_EQ("5.0", plugin.Version()); EXPECT_EQ(0, plugin.Crc()); EXPECT_EQ(0, plugin.NumOverrideFormIDs()); @@ -514,9 +514,9 @@ TEST_F(Game, LoadPlugins_HeadersOnly) { plugin = game.plugins.find("blank - different.esm")->second; EXPECT_EQ("Blank - Different.esm", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_TRUE(plugin.IsMaster()); - EXPECT_TRUE(plugin.FormIDs().empty()); - EXPECT_TRUE(plugin.Masters().empty()); + EXPECT_TRUE(plugin.isMasterFile()); + EXPECT_TRUE(plugin.getFormIds().empty()); + EXPECT_TRUE(plugin.getMasters().empty()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0, plugin.Crc()); EXPECT_EQ(0, plugin.NumOverrideFormIDs()); @@ -525,11 +525,11 @@ TEST_F(Game, LoadPlugins_HeadersOnly) { plugin = game.plugins.find("blank - master dependent.esm")->second; EXPECT_EQ("Blank - Master Dependent.esm", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_TRUE(plugin.IsMaster()); - EXPECT_TRUE(plugin.FormIDs().empty()); + EXPECT_TRUE(plugin.isMasterFile()); + EXPECT_TRUE(plugin.getFormIds().empty()); EXPECT_EQ(std::vector({ "Blank.esm" - }), plugin.Masters()); + }), plugin.getMasters()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0, plugin.Crc()); EXPECT_EQ(0, plugin.NumOverrideFormIDs()); @@ -538,11 +538,11 @@ TEST_F(Game, LoadPlugins_HeadersOnly) { plugin = game.plugins.find("blank - different master dependent.esm")->second; EXPECT_EQ("Blank - Different Master Dependent.esm", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_TRUE(plugin.IsMaster()); - EXPECT_TRUE(plugin.FormIDs().empty()); + EXPECT_TRUE(plugin.isMasterFile()); + EXPECT_TRUE(plugin.getFormIds().empty()); EXPECT_EQ(std::vector({ "Blank - Different.esm" - }), plugin.Masters()); + }), plugin.getMasters()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0, plugin.Crc()); EXPECT_EQ(0, plugin.NumOverrideFormIDs()); @@ -551,9 +551,9 @@ TEST_F(Game, LoadPlugins_HeadersOnly) { plugin = game.plugins.find("blank.esp")->second; EXPECT_EQ("Blank.esp", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_FALSE(plugin.IsMaster()); - EXPECT_TRUE(plugin.FormIDs().empty()); - EXPECT_TRUE(plugin.Masters().empty()); + EXPECT_FALSE(plugin.isMasterFile()); + EXPECT_TRUE(plugin.getFormIds().empty()); + EXPECT_TRUE(plugin.getMasters().empty()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0, plugin.Crc()); EXPECT_EQ(0, plugin.NumOverrideFormIDs()); @@ -562,9 +562,9 @@ TEST_F(Game, LoadPlugins_HeadersOnly) { plugin = game.plugins.find("blank - different.esp")->second; EXPECT_EQ("Blank - Different.esp", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_FALSE(plugin.IsMaster()); - EXPECT_TRUE(plugin.FormIDs().empty()); - EXPECT_TRUE(plugin.Masters().empty()); + EXPECT_FALSE(plugin.isMasterFile()); + EXPECT_TRUE(plugin.getFormIds().empty()); + EXPECT_TRUE(plugin.getMasters().empty()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0, plugin.Crc()); EXPECT_EQ(0, plugin.NumOverrideFormIDs()); @@ -573,11 +573,11 @@ TEST_F(Game, LoadPlugins_HeadersOnly) { plugin = game.plugins.find("blank - master dependent.esp")->second; EXPECT_EQ("Blank - Master Dependent.esp", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_FALSE(plugin.IsMaster()); - EXPECT_TRUE(plugin.FormIDs().empty()); + EXPECT_FALSE(plugin.isMasterFile()); + EXPECT_TRUE(plugin.getFormIds().empty()); EXPECT_EQ(std::vector({ "Blank.esm" - }), plugin.Masters()); + }), plugin.getMasters()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0, plugin.Crc()); EXPECT_EQ(0, plugin.NumOverrideFormIDs()); @@ -586,11 +586,11 @@ TEST_F(Game, LoadPlugins_HeadersOnly) { plugin = game.plugins.find("blank - different master dependent.esp")->second; EXPECT_EQ("Blank - Different Master Dependent.esp", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_FALSE(plugin.IsMaster()); - EXPECT_TRUE(plugin.FormIDs().empty()); + EXPECT_FALSE(plugin.isMasterFile()); + EXPECT_TRUE(plugin.getFormIds().empty()); EXPECT_EQ(std::vector({ "Blank - Different.esm" - }), plugin.Masters()); + }), plugin.getMasters()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0, plugin.Crc()); EXPECT_EQ(0, plugin.NumOverrideFormIDs()); @@ -599,11 +599,11 @@ TEST_F(Game, LoadPlugins_HeadersOnly) { plugin = game.plugins.find("blank - plugin dependent.esp")->second; EXPECT_EQ("Blank - Plugin Dependent.esp", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_FALSE(plugin.IsMaster()); - EXPECT_TRUE(plugin.FormIDs().empty()); + EXPECT_FALSE(plugin.isMasterFile()); + EXPECT_TRUE(plugin.getFormIds().empty()); EXPECT_EQ(std::vector({ "Blank.esp" - }), plugin.Masters()); + }), plugin.getMasters()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0, plugin.Crc()); EXPECT_EQ(0, plugin.NumOverrideFormIDs()); @@ -612,11 +612,11 @@ TEST_F(Game, LoadPlugins_HeadersOnly) { plugin = game.plugins.find("blank - different plugin dependent.esp")->second; EXPECT_EQ("Blank - Different Plugin Dependent.esp", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_FALSE(plugin.IsMaster()); - EXPECT_TRUE(plugin.FormIDs().empty()); + EXPECT_FALSE(plugin.isMasterFile()); + EXPECT_TRUE(plugin.getFormIds().empty()); EXPECT_EQ(std::vector({ "Blank - Different.esp" - }), plugin.Masters()); + }), plugin.getMasters()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0, plugin.Crc()); EXPECT_EQ(0, plugin.NumOverrideFormIDs()); diff --git a/src/tests/backend/plugin/test_plugin.h b/src/tests/backend/plugin/test_plugin.h index 25e6567a..f18b5f8e 100644 --- a/src/tests/backend/plugin/test_plugin.h +++ b/src/tests/backend/plugin/test_plugin.h @@ -33,9 +33,9 @@ class Plugin : public SkyrimTest {}; TEST_F(Plugin, ConstructorsAndDataAccess) { loot::Plugin plugin("Blank.esm"); EXPECT_EQ("Blank.esm", plugin.Name()); - EXPECT_TRUE(plugin.FormIDs().empty()); - EXPECT_TRUE(plugin.Masters().empty()); - EXPECT_FALSE(plugin.IsMaster()); + EXPECT_TRUE(plugin.getFormIds().empty()); + EXPECT_TRUE(plugin.getMasters().empty()); + EXPECT_FALSE(plugin.isMasterFile()); EXPECT_TRUE(plugin.IsEmpty()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0, plugin.Crc()); @@ -46,9 +46,9 @@ TEST_F(Plugin, ConstructorsAndDataAccess) { plugin = loot::Plugin(game, "Blank.esm", true); EXPECT_EQ("Blank.esm", plugin.Name()); - EXPECT_TRUE(plugin.FormIDs().empty()); - EXPECT_TRUE(plugin.Masters().empty()); - EXPECT_TRUE(plugin.IsMaster()); + EXPECT_TRUE(plugin.getFormIds().empty()); + EXPECT_TRUE(plugin.getMasters().empty()); + EXPECT_TRUE(plugin.isMasterFile()); EXPECT_FALSE(plugin.IsEmpty()); EXPECT_EQ("5.0", plugin.Version()); EXPECT_EQ(0, plugin.Crc()); @@ -66,9 +66,9 @@ TEST_F(Plugin, ConstructorsAndDataAccess) { libespm::FormId("Blank.esm", std::vector(), 0xCF7), libespm::FormId("Blank.esm", std::vector(), 0xCF8), libespm::FormId("Blank.esm", std::vector(), 0xCF9), - }), plugin.FormIDs()); - EXPECT_TRUE(plugin.Masters().empty()); - EXPECT_TRUE(plugin.IsMaster()); + }), plugin.getFormIds()); + EXPECT_TRUE(plugin.getMasters().empty()); + EXPECT_TRUE(plugin.isMasterFile()); EXPECT_FALSE(plugin.IsEmpty()); EXPECT_EQ("5.0", plugin.Version()); EXPECT_EQ(0x187BE342, plugin.Crc()); @@ -76,16 +76,16 @@ TEST_F(Plugin, ConstructorsAndDataAccess) { plugin = loot::Plugin(game, "Blank - Master Dependent.esp", false); EXPECT_EQ("Blank - Master Dependent.esp", plugin.Name()); EXPECT_FALSE(plugin.IsEmpty()); - EXPECT_FALSE(plugin.IsMaster()); + EXPECT_FALSE(plugin.isMasterFile()); EXPECT_EQ(std::set({ libespm::FormId("Blank.esm", std::vector(), 0xCF0), libespm::FormId("Blank.esm", std::vector(), 0xCF1), libespm::FormId("Blank - Master Dependent.esp", std::vector(), 0xCE9), libespm::FormId("Blank - Master Dependent.esp", std::vector(), 0xCEA), - }), plugin.FormIDs()); + }), plugin.getFormIds()); EXPECT_EQ(std::vector({ "Blank.esm" - }), plugin.Masters()); + }), plugin.getMasters()); EXPECT_EQ("", plugin.Version()); EXPECT_EQ(0x832152DC, plugin.Crc()); }