Skip to content

Commit 6cf6b21

Browse files
authored
refs #14226 - ImportProject: removed need for test class friend declaration / cleanups (danmar#8182)
1 parent 8f83c60 commit 6cf6b21

File tree

2 files changed

+18
-14
lines changed

2 files changed

+18
-14
lines changed

lib/importproject.h

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ namespace cppcheck {
5555
* @brief Importing project settings.
5656
*/
5757
class CPPCHECKLIB WARN_UNUSED ImportProject {
58-
friend class TestImporter;
5958
public:
6059
enum class Type : std::uint8_t {
6160
NONE,
@@ -69,9 +68,11 @@ class CPPCHECKLIB WARN_UNUSED ImportProject {
6968
CPPCHECK_GUI
7069
};
7170

71+
protected:
7272
static void fsSetDefines(FileSettings& fs, std::string defs);
7373
static void fsSetIncludePaths(FileSettings& fs, const std::string &basepath, const std::list<std::string> &in, std::map<std::string, std::string, cppcheck::stricmp> &variables);
7474

75+
public:
7576
std::list<FileSettings> fileSettings;
7677
std::vector<std::string> errors;
7778

@@ -103,24 +104,25 @@ class CPPCHECKLIB WARN_UNUSED ImportProject {
103104
bool importCompileCommands(std::istream &istr);
104105
bool importCppcheckGuiProject(std::istream &istr, Settings &settings, Suppressions &supprs);
105106
static std::string collectArgs(const std::string &cmd, std::vector<std::string> &args);
106-
static void parseArgs(FileSettings &fs, const std::vector<std::string> &args);
107107

108-
private:
109108
struct SharedItemsProject {
110109
bool successful = false;
111110
std::string pathToProjectFile;
112111
std::vector<std::string> includePaths;
113112
std::vector<std::string> sourceFiles;
114113
};
115114

116-
bool importSln(std::istream &istr, const std::string &path, const std::vector<std::string> &fileFilters);
117-
SharedItemsProject importVcxitems(const std::string &filename, const std::vector<std::string> &fileFilters, std::vector<SharedItemsProject> &cache);
118115
bool importVcxproj(const std::string &filename, std::map<std::string, std::string, cppcheck::stricmp> &variables, const std::string &additionalIncludeDirectories, const std::vector<std::string> &fileFilters, std::vector<SharedItemsProject> &cache);
119116
bool importVcxproj(const std::string &filename, const tinyxml2::XMLDocument &doc, std::map<std::string, std::string, cppcheck::stricmp> &variables, const std::string &additionalIncludeDirectories, const std::vector<std::string> &fileFilters, std::vector<SharedItemsProject> &cache);
120-
bool importBcb6Prj(const std::string &projectFilename);
121117

118+
private:
119+
static void parseArgs(FileSettings &fs, const std::vector<std::string> &args);
122120
void setRelativePaths(const std::string &filename);
123121

122+
bool importSln(std::istream &istr, const std::string &path, const std::vector<std::string> &fileFilters);
123+
SharedItemsProject importVcxitems(const std::string &filename, const std::vector<std::string> &fileFilters, std::vector<SharedItemsProject> &cache);
124+
bool importBcb6Prj(const std::string &projectFilename);
125+
124126
std::string mPath;
125127
std::set<std::string> mAllVSConfigs;
126128
};

test/testimportproject.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,15 @@
3232
#include <utility>
3333
#include <vector>
3434

35-
class TestImporter : public ImportProject {
35+
class TestImporter final : public ImportProject {
3636
public:
3737
using ImportProject::importCompileCommands;
3838
using ImportProject::importCppcheckGuiProject;
3939
using ImportProject::importVcxproj;
4040
using ImportProject::SharedItemsProject;
4141
using ImportProject::collectArgs;
42+
using ImportProject::fsSetDefines;
43+
using ImportProject::fsSetIncludePaths;
4244
};
4345

4446

@@ -88,24 +90,24 @@ class TestImportProject : public TestFixture {
8890
void setDefines() const {
8991
FileSettings fs{"test.cpp", Standards::Language::CPP, 0};
9092

91-
ImportProject::fsSetDefines(fs, "A");
93+
TestImporter::fsSetDefines(fs, "A");
9294
ASSERT_EQUALS("A=1", fs.defines);
9395

94-
ImportProject::fsSetDefines(fs, "A;B;");
96+
TestImporter::fsSetDefines(fs, "A;B;");
9597
ASSERT_EQUALS("A=1;B=1", fs.defines);
9698

97-
ImportProject::fsSetDefines(fs, "A;;B;");
99+
TestImporter::fsSetDefines(fs, "A;;B;");
98100
ASSERT_EQUALS("A=1;B=1", fs.defines);
99101

100-
ImportProject::fsSetDefines(fs, "A;;B");
102+
TestImporter::fsSetDefines(fs, "A;;B");
101103
ASSERT_EQUALS("A=1;B=1", fs.defines);
102104
}
103105

104106
void setIncludePaths1() const {
105107
FileSettings fs{"test.cpp", Standards::Language::CPP, 0};
106108
std::list<std::string> in(1, "../include");
107109
std::map<std::string, std::string, cppcheck::stricmp> variables;
108-
ImportProject::fsSetIncludePaths(fs, "abc/def/", in, variables);
110+
TestImporter::fsSetIncludePaths(fs, "abc/def/", in, variables);
109111
ASSERT_EQUALS(1U, fs.includePaths.size());
110112
ASSERT_EQUALS("abc/include/", fs.includePaths.front());
111113
}
@@ -115,7 +117,7 @@ class TestImportProject : public TestFixture {
115117
std::list<std::string> in(1, "$(SolutionDir)other");
116118
std::map<std::string, std::string, cppcheck::stricmp> variables;
117119
variables["SolutionDir"] = "c:/abc/";
118-
ImportProject::fsSetIncludePaths(fs, "/home/fred", in, variables);
120+
TestImporter::fsSetIncludePaths(fs, "/home/fred", in, variables);
119121
ASSERT_EQUALS(1U, fs.includePaths.size());
120122
ASSERT_EQUALS("c:/abc/other/", fs.includePaths.front());
121123
}
@@ -125,7 +127,7 @@ class TestImportProject : public TestFixture {
125127
std::list<std::string> in(1, "$(SOLUTIONDIR)other");
126128
std::map<std::string, std::string, cppcheck::stricmp> variables;
127129
variables["SolutionDir"] = "c:/abc/";
128-
ImportProject::fsSetIncludePaths(fs, "/home/fred", in, variables);
130+
TestImporter::fsSetIncludePaths(fs, "/home/fred", in, variables);
129131
ASSERT_EQUALS(1U, fs.includePaths.size());
130132
ASSERT_EQUALS("c:/abc/other/", fs.includePaths.front());
131133
}

0 commit comments

Comments
 (0)