McuSupport: 3rd party packages creation tests

Change-Id: I0f9ed6c49b28007c617627525fc081ae9152e3f1
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Piotr Mućko
2022-09-27 23:10:46 +02:00
committed by Yasser Grimes
parent a0af1fa927
commit 9b47b1575a
8 changed files with 195 additions and 66 deletions

View File

@@ -37,15 +37,13 @@ McuPackage::McuPackage(const SettingsHandler::Ptr &settingsHandler,
const QStringList &versions, const QStringList &versions,
const QString &downloadUrl, const QString &downloadUrl,
const McuPackageVersionDetector *versionDetector, const McuPackageVersionDetector *versionDetector,
const bool addToSystemPath, const bool addToSystemPath)
const FilePath &relativePathModifier)
: settingsHandler(settingsHandler) : settingsHandler(settingsHandler)
, m_label(label) , m_label(label)
, m_defaultPath(settingsHandler->getPath(settingsKey, QSettings::SystemScope, defaultPath)) , m_defaultPath(settingsHandler->getPath(settingsKey, QSettings::SystemScope, defaultPath))
, m_detectionPath(detectionPath) , m_detectionPath(detectionPath)
, m_settingsKey(settingsKey) , m_settingsKey(settingsKey)
, m_versionDetector(versionDetector) , m_versionDetector(versionDetector)
, m_relativePathModifier(relativePathModifier)
, m_versions(versions) , m_versions(versions)
, m_cmakeVariableName(cmakeVarName) , m_cmakeVariableName(cmakeVarName)
, m_environmentVariableName(envVarName) , m_environmentVariableName(envVarName)
@@ -100,7 +98,7 @@ FilePath McuPackage::basePath() const
FilePath McuPackage::path() const FilePath McuPackage::path() const
{ {
return (basePath() / m_relativePathModifier.path()).cleanPath(); return basePath().cleanPath();
} }
FilePath McuPackage::defaultPath() const FilePath McuPackage::defaultPath() const

View File

@@ -40,8 +40,7 @@ public:
const QStringList &versions = {}, const QStringList &versions = {},
const QString &downloadUrl = {}, const QString &downloadUrl = {},
const McuPackageVersionDetector *versionDetector = nullptr, const McuPackageVersionDetector *versionDetector = nullptr,
const bool addToPath = false, const bool addToPath = false);
const Utils::FilePath &relativePathModifier = Utils::FilePath());
~McuPackage() override = default; ~McuPackage() override = default;
@@ -85,7 +84,6 @@ private:
QScopedPointer<const McuPackageVersionDetector> m_versionDetector; QScopedPointer<const McuPackageVersionDetector> m_versionDetector;
Utils::FilePath m_path; Utils::FilePath m_path;
Utils::FilePath m_relativePathModifier; // relative path to m_path to be returned by path()
QString m_detectedVersion; QString m_detectedVersion;
QStringList m_versions; QStringList m_versions;
const QString m_cmakeVariableName; const QString m_cmakeVariableName;

View File

@@ -361,15 +361,12 @@ McuPackagePtr createStm32CubeProgrammerPackage(const SettingsHandler::Ptr &setti
{ {
FilePath defaultPath; FilePath defaultPath;
const QString cubePath = "STMicroelectronics/STM32Cube/STM32CubeProgrammer"; const QString cubePath = "STMicroelectronics/STM32Cube/STM32CubeProgrammer";
if (HostOsInfo::isWindowsHost()) { if (HostOsInfo::isWindowsHost())
const FilePath programPath = findInProgramFiles(cubePath); defaultPath = findInProgramFiles(cubePath) / "bin";
if (!programPath.isEmpty()) else
defaultPath = programPath; defaultPath = FileUtils::homePath() / cubePath / "bin";
} else { if (!defaultPath.exists())
const FilePath programPath = FileUtils::homePath() / cubePath; FilePath defaultPath = {};
if (programPath.exists())
defaultPath = programPath;
}
const FilePath detectionPath = FilePath::fromUserInput( const FilePath detectionPath = FilePath::fromUserInput(
QLatin1String(Utils::HostOsInfo::isWindowsHost() ? "/bin/STM32_Programmer_CLI.exe" QLatin1String(Utils::HostOsInfo::isWindowsHost() ? "/bin/STM32_Programmer_CLI.exe"
@@ -386,8 +383,7 @@ McuPackagePtr createStm32CubeProgrammerPackage(const SettingsHandler::Ptr &setti
{}, // versions {}, // versions
"https://www.st.com/en/development-tools/stm32cubeprog.html", // download url "https://www.st.com/en/development-tools/stm32cubeprog.html", // download url
nullptr, // version detector nullptr, // version detector
true, // add to path true // add to path
"/bin" // relative path modifier
)}; )};
} }

View File

@@ -18,6 +18,7 @@ constexpr auto armgcc_stm32f469i_discovery_baremetal_json = R"(
"id": "STM32CubeProgrammer_PATH", "id": "STM32CubeProgrammer_PATH",
"label": "STM32CubeProgrammer", "label": "STM32CubeProgrammer",
"type": "path", "type": "path",
"setting": "Stm32CubeProgrammer",
"defaultValue": { "defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/", "windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/",
"unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" "unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/"

View File

@@ -17,14 +17,15 @@ constexpr auto ghs_rh850_d1m1a_baremetal_json = R"(
{ {
"id": "FlashProgrammer_path", "id": "FlashProgrammer_path",
"setting": "FlashProgrammerPath", "setting": "FlashProgrammerPath",
"label": "Path to Renesas Flash Programmer", "label": "Renesas Flash Programmer",
"type": "path", "type": "path",
"setting": "RenesasFlashProgrammer",
"cmakeVar": "RENESAS_FLASH_PROGRAMMER_PATH", "cmakeVar": "RENESAS_FLASH_PROGRAMMER_PATH",
"defaultValue": { "defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/Renesas Electronics/Programming Tools/Renesas Flash Programmer V3.09", "windows": "%{Env:PROGRAMSANDFILES}/Renesas Electronics/Programming Tools/Renesas Flash Programmer V3.09",
"unix": "%{Env:HOME}" "unix": "%{Env:HOME}"
}, },
"envVar": "RenesasFlashProgrammer_PATH", "envVar": "RENESAS_FLASH_PROGRAMMER_PATH",
"optional": true, "optional": true,
"addToSystemPath": true "addToSystemPath": true
} }

View File

@@ -18,6 +18,7 @@ constexpr auto iar_stm32f469i_discovery_baremetal_json = R"(
"id": "STM32CubeProgrammer_PATH", "id": "STM32CubeProgrammer_PATH",
"label": "STM32CubeProgrammer", "label": "STM32CubeProgrammer",
"type": "path", "type": "path",
"setting": "Stm32CubeProgrammer",
"defaultValue": { "defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/", "windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/",
"unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" "unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/"

View File

@@ -3,6 +3,7 @@
#include "unittest.h" #include "unittest.h"
#include "armgcc_ek_ra6m3g_baremetal_json.h"
#include "armgcc_mimxrt1050_evk_freertos_json.h" #include "armgcc_mimxrt1050_evk_freertos_json.h"
#include "armgcc_mimxrt1064_evk_freertos_json.h" #include "armgcc_mimxrt1064_evk_freertos_json.h"
#include "armgcc_mimxrt1170_evk_freertos_json.h" #include "armgcc_mimxrt1170_evk_freertos_json.h"
@@ -11,6 +12,7 @@
#include "errors_json.h" #include "errors_json.h"
#include "gcc_desktop_json.h" #include "gcc_desktop_json.h"
#include "ghs_rh850_d1m1a_baremetal_json.h" #include "ghs_rh850_d1m1a_baremetal_json.h"
#include "ghs_tviic2d6m_baremetal_json.h"
#include "iar_mimxrt1064_evk_freertos_json.h" #include "iar_mimxrt1064_evk_freertos_json.h"
#include "iar_stm32f469i_discovery_baremetal_json.h" #include "iar_stm32f469i_discovery_baremetal_json.h"
#include "msvc_desktop_json.h" #include "msvc_desktop_json.h"
@@ -123,6 +125,43 @@ const char vendor[]{"target_vendor"};
const QString settingsPrefix = QLatin1String(Constants::SETTINGS_GROUP) + '/' const QString settingsPrefix = QLatin1String(Constants::SETTINGS_GROUP) + '/'
+ QLatin1String(Constants::SETTINGS_KEY_PACKAGE_PREFIX); + QLatin1String(Constants::SETTINGS_KEY_PACKAGE_PREFIX);
const char defaultToolPath[]{"/opt/biz/foo"};
const char xpressoIdePath[]{"/usr/local/mcuxpressoide"};
const char xpressoIdeLabel[]{"MCUXpresso IDE"};
const char xpressoIdeSetting[]{"MCUXpressoIDE"};
const char xpressoIdeCmakeVar[]{"MCUXPRESSO_IDE_PATH"};
const char xpressoIdeEnvVar[]{"MCUXpressoIDE_PATH"};
const char xpressoIdeDetectionPath[]{"ide/binaries/crt_emu_cm_redlink"};
const char stmCubeProgrammerSetting[]{"Stm32CubeProgrammer"};
const char stmCubeProgrammerLabel[]{"STM32CubeProgrammer"};
const QString stmCubeProgrammerPath{QString{defaultToolPath} + "/bin"};
const QString stmCubeProgrammerDetectionPath{"/bin/STM32_Programmer.sh"};
const char renesasProgrammerSetting[]{"RenesasFlashProgrammer"};
const char renesasProgrammerCmakeVar[]{"RENESAS_FLASH_PROGRAMMER_PATH"};
const QString renesasProgrammerEnvVar{renesasProgrammerCmakeVar};
const char renesasProgrammerLabel[]{"Renesas Flash Programmer"};
const char renesasProgrammerDetectionPath[]{"rfp-cli"};
const char renesasE2StudioCmakeVar[]{"EK_RA6M3G_E2_PROJECT_PATH"};
const char renesasE2StudioDefaultPath[]{"%{Env:HOME}/e2_studio/workspace"};
const QString renesasE2StudioPath{(FileUtils::homePath() / "/e2_studio/workspace").toUserOutput()};
const char renesasE2StudioLabel[]{"Path to project for Renesas e2 Studio"};
const char renesasE2StudioSetting[]{"RenesasE2StudioPath"};
const char cypressProgrammerSetting[]{"CypressAutoFlashUtil"};
const char cypressProgrammerCmakeVar[]{"INFINEON_AUTO_FLASH_UTILITY_DIR"};
const char cypressProgrammerEnvVar[]{"CYPRESS_AUTO_FLASH_UTILITY_DIR"};
const char cypressProgrammerLabel[]{"Cypress Auto Flash Utility"};
const char cypressProgrammerDetectionPath[]{"/bin/openocd"};
const char jlinkPath[]{"/opt/SEGGER/JLink"};
const char jlinkSetting[]{"JLinkPath"};
const char jlinkCmakeVar[]{"JLINK_PATH"};
const char jlinkEnvVar[]{"JLINK_PATH"};
const char jlinkLabel[]{"Path to SEGGER J-Link"};
const QString unsupportedToolchainFilePath = QString{qtForMcuSdkPath} const QString unsupportedToolchainFilePath = QString{qtForMcuSdkPath}
+ "/lib/cmake/Qul/toolchain/unsupported.cmake"; + "/lib/cmake/Qul/toolchain/unsupported.cmake";
@@ -282,6 +321,7 @@ void verifyPackage(const McuPackagePtr &package,
const QString &cmakeVar, const QString &cmakeVar,
const QString &envVar, const QString &envVar,
const QString &label, const QString &label,
const QString &detectionPath,
const QStringList &versions) const QStringList &versions)
{ {
QVERIFY(package); QVERIFY(package);
@@ -290,6 +330,7 @@ void verifyPackage(const McuPackagePtr &package,
QCOMPARE(package->cmakeVariableName(), cmakeVar); QCOMPARE(package->cmakeVariableName(), cmakeVar);
QCOMPARE(package->environmentVariableName(), envVar); QCOMPARE(package->environmentVariableName(), envVar);
QCOMPARE(package->label(), label); QCOMPARE(package->label(), label);
QCOMPARE(package->detectionPath().toString(), detectionPath);
QCOMPARE(package->settingsKey(), setting); QCOMPARE(package->settingsKey(), setting);
QCOMPARE(package->versions(), versions); QCOMPARE(package->versions(), versions);
} }
@@ -928,11 +969,12 @@ void McuSupportTest::test_createTargetWithToolchainPackages()
verifyPackage(qtForMCUsSDK, verifyPackage(qtForMCUsSDK,
qtForMcuSdkPath, qtForMcuSdkPath,
{}, // qtForMcuSdkPath {},
Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK, Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK,
QUL_CMAKE_VAR, QUL_CMAKE_VAR,
QUL_ENV_VAR, QUL_ENV_VAR,
QUL_LABEL, QUL_LABEL,
{},
{}); {});
verifyTargetToolchains(targets, verifyTargetToolchains(targets,
@@ -1372,76 +1414,164 @@ void McuSupportTest::test_resolveCmakeVariablesInDefaultPath()
void McuSupportTest::test_legacy_createThirdPartyPackage_data() void McuSupportTest::test_legacy_createThirdPartyPackage_data()
{ {
const QString defaultToolPath{"/opt/biz/foo"};
const char xpressoIdeSetting[]{"MCUXpressoIDE"};
const char xpressoIdeCmakeVar[]{"MCUXPRESSO_IDE_PATH"};
const char xpressoIdeEnvVar[]{"MCUXpressoIDE_PATH"};
const char stmCubeProgrammerSetting[]{"Stm32CubeProgrammer"};
const QString stmCubeProgrammerPath{defaultToolPath + "/bin"};
const char renesasProgrammerSetting[]{"RenesasFlashProgrammer"};
const char renesasProgrammerCmakeVar[]{"RENESAS_FLASH_PROGRAMMER_PATH"};
const QString renesasProgrammerEnvVar{renesasProgrammerCmakeVar};
const char cypressProgrammerSetting[]{"CypressAutoFlashUtil"};
const char cypressProgrammerCmakeVar[]{"INFINEON_AUTO_FLASH_UTILITY_DIR"};
const char cypressProgrammerEnvVar[]{"CYPRESS_AUTO_FLASH_UTILITY_DIR"};
QTest::addColumn<PackageCreator>("creator"); QTest::addColumn<PackageCreator>("creator");
QTest::addColumn<QString>("json");
QTest::addColumn<QString>("path"); QTest::addColumn<QString>("path");
QTest::addColumn<QString>("defaultPath"); QTest::addColumn<QString>("defaultPath");
QTest::addColumn<QString>("setting"); QTest::addColumn<QString>("setting");
QTest::addColumn<QString>("cmakeVar"); QTest::addColumn<QString>("cmakeVar");
QTest::addColumn<QString>("envVar"); QTest::addColumn<QString>("envVar");
QTest::addColumn<QString>("label");
QTest::addColumn<QString>("detectionPath");
QTest::newRow("mcuXpresso") << PackageCreator{[this]() { QTest::newRow("armgcc_mimxrt1050_evk_freertos_json mcuXpresso")
return Legacy::createMcuXpressoIdePackage(settingsMockPtr); << PackageCreator{[this]() { return Legacy::createMcuXpressoIdePackage(settingsMockPtr); }}
}} << defaultToolPath << defaultToolPath << armgcc_mimxrt1050_evk_freertos_json << xpressoIdePath << xpressoIdePath
<< xpressoIdeSetting << xpressoIdeCmakeVar << xpressoIdeEnvVar; << xpressoIdeSetting << xpressoIdeCmakeVar << xpressoIdeEnvVar << xpressoIdeLabel
QTest::newRow("stmCubeProgrammer") << PackageCreator{[this]() { << xpressoIdeDetectionPath;
QTest::newRow("armgcc_mimxrt1064_evk_freertos_json mcuXpresso")
<< PackageCreator{[this]() { return Legacy::createMcuXpressoIdePackage(settingsMockPtr); }}
<< armgcc_mimxrt1064_evk_freertos_json << xpressoIdePath << xpressoIdePath
<< xpressoIdeSetting << xpressoIdeCmakeVar << xpressoIdeEnvVar << xpressoIdeLabel
<< xpressoIdeDetectionPath;
QTest::newRow("armgcc_mimxrt1170_evk_freertos_json mcuXpresso")
<< PackageCreator{[this]() { return Legacy::createMcuXpressoIdePackage(settingsMockPtr); }}
<< armgcc_mimxrt1170_evk_freertos_json << xpressoIdePath << xpressoIdePath
<< xpressoIdeSetting << xpressoIdeCmakeVar << xpressoIdeEnvVar << xpressoIdeLabel
<< xpressoIdeDetectionPath;
QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json stmCubeProgrammer")
<< PackageCreator{[this]() {
return Legacy::createStm32CubeProgrammerPackage(settingsMockPtr); return Legacy::createStm32CubeProgrammerPackage(settingsMockPtr);
}} << stmCubeProgrammerPath << defaultToolPath }}
<< stmCubeProgrammerSetting << empty << empty; << armgcc_stm32h750b_discovery_baremetal_json << stmCubeProgrammerPath
<< stmCubeProgrammerPath << stmCubeProgrammerSetting << empty << empty
QTest::newRow("renesasProgrammer") << PackageCreator{[this]() { << stmCubeProgrammerLabel << stmCubeProgrammerDetectionPath;
QTest::newRow("armgcc_stm32f769i_discovery_freertos_json stmCubeProgrammer")
<< PackageCreator{[this]() {
return Legacy::createStm32CubeProgrammerPackage(settingsMockPtr);
}}
<< armgcc_stm32f769i_discovery_freertos_json << stmCubeProgrammerPath
<< stmCubeProgrammerPath << stmCubeProgrammerSetting << empty << empty
<< stmCubeProgrammerLabel << stmCubeProgrammerDetectionPath;
QTest::newRow("ghs_rh850_d1m1a_baremetal_json renesasProgrammer")
<< PackageCreator{[this]() {
return Legacy::createRenesasProgrammerPackage(settingsMockPtr); return Legacy::createRenesasProgrammerPackage(settingsMockPtr);
}} << defaultToolPath << defaultToolPath }}
<< renesasProgrammerSetting << renesasProgrammerCmakeVar << ghs_rh850_d1m1a_baremetal_json << defaultToolPath << defaultToolPath
<< renesasProgrammerEnvVar; << renesasProgrammerSetting << renesasProgrammerCmakeVar << renesasProgrammerEnvVar
<< renesasProgrammerLabel << renesasProgrammerDetectionPath;
QTest::newRow("cypressProgrammer") << PackageCreator{[this]() {
return Legacy::createCypressProgrammerPackage(settingsMockPtr);
}} << defaultToolPath << defaultToolPath
<< cypressProgrammerSetting << cypressProgrammerCmakeVar
<< cypressProgrammerEnvVar;
} }
void McuSupportTest::test_legacy_createThirdPartyPackage() void McuSupportTest::test_legacy_createThirdPartyPackage()
{ {
QFETCH(PackageCreator, creator); QFETCH(PackageCreator, creator);
QFETCH(QString, json);
QFETCH(QString, path); QFETCH(QString, path);
QFETCH(QString, defaultPath); QFETCH(QString, defaultPath);
QFETCH(QString, setting); QFETCH(QString, setting);
QFETCH(QString, cmakeVar); QFETCH(QString, cmakeVar);
QFETCH(QString, envVar); QFETCH(QString, envVar);
QFETCH(QString, label);
if (!envVar.isEmpty()) QFETCH(QString, detectionPath);
QVERIFY(qputenv(envVar.toLocal8Bit(), defaultPath.toLocal8Bit()));
EXPECT_CALL(*settingsMockPtr, getPath(QString{setting}, _, _)) EXPECT_CALL(*settingsMockPtr, getPath(QString{setting}, _, _))
.Times(2) .Times(2)
.WillRepeatedly(Return(FilePath::fromUserInput(defaultPath))); .WillRepeatedly(Return(FilePath::fromUserInput(defaultPath)));
McuPackagePtr thirdPartyPacakge{creator()}; McuPackagePtr thirdPartyPackage{creator()};
QVERIFY(thirdPartyPacakge); verifyPackage(thirdPartyPackage,
QCOMPARE(thirdPartyPacakge->settingsKey(), setting); path,
QCOMPARE(thirdPartyPacakge->environmentVariableName(), envVar); defaultPath,
QCOMPARE(thirdPartyPacakge->path().toString(), path); setting,
cmakeVar,
envVar,
label,
detectionPath,
{});
}
if (!envVar.isEmpty()) void McuSupportTest::test_createThirdPartyPackage_data()
QVERIFY(qunsetenv(envVar.toLocal8Bit())); {
test_legacy_createThirdPartyPackage_data();
}
void McuSupportTest::test_createThirdPartyPackage()
{
QFETCH(QString, json);
QFETCH(QString, path);
QFETCH(QString, defaultPath);
QFETCH(QString, setting);
QFETCH(QString, cmakeVar);
QFETCH(QString, envVar);
QFETCH(QString, label);
McuTargetDescription targetDescription{parseDescriptionJson(json.toLocal8Bit())};
EXPECT_CALL(*settingsMockPtr, getPath(QString{setting}, QSettings::SystemScope, _))
.Times(testing::AtMost(1))
.WillOnce(Return(FilePath::fromUserInput(defaultPath)));
EXPECT_CALL(*settingsMockPtr, getPath(QString{setting}, QSettings::UserScope, _))
.Times(testing::AtMost(1))
.WillOnce(Return(FilePath::fromUserInput(path)));
auto [targets, packages] = targetFactory.createTargets(targetDescription, sdkPackagePtr);
auto thirdPartyPackage = findOrDefault(packages, [&setting](const McuPackagePtr &pkg) {
return (pkg->settingsKey() == setting);
});
verifyPackage(thirdPartyPackage, path, defaultPath, setting, cmakeVar, envVar, label, {}, {});
}
void McuSupportTest::test_legacy_createCypressProgrammer3rdPartyPackage()
{
EXPECT_CALL(*settingsMockPtr, getPath(QString{cypressProgrammerSetting}, _, _))
.Times(2)
.WillRepeatedly(Return(FilePath::fromUserInput(defaultToolPath)));
McuPackagePtr thirdPartyPackage{Legacy::createCypressProgrammerPackage(settingsMockPtr)};
verifyPackage(thirdPartyPackage,
defaultToolPath,
defaultToolPath,
cypressProgrammerSetting,
cypressProgrammerCmakeVar,
cypressProgrammerEnvVar,
cypressProgrammerLabel,
cypressProgrammerDetectionPath,
{});
}
void McuSupportTest::test_createJLink3rdPartyPackage()
{
McuTargetDescription targetDescription{parseDescriptionJson(armgcc_ek_ra6m3g_baremetal_json)};
EXPECT_CALL(*settingsMockPtr, getPath(QString{jlinkSetting}, QSettings::SystemScope, _))
.Times(testing::AtMost(1))
.WillOnce(Return(FilePath::fromUserInput(jlinkPath)));
EXPECT_CALL(*settingsMockPtr, getPath(QString{jlinkSetting}, QSettings::UserScope, _))
.Times(testing::AtMost(1))
.WillOnce(Return(FilePath::fromUserInput(jlinkPath)));
auto [targets, packages] = targetFactory.createTargets(targetDescription, sdkPackagePtr);
auto thirdPartyPackage = findOrDefault(packages, [](const McuPackagePtr &pkg) {
return (pkg->settingsKey() == jlinkSetting);
});
verifyPackage(thirdPartyPackage,
jlinkPath,
jlinkPath,
jlinkSetting,
jlinkCmakeVar,
jlinkEnvVar,
jlinkLabel,
{},
{});
} }
void McuSupportTest::test_defaultValueForEachOperationSystem() void McuSupportTest::test_defaultValueForEachOperationSystem()

View File

@@ -94,6 +94,10 @@ private slots:
void test_legacy_createThirdPartyPackage_data(); void test_legacy_createThirdPartyPackage_data();
void test_legacy_createThirdPartyPackage(); void test_legacy_createThirdPartyPackage();
void test_createThirdPartyPackage_data();
void test_createThirdPartyPackage();
void test_legacy_createCypressProgrammer3rdPartyPackage();
void test_createJLink3rdPartyPackage();
void test_defaultValueForEachOperationSystem(); void test_defaultValueForEachOperationSystem();
void test_addToSystemPathFlag(); void test_addToSystemPathFlag();