Skip to content

Commit 970332d

Browse files
authored
Implementation for GetVariables() RPC method
1 parent 12608b0 commit 970332d

File tree

3 files changed

+43
-2
lines changed

3 files changed

+43
-2
lines changed

tools/projmgr/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ include(FetchContent)
2424
FetchContent_Declare(
2525
rpc-interface
2626
DOWNLOAD_EXTRACT_TIMESTAMP ON
27-
URL https://github.com/Open-CMSIS-Pack/csolution-rpc/releases/download/v0.0.6/csolution-rpc.zip
28-
URL_HASH SHA256=86bce42eaef998cb37f3623931068056625d471e80032695946081531359ba5f
27+
URL https://github.com/Open-CMSIS-Pack/csolution-rpc/releases/download/v0.0.7/csolution-rpc.zip
28+
URL_HASH SHA256=ad004d41e10862eb5b153b509a0e3edde09d0cb69595c96c908bf1f5ab1e65f8
2929
)
3030
FetchContent_MakeAvailable(rpc-interface)
3131

tools/projmgr/src/ProjMgrRpcServer.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ class RpcHandler : public RpcMethods {
8686
RpcArgs::UsedItems GetUsedItems(const string& context) override;
8787
RpcArgs::PacksInfo GetPacksInfo(const string& context, const bool& all) override;
8888
RpcArgs::SuccessResult SelectPack(const string& context, const RpcArgs::PackReference& pack) override;
89+
RpcArgs::VariablesResult GetVariables(const string& context) override;
8990
RpcArgs::DeviceList GetDeviceList(const string& context, const string& namePattern, const string& vendor) override;
9091
RpcArgs::DeviceInfo GetDeviceInfo(const string& id) override;
9192
RpcArgs::BoardList GetBoardList(const string& context, const string& namePattern, const string& vendor) override;
@@ -474,6 +475,15 @@ RpcArgs::PacksInfo RpcHandler::GetPacksInfo(const string& context, const bool& a
474475
return packsInfo;
475476
}
476477

478+
RpcArgs::VariablesResult RpcHandler::GetVariables(const string& context) {
479+
RpcArgs::VariablesResult res;
480+
res.success = false;
481+
auto& contextItem = GetContext(context);
482+
res.variables = contextItem.variables;
483+
res.success = true;
484+
return res;
485+
}
486+
477487
RpcArgs::DeviceList RpcHandler::GetDeviceList(const string& context, const string& namePattern, const string& vendor)
478488
{
479489
RpcArgs::DeviceList deviceList{{false}};

tools/projmgr/test/src/ProjMgrRpcTests.cpp

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,4 +1145,35 @@ TEST_F(ProjMgrRpcTests, RpcListMissingPacks) {
11451145
EXPECT_EQ(responses[2]["result"]["message"], "Setup of solution contexts failed");
11461146
}
11471147

1148+
TEST_F(ProjMgrRpcTests, RpcGetVariables) {
1149+
vector<string> contextList = {
1150+
"variables.BuildType1+TargetType1",
1151+
};
1152+
1153+
auto requests = CreateLoadRequests("/TestLayers/variables.csolution.yml", "TargetType1", contextList);
1154+
int id = 3;
1155+
for(const auto& context : contextList) {
1156+
requests += FormatRequest(id++, "GetVariables", json({{ "context", context }}));
1157+
}
1158+
1159+
const auto& responses = RunRpcMethods(requests);
1160+
1161+
EXPECT_TRUE(responses[2]["result"]["success"]);
1162+
map<string, string> vars = responses[2]["result"]["variables"];
1163+
1164+
EXPECT_EQ(vars["BuildType"], "BuildType1");
1165+
EXPECT_EQ(vars["Compiler"], "AC6");
1166+
EXPECT_EQ(vars["Dname"], "RteTest_ARMCM0");
1167+
EXPECT_EQ(vars["Dpack"], testcmsispack_folder + "/ARM/RteTest_DFP/0.2.0/");
1168+
EXPECT_EQ(vars["Pname"], "");
1169+
EXPECT_EQ(vars["Project"], "variables");
1170+
EXPECT_EQ(vars["Solution"], "variables");
1171+
EXPECT_EQ(vars["TargetType"], "TargetType1");
1172+
EXPECT_EQ(vars["VarBuildLayer"], "./variables/build1.clayer.yml");
1173+
EXPECT_EQ(vars["VarSolution"], "./variables/app.clayer.yml");
1174+
EXPECT_EQ(vars["VarSolutionDir"], testinput_folder + "/TestLayers/variables/solutionDir.clayer.yml");
1175+
EXPECT_EQ(vars["VarTargetLayer"], "./variables/target1.clayer.yml");
1176+
}
1177+
1178+
11481179
// end of ProjMgrRpcTests.cpp

0 commit comments

Comments
 (0)