From 05923d13b5272924105576ca215a038f8b554ead Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 6 Jul 2023 14:23:16 +0200 Subject: Let users specify a job count also when resolving Preparation for loader parallelization. For simplicity, we do not introduce a new command-line option, but re- use the -j flag that was already present for building. Change-Id: I71ce31ec3ccc592d222bcfe14a8aaf311126020c Reviewed-by: Ivan Komissarov --- tests/auto/api/tst_api.cpp | 1 + tests/auto/blackbox/tst_blackbox.cpp | 3 ++- tests/auto/cmdlineparser/tst_cmdlineparser.cpp | 21 +++++++++++++++++++++ tests/auto/language/tst_language.cpp | 1 + 4 files changed, 25 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/auto/api/tst_api.cpp b/tests/auto/api/tst_api.cpp index 5042766d9..c07d358c2 100644 --- a/tests/auto/api/tst_api.cpp +++ b/tests/auto/api/tst_api.cpp @@ -2522,6 +2522,7 @@ qbs::SetupProjectParameters TestApi::defaultSetupParameters(const QString &proje setupParams.setLibexecPath(QDir::cleanPath(QCoreApplication::applicationDirPath() + QLatin1String("/" QBS_RELATIVE_LIBEXEC_PATH))); setupParams.setTopLevelProfile(profileName()); + setupParams.setMaxJobCount(2); setupParams.setConfigurationName(QStringLiteral("default")); setupParams.setSettingsDirectory(settings()->baseDirectory()); return setupParams; diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index 465c97196..93a676697 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -6345,7 +6345,7 @@ void TestBlackbox::qbsSession() // Wait for and verify hello packet. QJsonObject receivedMessage = getNextSessionPacket(sessionProc, incomingData); QCOMPARE(receivedMessage.value("type"), "hello"); - QCOMPARE(receivedMessage.value("api-level").toInt(), 3); + QCOMPARE(receivedMessage.value("api-level").toInt(), 4); QCOMPARE(receivedMessage.value("api-compat-level").toInt(), 2); // Resolve & verify structure @@ -6361,6 +6361,7 @@ void TestBlackbox::qbsSession() resolveMessage.insert("overridden-properties", overriddenValues); resolveMessage.insert("environment", envToJson(QbsRunParameters::defaultEnvironment())); resolveMessage.insert("data-mode", "only-if-changed"); + resolveMessage.insert("max-job-count", 2); resolveMessage.insert("log-time", true); resolveMessage.insert("module-properties", QJsonArray::fromStringList({"cpp.cxxLanguageVersion"})); diff --git a/tests/auto/cmdlineparser/tst_cmdlineparser.cpp b/tests/auto/cmdlineparser/tst_cmdlineparser.cpp index f617d41c7..6a8b44f89 100644 --- a/tests/auto/cmdlineparser/tst_cmdlineparser.cpp +++ b/tests/auto/cmdlineparser/tst_cmdlineparser.cpp @@ -26,6 +26,8 @@ ** ****************************************************************************/ +#include "../shared.h" + #include #include #include @@ -55,6 +57,25 @@ private slots: m_fileArgs = QStringList() << "-f" << m_projectFile.fileName(); } + void testResolve_data() + { + QTest::addColumn("args"); + QTest::addColumn("expectedJobCount"); + + QTest::newRow("default job count") << QStringList() << BuildOptions::defaultMaxJobCount(); + QTest::newRow("explicit job count") << QStringList("-j5") << 5; + } + void testResolve() + { + QFETCH(QStringList, args); + QFETCH(int, expectedJobCount); + + CommandLineParser parser; + QVERIFY(parser.parseCommandLine(QStringList("resolve") << args << m_fileArgs)); + QCOMPARE(parser.command(), ResolveCommandType); + QCOMPARE(parser.jobCount(profileName()), expectedJobCount); + } + void testValidCommandLine() { QStringList args; diff --git a/tests/auto/language/tst_language.cpp b/tests/auto/language/tst_language.cpp index 9b8506d84..8b50d39b9 100644 --- a/tests/auto/language/tst_language.cpp +++ b/tests/auto/language/tst_language.cpp @@ -195,6 +195,7 @@ void TestLanguage::init() defaultParameters.setPropertyCheckingMode(ErrorHandlingMode::Strict); defaultParameters.setSettingsDirectory(m_settings->baseDirectory()); defaultParameters.setTopLevelProfile(profileName()); + defaultParameters.setMaxJobCount(1); defaultParameters.setConfigurationName("default"); defaultParameters.setEnvironment(QProcessEnvironment::systemEnvironment()); defaultParameters.setSearchPaths({SRCDIR "/../../../share/qbs"}); -- cgit v1.2.3