McuSupport: Fix dependencies and tests

There is nowadays a hard dependency on QmlJSTools as there is
need to access its QmlJSModelManager.
Beside this adapt the tests to reflect the Key / QString changes
happened inside the settings to avoid crashing the tests.

Change-Id: I71cd0457e5f567da28cc089b514655418bd60b7d
Reviewed-by: Yasser Grimes <yasser.grimes@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Christian Stenger
2023-10-23 10:24:34 +02:00
parent 4645c713d2
commit f401d51a66
3 changed files with 36 additions and 34 deletions

View File

@@ -1,6 +1,6 @@
add_qtc_plugin(McuSupport add_qtc_plugin(McuSupport
DEPENDS Qt::Core QmlJS DEPENDS Qt::Core QmlJS
PLUGIN_DEPENDS Core BareMetal ProjectExplorer Debugger CMakeProjectManager QtSupport PLUGIN_DEPENDS Core BareMetal ProjectExplorer Debugger CMakeProjectManager QmlJSTools QtSupport
SOURCES SOURCES
mcukitaspect.cpp mcukitaspect.h mcukitaspect.cpp mcukitaspect.h
mcusupport.qrc mcusupport.qrc

View File

@@ -14,6 +14,7 @@ QtcPlugin {
Depends { name: "Debugger" } Depends { name: "Debugger" }
Depends { name: "CMakeProjectManager" } Depends { name: "CMakeProjectManager" }
Depends { name: "QmlJS" } Depends { name: "QmlJS" }
Depends { name: "QmlJSTools" }
Depends { name: "QtSupport" } Depends { name: "QtSupport" }
Depends { name: "qtc_gtest_gmock"; condition: qtc.withPluginTests; required: false } Depends { name: "qtc_gtest_gmock"; condition: qtc.withPluginTests; required: false }

View File

@@ -954,34 +954,34 @@ void McuSupportTest::test_legacy_createTargetWithToolchainPackages_data()
QTest::newRow("armgcc_mimxrt1050_evk_freertos_json") QTest::newRow("armgcc_mimxrt1050_evk_freertos_json")
<< armgcc_mimxrt1050_evk_freertos_json << armGccToolchainFilePath << armgcc_mimxrt1050_evk_freertos_json << armGccToolchainFilePath
<< armGccToolchainFileUnexpandedPath << armGccDir << armGccDirectorySetting << armGccToolchainFileUnexpandedPath << armGccDir << keyFromString(armGccDirectorySetting)
<< QStringList{armGccVersion}; << QStringList{armGccVersion};
QTest::newRow("armgcc_mimxrt1064_evk_freertos_json") QTest::newRow("armgcc_mimxrt1064_evk_freertos_json")
<< armgcc_mimxrt1064_evk_freertos_json << armGccToolchainFilePath << armgcc_mimxrt1064_evk_freertos_json << armGccToolchainFilePath
<< armGccToolchainFileUnexpandedPath << armGccDir << armGccDirectorySetting << armGccToolchainFileUnexpandedPath << armGccDir << keyFromString(armGccDirectorySetting)
<< QStringList{armGccVersion}; << QStringList{armGccVersion};
QTest::newRow("armgcc_mimxrt1170_evk_freertos_json") QTest::newRow("armgcc_mimxrt1170_evk_freertos_json")
<< armgcc_mimxrt1170_evk_freertos_json << armGccToolchainFilePath << armgcc_mimxrt1170_evk_freertos_json << armGccToolchainFilePath
<< armGccToolchainFileUnexpandedPath << armGccDir << armGccDirectorySetting << armGccToolchainFileUnexpandedPath << armGccDir << keyFromString(armGccDirectorySetting)
<< QStringList{armGccVersion}; << QStringList{armGccVersion};
QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json") QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json")
<< armgcc_stm32h750b_discovery_baremetal_json << armGccToolchainFilePath << armgcc_stm32h750b_discovery_baremetal_json << armGccToolchainFilePath
<< armGccToolchainFileUnexpandedPath << armGccDir << armGccDirectorySetting << armGccToolchainFileUnexpandedPath << armGccDir << keyFromString(armGccDirectorySetting)
<< QStringList{armGccVersion}; << QStringList{armGccVersion};
QTest::newRow("armgcc_stm32f769i_discovery_freertos_json") QTest::newRow("armgcc_stm32f769i_discovery_freertos_json")
<< armgcc_stm32f769i_discovery_freertos_json << armGccToolchainFilePath << armgcc_stm32f769i_discovery_freertos_json << armGccToolchainFilePath
<< armGccToolchainFileUnexpandedPath << armGccDir << armGccDirectorySetting << armGccToolchainFileUnexpandedPath << armGccDir << keyFromString(armGccDirectorySetting)
<< QStringList{armGccVersion}; << QStringList{armGccVersion};
QTest::newRow("iar_stm32f469i_discovery_baremetal_json") QTest::newRow("iar_stm32f469i_discovery_baremetal_json")
<< iar_stm32f469i_discovery_baremetal_json << iarToolchainFilePath << iar_stm32f469i_discovery_baremetal_json << iarToolchainFilePath
<< iarToolchainFileUnexpandedPath << iarDir << iarSetting << iarVersions; << iarToolchainFileUnexpandedPath << iarDir << keyFromString(iarSetting) << iarVersions;
QTest::newRow("iar_mimxrt1064_evk_freertos_json") QTest::newRow("iar_mimxrt1064_evk_freertos_json")
<< iar_mimxrt1064_evk_freertos_json << iarToolchainFilePath << iar_mimxrt1064_evk_freertos_json << iarToolchainFilePath
<< iarToolchainFileUnexpandedPath << iarDir << iarSetting << iarVersions; << iarToolchainFileUnexpandedPath << iarDir << keyFromString(iarSetting) << iarVersions;
QTest::newRow("ghs_rh850_d1m1a_baremetal_json") QTest::newRow("ghs_rh850_d1m1a_baremetal_json")
<< ghs_rh850_d1m1a_baremetal_json << greenhillToolchainFilePath << ghs_rh850_d1m1a_baremetal_json << greenhillToolchainFilePath
<< greenhillToolchainFileUnexpandedPath << greenhillCompilerDir << greenhillSetting << greenhillToolchainFileUnexpandedPath << greenhillCompilerDir
<< greenhillVersions; << keyFromString(greenhillSetting) << greenhillVersions;
} }
void McuSupportTest::test_legacy_createTargetWithToolchainPackages() void McuSupportTest::test_legacy_createTargetWithToolchainPackages()
@@ -1145,22 +1145,22 @@ void McuSupportTest::test_legacy_createFreeRtosPackage_data()
QTest::newRow("armgcc_mimxrt1050_evk_freertos_json") QTest::newRow("armgcc_mimxrt1050_evk_freertos_json")
<< armgcc_mimxrt1050_evk_freertos_json << QStringList{boardSdkVersion} << armgcc_mimxrt1050_evk_freertos_json << QStringList{boardSdkVersion}
<< QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(nxp1050) << keyFromString(QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(nxp1050))
<< FilePath::fromUserInput(boardSdkDir) / freeRtosNxpPathSuffix << FilePath::fromUserInput(boardSdkDir) / freeRtosNxpPathSuffix
<< FilePath::fromUserInput(freeRtosDetectionPath); << FilePath::fromUserInput(freeRtosDetectionPath);
QTest::newRow("armgcc_mimxrt1064_evk_freertos_json") QTest::newRow("armgcc_mimxrt1064_evk_freertos_json")
<< armgcc_mimxrt1064_evk_freertos_json << QStringList{boardSdkVersion} << armgcc_mimxrt1064_evk_freertos_json << QStringList{boardSdkVersion}
<< QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(nxp1064) << keyFromString(QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(nxp1064))
<< FilePath::fromUserInput(boardSdkDir) / freeRtosNxpPathSuffix << FilePath::fromUserInput(boardSdkDir) / freeRtosNxpPathSuffix
<< FilePath::fromUserInput(freeRtosDetectionPath); << FilePath::fromUserInput(freeRtosDetectionPath);
QTest::newRow("iar_mimxrt1064_evk_freertos_json") QTest::newRow("iar_mimxrt1064_evk_freertos_json")
<< iar_mimxrt1064_evk_freertos_json << QStringList{boardSdkVersion} << iar_mimxrt1064_evk_freertos_json << QStringList{boardSdkVersion}
<< QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(nxp1064) << keyFromString(QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(nxp1064))
<< FilePath::fromUserInput(boardSdkDir) / freeRtosNxpPathSuffix << FilePath::fromUserInput(boardSdkDir) / freeRtosNxpPathSuffix
<< FilePath::fromUserInput(freeRtosDetectionPath); << FilePath::fromUserInput(freeRtosDetectionPath);
QTest::newRow("armgcc_stm32f769i_discovery_freertos_json") QTest::newRow("armgcc_stm32f769i_discovery_freertos_json")
<< armgcc_stm32f769i_discovery_freertos_json << QStringList{"1.16.0"} << armgcc_stm32f769i_discovery_freertos_json << QStringList{"1.16.0"}
<< QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(stm32f7) << keyFromString(QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(stm32f7))
<< FilePath::fromUserInput(boardSdkDir) / freeRtosStmPathSuffix << FilePath::fromUserInput(boardSdkDir) / freeRtosStmPathSuffix
<< FilePath::fromUserInput(freeRtosDetectionPath); << FilePath::fromUserInput(freeRtosDetectionPath);
} }
@@ -1495,7 +1495,7 @@ void McuSupportTest::test_legacy_createThirdPartyPackage_data()
QTest::addColumn<QString>("json"); 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<Key>("setting");
QTest::addColumn<QString>("cmakeVar"); QTest::addColumn<QString>("cmakeVar");
QTest::addColumn<QString>("envVar"); QTest::addColumn<QString>("envVar");
QTest::addColumn<QString>("label"); QTest::addColumn<QString>("label");
@@ -1504,42 +1504,42 @@ void McuSupportTest::test_legacy_createThirdPartyPackage_data()
QTest::newRow("armgcc_mimxrt1050_evk_freertos_json mcuXpresso") QTest::newRow("armgcc_mimxrt1050_evk_freertos_json mcuXpresso")
<< PackageCreator{[this]() { return Legacy::createMcuXpressoIdePackage(settingsMockPtr); }} << PackageCreator{[this]() { return Legacy::createMcuXpressoIdePackage(settingsMockPtr); }}
<< armgcc_mimxrt1050_evk_freertos_json << xpressoIdePath << xpressoIdePath << armgcc_mimxrt1050_evk_freertos_json << xpressoIdePath << xpressoIdePath
<< xpressoIdeSetting << xpressoIdeCmakeVar << xpressoIdeEnvVar << xpressoIdeLabel << keyFromString(xpressoIdeSetting) << xpressoIdeCmakeVar << xpressoIdeEnvVar << xpressoIdeLabel
<< xpressoIdeDetectionPath; << xpressoIdeDetectionPath;
QTest::newRow("armgcc_mimxrt1064_evk_freertos_json mcuXpresso") QTest::newRow("armgcc_mimxrt1064_evk_freertos_json mcuXpresso")
<< PackageCreator{[this]() { return Legacy::createMcuXpressoIdePackage(settingsMockPtr); }} << PackageCreator{[this]() { return Legacy::createMcuXpressoIdePackage(settingsMockPtr); }}
<< armgcc_mimxrt1064_evk_freertos_json << xpressoIdePath << xpressoIdePath << armgcc_mimxrt1064_evk_freertos_json << xpressoIdePath << xpressoIdePath
<< xpressoIdeSetting << xpressoIdeCmakeVar << xpressoIdeEnvVar << xpressoIdeLabel << keyFromString(xpressoIdeSetting) << xpressoIdeCmakeVar << xpressoIdeEnvVar
<< xpressoIdeDetectionPath; << xpressoIdeLabel << xpressoIdeDetectionPath;
QTest::newRow("armgcc_mimxrt1170_evk_freertos_json mcuXpresso") QTest::newRow("armgcc_mimxrt1170_evk_freertos_json mcuXpresso")
<< PackageCreator{[this]() { return Legacy::createMcuXpressoIdePackage(settingsMockPtr); }} << PackageCreator{[this]() { return Legacy::createMcuXpressoIdePackage(settingsMockPtr); }}
<< armgcc_mimxrt1170_evk_freertos_json << xpressoIdePath << xpressoIdePath << armgcc_mimxrt1170_evk_freertos_json << xpressoIdePath << xpressoIdePath
<< xpressoIdeSetting << xpressoIdeCmakeVar << xpressoIdeEnvVar << xpressoIdeLabel << keyFromString(xpressoIdeSetting) << xpressoIdeCmakeVar << xpressoIdeEnvVar
<< xpressoIdeDetectionPath; << xpressoIdeLabel << xpressoIdeDetectionPath;
QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json stmCubeProgrammer") QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json stmCubeProgrammer")
<< PackageCreator{[this]() { << PackageCreator{[this]() {
return Legacy::createStm32CubeProgrammerPackage(settingsMockPtr); return Legacy::createStm32CubeProgrammerPackage(settingsMockPtr);
}} }}
<< armgcc_stm32h750b_discovery_baremetal_json << stmCubeProgrammerPath << armgcc_stm32h750b_discovery_baremetal_json << stmCubeProgrammerPath
<< stmCubeProgrammerPath << stmCubeProgrammerSetting << empty << empty << stmCubeProgrammerPath << keyFromString(stmCubeProgrammerSetting) << empty << empty
<< stmCubeProgrammerLabel << stmCubeProgrammerDetectionPath; << stmCubeProgrammerLabel << stmCubeProgrammerDetectionPath;
QTest::newRow("armgcc_stm32f769i_discovery_freertos_json stmCubeProgrammer") QTest::newRow("armgcc_stm32f769i_discovery_freertos_json stmCubeProgrammer")
<< PackageCreator{[this]() { << PackageCreator{[this]() {
return Legacy::createStm32CubeProgrammerPackage(settingsMockPtr); return Legacy::createStm32CubeProgrammerPackage(settingsMockPtr);
}} }}
<< armgcc_stm32f769i_discovery_freertos_json << stmCubeProgrammerPath << armgcc_stm32f769i_discovery_freertos_json << stmCubeProgrammerPath
<< stmCubeProgrammerPath << stmCubeProgrammerSetting << empty << empty << stmCubeProgrammerPath << keyFromString(stmCubeProgrammerSetting) << empty << empty
<< stmCubeProgrammerLabel << stmCubeProgrammerDetectionPath; << stmCubeProgrammerLabel << stmCubeProgrammerDetectionPath;
QTest::newRow("ghs_rh850_d1m1a_baremetal_json renesasProgrammer") QTest::newRow("ghs_rh850_d1m1a_baremetal_json renesasProgrammer")
<< PackageCreator{[this]() { << PackageCreator{[this]() {
return Legacy::createRenesasProgrammerPackage(settingsMockPtr); return Legacy::createRenesasProgrammerPackage(settingsMockPtr);
}} }}
<< ghs_rh850_d1m1a_baremetal_json << empty << empty << renesasProgrammerSetting << ghs_rh850_d1m1a_baremetal_json << empty << empty
<< renesasProgrammerCmakeVar << renesasProgrammerEnvVar << renesasProgrammerLabel << keyFromString(renesasProgrammerSetting) << renesasProgrammerCmakeVar
<< renesasProgrammerDetectionPath; << renesasProgrammerEnvVar << renesasProgrammerLabel << renesasProgrammerDetectionPath;
} }
void McuSupportTest::test_legacy_createThirdPartyPackage() void McuSupportTest::test_legacy_createThirdPartyPackage()
@@ -1592,33 +1592,34 @@ void McuSupportTest::test_createThirdPartyPackage_data()
QTest::newRow("armgcc_mimxrt1050_evk_freertos_json mcuXpresso") QTest::newRow("armgcc_mimxrt1050_evk_freertos_json mcuXpresso")
<< armgcc_mimxrt1050_evk_freertos_json << xpressoIdePath << xpressoIdePath << armgcc_mimxrt1050_evk_freertos_json << xpressoIdePath << xpressoIdePath
<< xpressoIdeSetting << xpressoIdeCmakeVar << xpressoIdeEnvVar << xpressoIdeLabel << keyFromString(xpressoIdeSetting) << xpressoIdeCmakeVar << xpressoIdeEnvVar
<< xpressoIdeDetectionPath; << xpressoIdeLabel << xpressoIdeDetectionPath;
QTest::newRow("armgcc_mimxrt1064_evk_freertos_json mcuXpresso") QTest::newRow("armgcc_mimxrt1064_evk_freertos_json mcuXpresso")
<< armgcc_mimxrt1064_evk_freertos_json << xpressoIdePath << xpressoIdePath << armgcc_mimxrt1064_evk_freertos_json << xpressoIdePath << xpressoIdePath
<< xpressoIdeSetting << xpressoIdeCmakeVar << xpressoIdeEnvVar << xpressoIdeLabel << keyFromString(xpressoIdeSetting) << xpressoIdeCmakeVar << xpressoIdeEnvVar
<< xpressoIdeDetectionPath; << xpressoIdeLabel << xpressoIdeDetectionPath;
QTest::newRow("armgcc_mimxrt1170_evk_freertos_json mcuXpresso") QTest::newRow("armgcc_mimxrt1170_evk_freertos_json mcuXpresso")
<< armgcc_mimxrt1170_evk_freertos_json << xpressoIdePath << xpressoIdePath << armgcc_mimxrt1170_evk_freertos_json << xpressoIdePath << xpressoIdePath
<< xpressoIdeSetting << xpressoIdeCmakeVar << xpressoIdeEnvVar << xpressoIdeLabel << keyFromString(xpressoIdeSetting) << xpressoIdeCmakeVar << xpressoIdeEnvVar << xpressoIdeLabel
<< xpressoIdeDetectionPath; << xpressoIdeDetectionPath;
QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json stmCubeProgrammer") QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json stmCubeProgrammer")
<< armgcc_stm32h750b_discovery_baremetal_json << stmCubeProgrammerPath << armgcc_stm32h750b_discovery_baremetal_json << stmCubeProgrammerPath
<< stmCubeProgrammerPath << stmCubeProgrammerSetting << empty << empty << stmCubeProgrammerPath << keyFromString(stmCubeProgrammerSetting) << empty << empty
<< stmCubeProgrammerLabel << stmCubeProgrammerDetectionPath; << stmCubeProgrammerLabel << stmCubeProgrammerDetectionPath;
QTest::newRow("armgcc_stm32f769i_discovery_freertos_json stmCubeProgrammer") QTest::newRow("armgcc_stm32f769i_discovery_freertos_json stmCubeProgrammer")
<< armgcc_stm32f769i_discovery_freertos_json << stmCubeProgrammerPath << armgcc_stm32f769i_discovery_freertos_json << stmCubeProgrammerPath
<< stmCubeProgrammerPath << stmCubeProgrammerSetting << empty << empty << stmCubeProgrammerPath << keyFromString(stmCubeProgrammerSetting) << empty << empty
<< stmCubeProgrammerLabel << stmCubeProgrammerDetectionPath; << stmCubeProgrammerLabel << stmCubeProgrammerDetectionPath;
QTest::newRow("ghs_rh850_d1m1a_baremetal_json renesasProgrammer") QTest::newRow("ghs_rh850_d1m1a_baremetal_json renesasProgrammer")
<< ghs_rh850_d1m1a_baremetal_json << renesasProgrammerDefaultPath << empty << ghs_rh850_d1m1a_baremetal_json << renesasProgrammerDefaultPath << empty
<< "FlashProgrammerPath" << renesasProgrammerCmakeVar << "RenesasFlashProgrammer_PATH" << keyFromString("FlashProgrammerPath") << renesasProgrammerCmakeVar
<< renesasProgrammerLabel << renesasProgrammerDetectionPath; << "RenesasFlashProgrammer_PATH" << renesasProgrammerLabel
<< renesasProgrammerDetectionPath;
} }
void McuSupportTest::test_createThirdPartyPackage() void McuSupportTest::test_createThirdPartyPackage()