diff --git a/src/plugins/qmldesigner/designercore/projectstorage/modulescanner.cpp b/src/plugins/qmldesigner/designercore/projectstorage/modulescanner.cpp index 12cded6650d..c9c7fd8d61e 100644 --- a/src/plugins/qmldesigner/designercore/projectstorage/modulescanner.cpp +++ b/src/plugins/qmldesigner/designercore/projectstorage/modulescanner.cpp @@ -69,6 +69,9 @@ void ModuleScanner::scan(const QStringList &modulePaths) void ModuleScanner::scan([[maybe_unused]] std::string_view modulePath) { #ifdef QDS_HAS_QMLPRIVATE + if (modulePath.empty()) + return; + QDirIterator dirIterator{QString::fromUtf8(modulePath), QDir::Dirs | QDir::NoDotAndDotDot, QDirIterator::Subdirectories}; diff --git a/tests/unit/unittest/modulescanner-test.cpp b/tests/unit/unittest/modulescanner-test.cpp index f3bbbf23e9e..b4632e0cb41 100644 --- a/tests/unit/unittest/modulescanner-test.cpp +++ b/tests/unit/unittest/modulescanner-test.cpp @@ -65,13 +65,27 @@ protected: externalDependenciesMock}; }; -TEST_F(ModuleScanner, ReturnEmptyOptionalForWrongPath) +TEST_F(ModuleScanner, ReturnEmptyOptionalForEmptyPath) { scanner.scan(QStringList{""}); ASSERT_THAT(scanner.modules(), IsEmpty()); } +TEST_F(ModuleScanner, ReturnEmptyOptionalForNullStringPath) +{ + scanner.scan(QStringList{QString{}}); + + ASSERT_THAT(scanner.modules(), IsEmpty()); +} + +TEST_F(ModuleScanner, ReturnEmptyOptionalForEmptyPaths) +{ + scanner.scan(QStringList{}); + + ASSERT_THAT(scanner.modules(), IsEmpty()); +} + TEST_F(ModuleScanner, GetQtQuick) { scanner.scan(QStringList{qmlModulesPath});