Skip to content

Commit d1705f3

Browse files
packchk: fixed "update-rte-files" which generated RTE folder while checking (#1439)
* packchk: fixed "update-rte-files" which generated RTE folder while checking * fixed compile error
1 parent 9225fee commit d1705f3

2 files changed

Lines changed: 47 additions & 1 deletion

File tree

tools/packchk/src/ValidateSemantic.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -622,6 +622,7 @@ bool ValidateSemantic::CheckDeviceDependencies(RteDeviceItem *device, RteProject
622622
}
623623

624624
rteProject->Clear();
625+
rteProject->SetAttribute("update-rte-files", "0");
625626
rteProject->AddTarget("Test", filter.GetAttributes(), true, true);
626627
rteProject->SetActiveTarget("Test");
627628
RteTarget* target = rteProject->GetActiveTarget();
@@ -851,6 +852,7 @@ bool ValidateSemantic::TestMcuDependencies(RtePackage* pKg)
851852
if(!rteProject || !pKg) {
852853
return false;
853854
}
855+
rteProject->SetAttribute("update-rte-files", "0");
854856

855857
model.GetLatestPackage("ARM.CMSIS");
856858

@@ -883,6 +885,7 @@ bool ValidateSemantic::TestComponentDependencies()
883885
if(!rteProject) {
884886
return true;
885887
}
888+
rteProject->SetAttribute("update-rte-files", "0");
886889

887890
bool bOk = true;
888891
for(auto &[compKey, component] : model.GetComponentList()) {
@@ -908,6 +911,7 @@ bool ValidateSemantic::TestComponentDependencies()
908911

909912
XmlItem filter;
910913
rteProject->Clear();
914+
rteProject->SetAttribute("update-rte-files", "0");
911915
rteProject->AddTarget("Test", filter.GetAttributes(), true, true);
912916
rteProject->SetActiveTarget("Test");
913917
RteTarget* target = rteProject->GetActiveTarget();

tools/packchk/test/integtests/src/PackChkIntegTests.cpp

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,23 @@
1212

1313
using namespace std;
1414

15+
class CurrentFolderScope {
16+
public:
17+
explicit CurrentFolderScope(const string& path) :
18+
m_previousPath(RteFsUtils::GetCurrentFolder(false))
19+
{
20+
RteFsUtils::SetCurrentFolder(path);
21+
}
22+
23+
~CurrentFolderScope()
24+
{
25+
RteFsUtils::SetCurrentFolder(m_previousPath);
26+
}
27+
28+
private:
29+
string m_previousPath;
30+
};
31+
1532
class PackChkIntegTests : public ::testing::Test {
1633
public:
1734
void SetUp() override;
@@ -135,6 +152,32 @@ TEST_F(PackChkIntegTests, CheckValidPack) {
135152
EXPECT_EQ(0, packChk.Check(2, argv, nullptr));
136153
}
137154

155+
TEST_F(PackChkIntegTests, CheckValidPackDoesNotCreateRteDirectory) {
156+
const char* argv[2];
157+
158+
const string& pdscFile = PackChkIntegTestEnv::globaltestdata_dir +
159+
"/packs/ARM/RteTest_DFP/0.1.1/ARM.RteTest_DFP.pdsc";
160+
ASSERT_TRUE(RteFsUtils::Exists(pdscFile));
161+
162+
const string workDir = PackChkIntegTestEnv::testoutput_dir + "/NoRteSideEffects";
163+
if (RteFsUtils::Exists(workDir)) {
164+
RteFsUtils::RemoveDir(workDir);
165+
}
166+
ASSERT_TRUE(RteFsUtils::CreateDirectories(workDir));
167+
ASSERT_FALSE(RteFsUtils::Exists(workDir + "/RTE"));
168+
169+
argv[0] = (char*)"";
170+
argv[1] = (char*)pdscFile.c_str();
171+
172+
{
173+
CurrentFolderScope cwd(workDir);
174+
PackChk packChk;
175+
EXPECT_EQ(0, packChk.Check(2, argv, nullptr));
176+
}
177+
178+
EXPECT_FALSE(RteFsUtils::Exists(workDir + "/RTE"));
179+
}
180+
138181
// Validate invalid software pack
139182
TEST_F(PackChkIntegTests, CheckInvalidPack) {
140183
const char* argv[3];
@@ -1301,4 +1344,3 @@ TEST_F(PackChkIntegTests, CheckConditionComponentDependency_Neg) {
13011344
FAIL() << "error: warning M317 count != 4";
13021345
}
13031346
}
1304-

0 commit comments

Comments
 (0)