logic: visual studio solution parsing
Can now parse visual studio solutions. VS Plugin can send a command, parsing is implemented in Coati. Some minor changes: added project file icon, added language check to vs plugin
This commit is contained in:
@@ -31,4 +31,5 @@ add_files(
|
||||
TokenLocationCollectionTestSuite.h
|
||||
UtilityStringTestSuite.h
|
||||
Vector2TestSuite.h
|
||||
VsSolutionParserTestSuite.h
|
||||
)
|
||||
|
||||
@@ -18,7 +18,7 @@ public:
|
||||
std::stringstream message;
|
||||
message << type << divider << filePath << divider << row << divider << column << endOfMessageToken;
|
||||
|
||||
NetworkProtocolHelper::NetworkMessage networkMessage = NetworkProtocolHelper::parseMessage(message.str());
|
||||
NetworkProtocolHelper::SetActiveTokenMessage networkMessage = NetworkProtocolHelper::parseSetActiveTokenMessage(message.str());
|
||||
|
||||
TS_ASSERT_EQUALS(networkMessage.fileLocation, filePath);
|
||||
TS_ASSERT_EQUALS(networkMessage.row, row);
|
||||
@@ -28,7 +28,7 @@ public:
|
||||
// invalid type
|
||||
message.str("");
|
||||
message << "foo" << divider << filePath << divider << row << divider << column << endOfMessageToken;
|
||||
networkMessage = NetworkProtocolHelper::parseMessage(message.str());
|
||||
networkMessage = NetworkProtocolHelper::parseSetActiveTokenMessage(message.str());
|
||||
|
||||
TS_ASSERT_EQUALS(networkMessage.fileLocation, "");
|
||||
TS_ASSERT_EQUALS(networkMessage.row, 0);
|
||||
@@ -38,7 +38,7 @@ public:
|
||||
// missing divider
|
||||
message.str("");
|
||||
message << type << divider << filePath << row << divider << column << endOfMessageToken;
|
||||
networkMessage = NetworkProtocolHelper::parseMessage(message.str());
|
||||
networkMessage = NetworkProtocolHelper::parseSetActiveTokenMessage(message.str());
|
||||
|
||||
TS_ASSERT_EQUALS(networkMessage.fileLocation, "");
|
||||
TS_ASSERT_EQUALS(networkMessage.row, 0);
|
||||
@@ -48,7 +48,7 @@ public:
|
||||
// invalid row
|
||||
message.str("");
|
||||
message << type << divider << filePath << divider << "potato" << divider << column << endOfMessageToken;
|
||||
networkMessage = NetworkProtocolHelper::parseMessage(message.str());
|
||||
networkMessage = NetworkProtocolHelper::parseSetActiveTokenMessage(message.str());
|
||||
|
||||
TS_ASSERT_EQUALS(networkMessage.fileLocation, "");
|
||||
TS_ASSERT_EQUALS(networkMessage.row, 0);
|
||||
@@ -58,7 +58,7 @@ public:
|
||||
// invalid column
|
||||
message.str("");
|
||||
message << type << divider << filePath << divider << row << divider << "laz0r" << endOfMessageToken;
|
||||
networkMessage = NetworkProtocolHelper::parseMessage(message.str());
|
||||
networkMessage = NetworkProtocolHelper::parseSetActiveTokenMessage(message.str());
|
||||
|
||||
TS_ASSERT_EQUALS(networkMessage.fileLocation, "");
|
||||
TS_ASSERT_EQUALS(networkMessage.row, 0);
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
#include "cxxtest/TestSuite.h"
|
||||
|
||||
#include "utility/logging/logging.h"
|
||||
#include "utility/solution/SolutionParserVisualStudio.h"
|
||||
|
||||
class VsSolutionParserTestSuite : public CxxTest::TestSuite
|
||||
{
|
||||
public:
|
||||
void test_load_solution()
|
||||
{
|
||||
SolutionParserVisualStudio parser;
|
||||
parser.openSolutionFile("data/vsSolutionParserTestSuite/Coati.sln");
|
||||
|
||||
// TS_ASSERT_EQUALS(10186, parser.getSolutionCharCount());
|
||||
}
|
||||
|
||||
void test_get_project_files()
|
||||
{
|
||||
SolutionParserVisualStudio parser;
|
||||
parser.openSolutionFile("data/vsSolutionParserTestSuite/Coati.sln");
|
||||
std::vector<std::string> projects = parser.getProjects();
|
||||
|
||||
TS_ASSERT_EQUALS(9, projects.size());
|
||||
TS_ASSERT_EQUALS("ALL_BUILD.vcxproj", projects[0]);
|
||||
TS_ASSERT_EQUALS("Coati.vcxproj", projects[1]);
|
||||
TS_ASSERT_EQUALS("Coati_lib.vcxproj", projects[2]);
|
||||
TS_ASSERT_EQUALS("Coati_lib_gui.vcxproj", projects[3]);
|
||||
TS_ASSERT_EQUALS("Coati_lib_parser.vcxproj", projects[4]);
|
||||
TS_ASSERT_EQUALS("Coati_test.vcxproj", projects[5]);
|
||||
TS_ASSERT_EQUALS("Coati_trial.vcxproj", projects[6]);
|
||||
TS_ASSERT_EQUALS("ZERO_CHECK.vcxproj", projects[7]);
|
||||
TS_ASSERT_EQUALS("versionnumber.vcxproj", projects[8]);
|
||||
}
|
||||
|
||||
void test_get_solution_name()
|
||||
{
|
||||
SolutionParserVisualStudio parser;
|
||||
parser.openSolutionFile("data/vsSolutionParserTestSuite/Coati.sln");
|
||||
std::string solutionName = parser.getSolutionName();
|
||||
|
||||
TS_ASSERT_EQUALS("Coati", solutionName);
|
||||
}
|
||||
|
||||
void test_get_include_paths()
|
||||
{
|
||||
SolutionParserVisualStudio parser;
|
||||
parser.openSolutionFile("data/vsSolutionParserTestSuite/Coati.sln");
|
||||
std::vector<std::string> includePaths = parser.getIncludePaths();
|
||||
|
||||
TS_ASSERT_EQUALS(23, includePaths.size());
|
||||
}
|
||||
|
||||
void test_get_()
|
||||
{
|
||||
SolutionParserVisualStudio parser;
|
||||
parser.openSolutionFile("data/vsSolutionParserTestSuite/Coati.sln");
|
||||
std::vector<std::string> projectItems = parser.getProjectItems();
|
||||
|
||||
TS_ASSERT_EQUALS(447, projectItems.size());
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user