diff options
author | Ivan Komissarov <abbapoh@gmail.com> | 2024-04-06 19:28:02 +0300 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2024-04-22 12:57:03 +0000 |
commit | dfbef13214d78b6cc4a22376bed1329d5443ada2 (patch) | |
tree | 62702259076f6e2fd2e80333cce5dbe1cf1ba31e | |
parent | 54ae54c702c6b5670703693a82b77bad5fd3864a (diff) |
Remove the fallback provider
Change-Id: Idbb8b86d2630cd1852fca6792e7795a8a8df490e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
23 files changed, 27 insertions, 184 deletions
diff --git a/doc/appendix/json-api.qdoc b/doc/appendix/json-api.qdoc index 02ec6aef3..7b093bc4e 100644 --- a/doc/appendix/json-api.qdoc +++ b/doc/appendix/json-api.qdoc @@ -126,7 +126,6 @@ \row \li dry-run \li bool \li no \row \li environment \li \l Environment \li no \row \li error-handling-mode \li string \li no - \row \li fallback-provider-enabled \li bool \li no \row \li force-probe-execution \li bool \li no \row \li log-time \li bool \li no \row \li log-level \li \l LogLevel \li no diff --git a/doc/reference/cli/builtin/cli-build.qdoc b/doc/reference/cli/builtin/cli-build.qdoc index 683b1ebb8..8547a78d2 100644 --- a/doc/reference/cli/builtin/cli-build.qdoc +++ b/doc/reference/cli/builtin/cli-build.qdoc @@ -78,8 +78,6 @@ \include cli-options.qdocinc products-specified \include cli-options.qdocinc settings-dir \include cli-options.qdocinc show-progress - \target no-fallback-module-provider - \include cli-options.qdocinc no-fallback-module-provider \include cli-options.qdocinc wait-lock \section1 Parameters diff --git a/doc/reference/cli/builtin/cli-resolve.qdoc b/doc/reference/cli/builtin/cli-resolve.qdoc index 4569980bd..99f1658ea 100644 --- a/doc/reference/cli/builtin/cli-resolve.qdoc +++ b/doc/reference/cli/builtin/cli-resolve.qdoc @@ -55,7 +55,6 @@ \include cli-options.qdocinc more-verbose \include cli-options.qdocinc settings-dir \include cli-options.qdocinc show-progress - \include cli-options.qdocinc no-fallback-module-provider \include cli-options.qdocinc deprecation-warnings \section1 Parameters diff --git a/src/app/qbs/commandlinefrontend.cpp b/src/app/qbs/commandlinefrontend.cpp index 4248f55a7..4a4781207 100644 --- a/src/app/qbs/commandlinefrontend.cpp +++ b/src/app/qbs/commandlinefrontend.cpp @@ -152,7 +152,6 @@ void CommandLineFrontend::start() params.setDryRun(m_parser.dryRun()); params.setForceProbeExecution(m_parser.forceProbesExecution()); params.setWaitLockBuildGraph(m_parser.waitLockBuildGraph()); - params.setFallbackProviderEnabled(!m_parser.disableFallbackProvider()); params.setLogElapsedTime(m_parser.logTime()); params.setSettingsDirectory(m_settings->baseDirectory()); params.setOverrideBuildGraphData(m_parser.command() == ResolveCommandType); diff --git a/src/app/qbs/parser/commandlineoption.cpp b/src/app/qbs/parser/commandlineoption.cpp index 389b304f0..7572b4e66 100644 --- a/src/app/qbs/parser/commandlineoption.cpp +++ b/src/app/qbs/parser/commandlineoption.cpp @@ -710,17 +710,6 @@ QString WaitLockOption::longRepresentation() const return QStringLiteral("--wait-lock"); } -QString DisableFallbackProviderOption::description(CommandType) const -{ - return Tr::tr("%1\n\tDo not fall back to pkg-config if a dependency is not found.\n") - .arg(longRepresentation()); -} - -QString DisableFallbackProviderOption::longRepresentation() const -{ - return QStringLiteral("--no-fallback-module-provider"); -} - QString RunEnvConfigOption::description(CommandType command) const { Q_UNUSED(command); diff --git a/src/app/qbs/parser/commandlineoption.h b/src/app/qbs/parser/commandlineoption.h index d51d5f765..b12d96b2d 100644 --- a/src/app/qbs/parser/commandlineoption.h +++ b/src/app/qbs/parser/commandlineoption.h @@ -76,7 +76,6 @@ public: GeneratorOptionType, WaitLockOptionType, RunEnvConfigOptionType, - DisableFallbackProviderType, DeprecationWarningsOptionType, }; @@ -431,14 +430,6 @@ public: QString longRepresentation() const override; }; -class DisableFallbackProviderOption : public OnOffOption -{ -public: - QString description(CommandType command) const override; - QString shortRepresentation() const override { return {}; } - QString longRepresentation() const override; -}; - } // namespace qbs #endif // QBS_COMMANDLINEOPTION_H diff --git a/src/app/qbs/parser/commandlineoptionpool.cpp b/src/app/qbs/parser/commandlineoptionpool.cpp index 3908f262c..692c9c737 100644 --- a/src/app/qbs/parser/commandlineoptionpool.cpp +++ b/src/app/qbs/parser/commandlineoptionpool.cpp @@ -128,9 +128,6 @@ CommandLineOption *CommandLineOptionPool::getOption(CommandLineOption::Type type case CommandLineOption::WaitLockOptionType: option = new WaitLockOption; break; - case CommandLineOption::DisableFallbackProviderType: - option = new DisableFallbackProviderOption; - break; case CommandLineOption::RunEnvConfigOptionType: option = new RunEnvConfigOption; break; @@ -279,12 +276,6 @@ WaitLockOption *CommandLineOptionPool::waitLockOption() const return static_cast<WaitLockOption *>(getOption(CommandLineOption::WaitLockOptionType)); } -DisableFallbackProviderOption *CommandLineOptionPool::disableFallbackProviderOption() const -{ - return static_cast<DisableFallbackProviderOption *>( - getOption(CommandLineOption::DisableFallbackProviderType)); -} - RunEnvConfigOption *CommandLineOptionPool::runEnvConfigOption() const { return static_cast<RunEnvConfigOption *>(getOption(CommandLineOption::RunEnvConfigOptionType)); diff --git a/src/app/qbs/parser/commandlineoptionpool.h b/src/app/qbs/parser/commandlineoptionpool.h index 5f3c1d87c..022e9fd09 100644 --- a/src/app/qbs/parser/commandlineoptionpool.h +++ b/src/app/qbs/parser/commandlineoptionpool.h @@ -77,7 +77,6 @@ public: RespectProjectJobLimitsOption *respectProjectJobLimitsOption() const; GeneratorOption *generatorOption() const; WaitLockOption *waitLockOption() const; - DisableFallbackProviderOption *disableFallbackProviderOption() const; RunEnvConfigOption *runEnvConfigOption() const; DeprecationWarningsOption *deprecationWarningsOption() const; diff --git a/src/app/qbs/parser/commandlineparser.cpp b/src/app/qbs/parser/commandlineparser.cpp index 7fbfa28f1..c548cf2b5 100644 --- a/src/app/qbs/parser/commandlineparser.cpp +++ b/src/app/qbs/parser/commandlineparser.cpp @@ -231,11 +231,6 @@ bool CommandLineParser::waitLockBuildGraph() const return d->optionPool.waitLockOption()->enabled(); } -bool CommandLineParser::disableFallbackProvider() const -{ - return d->optionPool.disableFallbackProviderOption()->enabled(); -} - bool CommandLineParser::logTime() const { return d->logTime; diff --git a/src/app/qbs/parser/commandlineparser.h b/src/app/qbs/parser/commandlineparser.h index 4ce7756ef..4df8829a2 100644 --- a/src/app/qbs/parser/commandlineparser.h +++ b/src/app/qbs/parser/commandlineparser.h @@ -81,7 +81,6 @@ public: bool dryRun() const; bool forceProbesExecution() const; bool waitLockBuildGraph() const; - bool disableFallbackProvider() const; bool logTime() const; bool withNonDefaultProducts() const; bool buildBeforeInstalling() const; diff --git a/src/app/qbs/parser/parsercommand.cpp b/src/app/qbs/parser/parsercommand.cpp index f11a7b6ac..84eef9774 100644 --- a/src/app/qbs/parser/parsercommand.cpp +++ b/src/app/qbs/parser/parsercommand.cpp @@ -209,8 +209,7 @@ static QList<CommandLineOption::Type> resolveOptions() CommandLineOption::ForceProbesOptionType, CommandLineOption::LogTimeOptionType, CommandLineOption::DeprecationWarningsOptionType, - CommandLineOption::JobsOptionType, - CommandLineOption::DisableFallbackProviderType}; + CommandLineOption::JobsOptionType}; } QList<CommandLineOption::Type> ResolveCommand::supportedOptions() const diff --git a/src/lib/corelib/language/builtindeclarations.cpp b/src/lib/corelib/language/builtindeclarations.cpp index 491b005e8..24e8f1cfb 100644 --- a/src/lib/corelib/language/builtindeclarations.cpp +++ b/src/lib/corelib/language/builtindeclarations.cpp @@ -250,14 +250,6 @@ void BuiltinDeclarations::addDependsItem() item << PropertyDeclaration(StringConstants::multiplexConfigurationIdsProperty(), PropertyDeclaration::StringList, QString(), PropertyDeclaration::ReadOnlyFlag); - PropertyDeclaration fallbackProp( - StringConstants::enableFallbackProperty(), - PropertyDeclaration::Boolean, - StringConstants::falseValue()); - fallbackProp.setDeprecationInfo(DeprecationInfo( - Version(2, 4), - Tr::tr("The fallback provider has been deprecated. Use qbspkgconfig instead."))); - item << fallbackProp; insert(item); } diff --git a/src/lib/corelib/loader/dependenciesresolver.cpp b/src/lib/corelib/loader/dependenciesresolver.cpp index 479318e73..b97580f27 100644 --- a/src/lib/corelib/loader/dependenciesresolver.cpp +++ b/src/lib/corelib/loader/dependenciesresolver.cpp @@ -89,7 +89,6 @@ public: VersionRange versionRange; QVariantMap parameters; bool limitToSubProject = false; - FallbackMode fallbackMode = FallbackMode::Enabled; bool requiredLocally = true; bool requiredGlobally = true; }; @@ -123,7 +122,6 @@ public: VersionRange versionRange; QVariantMap parameters; bool limitToSubProject = false; - FallbackMode fallbackMode = FallbackMode::Enabled; bool requiredLocally = true; bool requiredGlobally = true; bool checkProduct = true; @@ -592,8 +590,8 @@ Item *DependenciesResolver::findMatchingModule( return nullptr; } - if (Item *moduleItem = searchAndLoadModuleFile(m_loaderState, m_product, dependency.location(), - dependency.name, dependency.fallbackMode)) { + if (Item *moduleItem = searchAndLoadModuleFile( + m_loaderState, m_product, dependency.location(), dependency.name)) { QBS_CHECK(moduleItem->type() == ItemType::Module); Item * const proto = moduleItem; ModuleItemLocker locker(*moduleItem); @@ -849,11 +847,6 @@ std::optional<EvaluatedDependsItem> DependenciesResolver::evaluateDependsItem(It item->location()); } - const FallbackMode fallbackMode - = m_loaderState.parameters().fallbackProviderEnabled() - && evaluator.boolValue(item, StringConstants::enableFallbackProperty()) - ? FallbackMode::Enabled : FallbackMode::Disabled; - bool profilesPropertyWasSet = false; std::optional<QStringList> profiles; bool required = true; @@ -882,7 +875,7 @@ std::optional<EvaluatedDependsItem> DependenciesResolver::evaluateDependsItem(It return EvaluatedDependsItem{ item, QualifiedId::fromString(name), submodules, productTypeTags, multiplexIds, profiles, {minVersion, maxVersion}, parameters, limitToSubProject, - fallbackMode, required}; + required}; } // Potentially multiplexes a dependency along Depends.productTypes, Depends.subModules and @@ -1038,12 +1031,11 @@ FullyResolvedDependsItem::FullyResolvedDependsItem( ProductContext *product, const EvaluatedDependsItem &dependency) : product(product), item(dependency.item), name(product->name), versionRange(dependency.versionRange), parameters(dependency.parameters), - fallbackMode(FallbackMode::Disabled), checkProduct(false) {} + checkProduct(false) {} FullyResolvedDependsItem FullyResolvedDependsItem::makeBaseDependency() { FullyResolvedDependsItem item; - item.fallbackMode = FallbackMode::Disabled; item.name = StringConstants::qbsModule(); return item; } @@ -1055,7 +1047,6 @@ FullyResolvedDependsItem::FullyResolvedDependsItem( versionRange(dependency.versionRange), parameters(dependency.parameters), limitToSubProject(dependency.limitToSubProject), - fallbackMode(dependency.fallbackMode), requiredLocally(dependency.requiredLocally), requiredGlobally(dependency.requiredGlobally) {} diff --git a/src/lib/corelib/loader/loaderutils.h b/src/lib/corelib/loader/loaderutils.h index 3f967ba08..4a4aadfb8 100644 --- a/src/lib/corelib/loader/loaderutils.h +++ b/src/lib/corelib/loader/loaderutils.h @@ -83,7 +83,6 @@ class ScriptEngine; using ModulePropertiesPerGroup = std::unordered_map<const Item *, QualifiedIdSet>; using FileLocations = QHash<std::pair<QString, QString>, CodeLocation>; -enum class FallbackMode { Enabled, Disabled }; enum class Deferral { Allowed, NotAllowed }; enum class ProductDependency { None, Single, Bulk }; diff --git a/src/lib/corelib/loader/moduleloader.cpp b/src/lib/corelib/loader/moduleloader.cpp index 80aa3f17c..80956377c 100644 --- a/src/lib/corelib/loader/moduleloader.cpp +++ b/src/lib/corelib/loader/moduleloader.cpp @@ -68,12 +68,15 @@ namespace qbs::Internal { class ModuleLoader { public: - ModuleLoader(LoaderState &loaderState, ProductContext &product, - const CodeLocation &dependsItemLocation, const QualifiedId &moduleName, - FallbackMode fallbackMode) - : m_loaderState(loaderState), m_product(product), - m_dependsItemLocation(dependsItemLocation), m_moduleName(moduleName), - m_fallbackMode(fallbackMode) + ModuleLoader( + LoaderState &loaderState, + ProductContext &product, + const CodeLocation &dependsItemLocation, + const QualifiedId &moduleName) + : m_loaderState(loaderState) + , m_product(product) + , m_dependsItemLocation(dependsItemLocation) + , m_moduleName(moduleName) {} Item *load(); @@ -92,7 +95,6 @@ private: ProductContext &m_product; const CodeLocation &m_dependsItemLocation; const QualifiedId &m_moduleName; - const FallbackMode m_fallbackMode; }; struct PrioritizedItem @@ -142,11 +144,13 @@ static Item *chooseModuleCandidate(const std::vector<PrioritizedItem> &candidate return maxIt->item; } -Item *searchAndLoadModuleFile(LoaderState &loaderState, ProductContext &product, - const CodeLocation &dependsItemLocation, const QualifiedId &moduleName, - FallbackMode fallbackMode) +Item *searchAndLoadModuleFile( + LoaderState &loaderState, + ProductContext &product, + const CodeLocation &dependsItemLocation, + const QualifiedId &moduleName) { - return ModuleLoader(loaderState, product, dependsItemLocation, moduleName, fallbackMode).load(); + return ModuleLoader(loaderState, product, dependsItemLocation, moduleName).load(); } Item *ModuleLoader::load() @@ -158,7 +162,7 @@ Item *ModuleLoader::load() AccumulatingTimer providersTimer(m_loaderState.parameters().logElapsedTime() ? &m_product.timingData.moduleProviders : nullptr); auto result = ModuleProviderLoader(m_loaderState).executeModuleProviders( - m_product, m_dependsItemLocation, m_moduleName, m_fallbackMode); + m_product, m_dependsItemLocation, m_moduleName); if (result.searchPaths) { qCDebug(lcModuleLoader) << "Re-checking for module" << m_moduleName.toString() << "with newly added search paths from module provider"; diff --git a/src/lib/corelib/loader/moduleloader.h b/src/lib/corelib/loader/moduleloader.h index 60567e60e..e9ae214b8 100644 --- a/src/lib/corelib/loader/moduleloader.h +++ b/src/lib/corelib/loader/moduleloader.h @@ -42,7 +42,6 @@ namespace qbs { class CodeLocation; namespace Internal { -enum class FallbackMode; class Item; class LoaderState; class ProductContext; @@ -50,7 +49,7 @@ class QualifiedId; Item *searchAndLoadModuleFile(LoaderState &loaderState, ProductContext &product, const CodeLocation &dependsItemLocation, - const QualifiedId &moduleName, FallbackMode fallbackMode); + const QualifiedId &moduleName); } // namespace Internal } // namespace qbs diff --git a/src/lib/corelib/loader/moduleproviderloader.cpp b/src/lib/corelib/loader/moduleproviderloader.cpp index a9f5eb26f..a8b99ca20 100644 --- a/src/lib/corelib/loader/moduleproviderloader.cpp +++ b/src/lib/corelib/loader/moduleproviderloader.cpp @@ -78,8 +78,7 @@ ModuleProviderLoader::ModuleProviderLoader(LoaderState &loaderState) ModuleProviderLoader::ModuleProviderResult ModuleProviderLoader::executeModuleProviders( ProductContext &productContext, const CodeLocation &dependsItemLocation, - const QualifiedId &moduleName, - FallbackMode fallbackMode) + const QualifiedId &moduleName) { ModuleProviderLoader::ModuleProviderResult result; try { @@ -98,18 +97,6 @@ ModuleProviderLoader::ModuleProviderResult ModuleProviderLoader::executeModulePr } result = executeModuleProvidersHelper( productContext, dependsItemLocation, moduleName, providersToRun); - - if (fallbackMode == FallbackMode::Enabled - && !result.providerFound - && !providerNames) { - qCDebug(lcModuleLoader) << "Specific module provider not found for" - << moduleName.toString() << ", setting up fallback."; - result = executeModuleProvidersHelper( - productContext, - dependsItemLocation, - moduleName, - {{moduleName, ModuleProviderLookup::Fallback}}); - } } catch (const ErrorInfo &error) { auto ei = error; ei.prepend( @@ -291,9 +278,6 @@ QString ModuleProviderLoader::findModuleProviderFile( fullPath = FileInfo::resolvePath(fullPath, component); fullPath = FileInfo::resolvePath(fullPath, QStringLiteral("provider.qbs")); break; - case ModuleProviderLookup::Fallback: - fullPath = FileInfo::resolvePath(fullPath, QStringLiteral("__fallback/provider.qbs")); - break; } if (!FileInfo::exists(fullPath)) { qCDebug(lcModuleLoader) << "No module provider found at" << fullPath; diff --git a/src/lib/corelib/loader/moduleproviderloader.h b/src/lib/corelib/loader/moduleproviderloader.h index 0b1145db5..4fe94217b 100644 --- a/src/lib/corelib/loader/moduleproviderloader.h +++ b/src/lib/corelib/loader/moduleproviderloader.h @@ -69,11 +69,10 @@ public: ModuleProviderResult executeModuleProviders( ProductContext &productContext, const CodeLocation &dependsItemLocation, - const QualifiedId &moduleName, - FallbackMode fallbackMode); + const QualifiedId &moduleName); private: - enum class ModuleProviderLookup { Scoped, Named, Fallback }; + enum class ModuleProviderLookup { Scoped, Named }; struct Provider { QualifiedId name; ModuleProviderLookup lookup; diff --git a/src/lib/corelib/tools/setupprojectparameters.cpp b/src/lib/corelib/tools/setupprojectparameters.cpp index 185323c09..e9212c165 100644 --- a/src/lib/corelib/tools/setupprojectparameters.cpp +++ b/src/lib/corelib/tools/setupprojectparameters.cpp @@ -99,7 +99,6 @@ public: bool logElapsedTime; bool forceProbeExecution; bool waitLockBuildGraph; - bool fallbackProviderEnabled = true; SetupProjectParameters::RestoreBehavior restoreBehavior; ErrorHandlingMode propertyCheckingMode; ErrorHandlingMode productErrorMode; @@ -166,7 +165,6 @@ SetupProjectParameters SetupProjectParameters::fromJson(const QJsonObject &data) setValueFromJson(params.d->logElapsedTime, data, "log-time"); setValueFromJson(params.d->forceProbeExecution, data, "force-probe-execution"); setValueFromJson(params.d->waitLockBuildGraph, data, "wait-lock-build-graph"); - setValueFromJson(params.d->fallbackProviderEnabled, data, "fallback-provider-enabled"); setValueFromJson(params.d->environment, data, "environment"); setValueFromJson(params.d->restoreBehavior, data, "restore-behavior"); setValueFromJson(params.d->propertyCheckingMode, data, "error-handling-mode"); @@ -623,22 +621,6 @@ void SetupProjectParameters::setWaitLockBuildGraph(bool wait) } /*! - * \brief Returns true if qbs should fall back to pkg-config if a dependency is not found. - */ -bool SetupProjectParameters::fallbackProviderEnabled() const -{ - return d->fallbackProviderEnabled; -} - -/*! - * Controls whether to fall back to pkg-config if a dependency is not found. - */ -void SetupProjectParameters::setFallbackProviderEnabled(bool enable) -{ - d->fallbackProviderEnabled = enable; -} - -/*! * \brief Gets the environment used while resolving the project. */ QProcessEnvironment SetupProjectParameters::environment() const diff --git a/src/lib/corelib/tools/setupprojectparameters.h b/src/lib/corelib/tools/setupprojectparameters.h index 76b038752..5cd9700a9 100644 --- a/src/lib/corelib/tools/setupprojectparameters.h +++ b/src/lib/corelib/tools/setupprojectparameters.h @@ -132,9 +132,6 @@ public: bool waitLockBuildGraph() const; void setWaitLockBuildGraph(bool wait); - bool fallbackProviderEnabled() const; - void setFallbackProviderEnabled(bool enable); - QProcessEnvironment environment() const; void setEnvironment(const QProcessEnvironment &env); QProcessEnvironment adjustedEnvironment() const; diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index 917d7436c..c62fdbca0 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -6058,12 +6058,9 @@ void TestBlackbox::protobuf_data() QTest::addColumn<QStringList>("properties"); QTest::addColumn<bool>("hasModules"); QTest::addColumn<bool>("successExpected"); - QTest::newRow("cpp-fallback") << QString("addressbook_cpp.qbs") << QStringList() << true << true; QTest::newRow("cpp-pkgconfig") << QString("addressbook_cpp.qbs") - << QStringList({"project.qbsModuleProviders:qbspkgconfig", "--no-fallback-module-provider"}) - << true - << true; + << QStringList({"project.qbsModuleProviders:qbspkgconfig"}) << true << true; QTest::newRow("objc") << QString("addressbook_objc.qbs") << QStringList() << false << true; QTest::newRow("nanopb") << QString("addressbook_nanopb.qbs") << QStringList() << false << true; QTest::newRow("import") << QString("import.qbs") << QStringList() << true << true; @@ -8632,10 +8629,7 @@ void TestBlackbox::grpc_data() QTest::addColumn<QStringList>("arguments"); QTest::addColumn<bool>("hasModules"); - QTest::newRow("cpp-fallback") << QString("grpc_cpp.qbs") << QStringList() << true; - - QStringList pkgConfigArgs({ - "project.qbsModuleProviders:qbspkgconfig", "--no-fallback-module-provider"}); + QStringList pkgConfigArgs({"project.qbsModuleProviders:qbspkgconfig"}); // on macOS, openSSL is hidden from pkg-config by default if (qbs::Internal::HostOsInfo::isMacosHost()) { pkgConfigArgs diff --git a/tests/auto/blackbox/tst_blackboxproviders.cpp b/tests/auto/blackbox/tst_blackboxproviders.cpp index 3642ded03..3d64d32d5 100644 --- a/tests/auto/blackbox/tst_blackboxproviders.cpp +++ b/tests/auto/blackbox/tst_blackboxproviders.cpp @@ -87,60 +87,6 @@ void TestBlackboxProviders::brokenProvider() QCOMPARE(m_qbsStderr.count("This provider is broken"), 2); } -void TestBlackboxProviders::fallbackModuleProvider_data() -{ - QTest::addColumn<bool>("fallbacksEnabledGlobally"); - QTest::addColumn<bool>("fallbacksEnabledInProduct"); - QTest::addColumn<QStringList>("pkgConfigLibDirs"); - QTest::addColumn<bool>("successExpected"); - QTest::newRow("without custom lib dir, fallbacks disabled globally and in product") - << false << false << QStringList() << false; - QTest::newRow("without custom lib dir, fallbacks disabled globally, enabled in product") - << false << true << QStringList() << false; - QTest::newRow("without custom lib dir, fallbacks enabled globally, disabled in product") - << true << false << QStringList() << false; - QTest::newRow("without custom lib dir, fallbacks enabled globally and in product") - << true << true << QStringList() << false; - QTest::newRow("with custom lib dir, fallbacks disabled globally and in product") - << false << false << QStringList(testDataDir + "/fallback-module-provider/libdir") - << false; - QTest::newRow("with custom lib dir, fallbacks disabled globally, enabled in product") - << false << true << QStringList(testDataDir + "/fallback-module-provider/libdir") - << false; - QTest::newRow("with custom lib dir, fallbacks enabled globally, disabled in product") - << true << false << QStringList(testDataDir + "/fallback-module-provider/libdir") - << false; - QTest::newRow("with custom lib dir, fallbacks enabled globally and in product") - << true << true << QStringList(testDataDir + "/fallback-module-provider/libdir") - << true; -} - -void TestBlackboxProviders::fallbackModuleProvider() -{ - QFETCH(bool, fallbacksEnabledInProduct); - QFETCH(bool, fallbacksEnabledGlobally); - QFETCH(QStringList, pkgConfigLibDirs); - QFETCH(bool, successExpected); - - QDir::setCurrent(testDataDir + "/fallback-module-provider"); - static const auto b2s = [](bool b) { return QString(b ? "true" : "false"); }; - QbsRunParameters resolveParams("resolve", - QStringList{"modules.pkgconfig.libDirs:" + pkgConfigLibDirs.join(','), - "products.p.fallbacksEnabled:" + b2s(fallbacksEnabledInProduct), - "--force-probe-execution"}); - if (!fallbacksEnabledGlobally) - resolveParams.arguments << "--no-fallback-module-provider"; - QCOMPARE(runQbs(resolveParams), 0); - const bool pkgConfigPresent = m_qbsStdout.contains("pkg-config present: true"); - const bool pkgConfigNotPresent = m_qbsStdout.contains("pkg-config present: false"); - QVERIFY(pkgConfigPresent != pkgConfigNotPresent); - if (pkgConfigNotPresent) - successExpected = false; - QbsRunParameters buildParams; - buildParams.expectFailure = !successExpected; - QCOMPARE(runQbs(buildParams) == 0, successExpected); -} - void TestBlackboxProviders::moduleProviders() { QDir::setCurrent(testDataDir + "/module-providers"); diff --git a/tests/auto/blackbox/tst_blackboxproviders.h b/tests/auto/blackbox/tst_blackboxproviders.h index e8477de51..dd0039013 100644 --- a/tests/auto/blackbox/tst_blackboxproviders.h +++ b/tests/auto/blackbox/tst_blackboxproviders.h @@ -44,8 +44,6 @@ private slots: void allowedValues(); void allowedValues_data(); void brokenProvider(); - void fallbackModuleProvider_data(); - void fallbackModuleProvider(); void moduleProviders(); void moduleProvidersCache(); void nonEagerModuleProvider(); |