McuSupport: Show toolchain packages in UI

For new implementation toolchain  packages must be added
to rest of traget's packages to be visible in UI.

Change-Id: I6804a114e05caac1d864ceffb378f3f61481c433
Reviewed-by: Dawid Śliwa <dawid.sliwa@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Piotr Mućko
2022-06-17 16:01:06 +02:00
parent bc2aee1af5
commit c1a223549b
3 changed files with 45 additions and 14 deletions

View File

@@ -82,12 +82,15 @@ QPair<Targets, Packages> McuTargetFactory::createTargets(const McuTargetDescript
if (!toolchain || !toolchainFile) if (!toolchain || !toolchainFile)
continue; continue;
Packages targetPackages = createPackages(desc); Packages targetPackages = createPackages(desc);
McuToolChainPackagePtr toolchainPtr{toolchain};
targetPackages.insert({toolchainPtr});
targetPackages.unite({toolchainFile});
packages.unite(targetPackages); packages.unite(targetPackages);
mcuTargets.append(McuTargetPtr{new McuTarget{QVersionNumber::fromString(desc.qulVersion), mcuTargets.append(McuTargetPtr{new McuTarget{QVersionNumber::fromString(desc.qulVersion),
platform, platform,
deduceOperatingSystem(desc), deduceOperatingSystem(desc),
targetPackages, targetPackages,
McuToolChainPackagePtr{toolchain}, toolchainPtr,
toolchainFile, toolchainFile,
colorDepth}}); colorDepth}});
} }

View File

@@ -233,6 +233,16 @@ void verifyBoardSdk(const McuPackagePtr &boardSdk,
McuSupportTest::McuSupportTest() McuSupportTest::McuSupportTest()
: targetFactory{settingsMockPtr} : targetFactory{settingsMockPtr}
, compilerDescription{armGccLabel, armGccEnvVar, Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, armGccLabel, armGccDirectorySetting, {}, {}, {}, false}
, toochainFileDescription{armGccLabel, armGccEnvVar, Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE, armGccLabel, armGccDirectorySetting, {}, {}, {}, false}
, targetDescription {
"2.0.1",
"2",
platformDescription,
Sdk::McuTargetDescription::Toolchain{armGcc, {}, compilerDescription, toochainFileDescription},
Sdk::PackageDescription{},
Sdk::McuTargetDescription::FreeRTOS{},
}
, toolchainPackagePtr{new McuToolChainPackage{ , toolchainPackagePtr{new McuToolChainPackage{
settingsMockPtr, settingsMockPtr,
{}, // label {}, // label
@@ -274,15 +284,6 @@ McuSupportTest::McuSupportTest()
void McuSupportTest::initTestCase() void McuSupportTest::initTestCase()
{ {
targetDescription = Sdk::McuTargetDescription{
"2.0.1",
"2",
platformDescription,
Sdk::McuTargetDescription::Toolchain{},
Sdk::PackageDescription{},
Sdk::McuTargetDescription::FreeRTOS{},
};
EXPECT_CALL(*freeRtosPackage, environmentVariableName()) EXPECT_CALL(*freeRtosPackage, environmentVariableName())
.WillRepeatedly(Return(QString{freeRtosEnvVar})); .WillRepeatedly(Return(QString{freeRtosEnvVar}));
EXPECT_CALL(*freeRtosPackage, cmakeVariableName()) EXPECT_CALL(*freeRtosPackage, cmakeVariableName())
@@ -573,16 +574,41 @@ void McuSupportTest::test_createTargets()
targetDescription.toolchain.id = armGcc; targetDescription.toolchain.id = armGcc;
const auto [targets, packages]{targetFactory.createTargets(targetDescription, qtForMcuSdkPath)}; const auto [targets, packages]{targetFactory.createTargets(targetDescription, qtForMcuSdkPath)};
QVERIFY(!targets.empty()); QCOMPARE(targets.size(), 1);
const McuTargetPtr target{targets.at(0)}; const McuTargetPtr target{targets.at(0)};
QCOMPARE(target->colorDepth(), colorDepth);
const auto &tgtPackages{target->packages()};
QVERIFY(!tgtPackages.empty());
QCOMPARE(target->colorDepth(), colorDepth);
const auto &tgtPackages{target->packages()};
QCOMPARE(tgtPackages.size(), 4);
// target should contain freertos package
QVERIFY(anyOf(tgtPackages, [](const McuPackagePtr &pkg) { QVERIFY(anyOf(tgtPackages, [](const McuPackagePtr &pkg) {
return (pkg->environmentVariableName() == nxp1064FreeRtosEnvVar return (pkg->environmentVariableName() == nxp1064FreeRtosEnvVar
&& pkg->cmakeVariableName() == freeRtosCMakeVar && pkg->label() == id); && pkg->cmakeVariableName() == freeRtosCMakeVar && pkg->label() == id);
})); }));
// all packages should contain target's tooclhain compiler package.
QVERIFY(anyOf(packages, [](const McuPackagePtr &pkg) {
return (pkg->cmakeVariableName() == Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE);
}));
// target should contain tooclhain copmiler package.
QVERIFY(anyOf(tgtPackages, [](const McuPackagePtr &pkg) {
return (pkg->cmakeVariableName()
== Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE /*and pkg->disconnect*/);
}));
// all packages should contain target's tooclhain file package.
QVERIFY(anyOf(packages, [](const McuPackagePtr &pkg) {
return (pkg->cmakeVariableName() == Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE);
}));
// target should contain tooclhain file package.
QVERIFY(anyOf(tgtPackages, [](const McuPackagePtr &pkg) {
return (pkg->cmakeVariableName()
== Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE /*and pkg->disconnect*/);
}));
} }
void McuSupportTest::test_createPackages() void McuSupportTest::test_createPackages()

View File

@@ -102,6 +102,8 @@ private:
QSharedPointer<SettingsHandlerMock> settingsMockPtr{new SettingsHandlerMock}; QSharedPointer<SettingsHandlerMock> settingsMockPtr{new SettingsHandlerMock};
McuTargetFactory targetFactory; McuTargetFactory targetFactory;
Sdk::PackageDescription compilerDescription;
Sdk::PackageDescription toochainFileDescription;
Sdk::McuTargetDescription targetDescription; Sdk::McuTargetDescription targetDescription;
McuToolChainPackagePtr toolchainPackagePtr; McuToolChainPackagePtr toolchainPackagePtr;
McuToolChainPackagePtr armGccToolchainPackagePtr; McuToolChainPackagePtr armGccToolchainPackagePtr;