diff options
author | Katja Marttila <katja.marttila@qt.io> | 2020-04-01 08:39:35 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2020-04-03 10:03:11 +0300 |
commit | ab3727d6a4f78cbf3403e446787e223d1dc4e7f1 (patch) | |
tree | 05a81fd316520b9485765e99261fd7899a557d1d | |
parent | e3f63bc8ba6453a381c2702962e25758365cbf01 (diff) |
Add CLI test for ConsumeOutputOperation
Task-number: QTIFW-1717
Change-Id: If27b649a11f54395de117891ee6fa0d9d339bfb4
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
5 files changed, 52 insertions, 4 deletions
diff --git a/tests/auto/installer/consumeoutputoperationtest/consumeoutputoperationtest.pro b/tests/auto/installer/consumeoutputoperationtest/consumeoutputoperationtest.pro index 3eacd46ac..45d6dab1d 100644 --- a/tests/auto/installer/consumeoutputoperationtest/consumeoutputoperationtest.pro +++ b/tests/auto/installer/consumeoutputoperationtest/consumeoutputoperationtest.pro @@ -6,3 +6,7 @@ QT += testlib qml SOURCES = tst_consumeoutputoperationtest.cpp DEFINES += "QMAKE_BINARY=$$fromNativeSeparators($$QMAKE_BINARY)" + +RESOURCES += \ + settings.qrc \ + ..\shared\config.qrc diff --git a/tests/auto/installer/consumeoutputoperationtest/data/repository/A/1.0.2-1meta.7z b/tests/auto/installer/consumeoutputoperationtest/data/repository/A/1.0.2-1meta.7z Binary files differnew file mode 100644 index 000000000..5415d3b9f --- /dev/null +++ b/tests/auto/installer/consumeoutputoperationtest/data/repository/A/1.0.2-1meta.7z diff --git a/tests/auto/installer/consumeoutputoperationtest/data/repository/Updates.xml b/tests/auto/installer/consumeoutputoperationtest/data/repository/Updates.xml new file mode 100644 index 000000000..6b1856d51 --- /dev/null +++ b/tests/auto/installer/consumeoutputoperationtest/data/repository/Updates.xml @@ -0,0 +1,14 @@ +<Updates> + <ApplicationName>{AnyApplication}</ApplicationName> + <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> + <PackageUpdate> + <Name>A</Name> + <DisplayName>A</DisplayName> + <Description>Example component A</Description> + <Version>1.0.2-1</Version> + <ReleaseDate>2015-01-01</ReleaseDate> + <Default>true</Default> + <Script>script.qs</Script> + </PackageUpdate> +</Updates> diff --git a/tests/auto/installer/consumeoutputoperationtest/settings.qrc b/tests/auto/installer/consumeoutputoperationtest/settings.qrc new file mode 100644 index 000000000..d030220ab --- /dev/null +++ b/tests/auto/installer/consumeoutputoperationtest/settings.qrc @@ -0,0 +1,6 @@ +<RCC> + <qresource prefix="/"> + <file>data/repository/Updates.xml</file> + <file>data/repository/A/1.0.2-1meta.7z</file> + </qresource> +</RCC> diff --git a/tests/auto/installer/consumeoutputoperationtest/tst_consumeoutputoperationtest.cpp b/tests/auto/installer/consumeoutputoperationtest/tst_consumeoutputoperationtest.cpp index 8250a7dd2..a6ac774a0 100644 --- a/tests/auto/installer/consumeoutputoperationtest/tst_consumeoutputoperationtest.cpp +++ b/tests/auto/installer/consumeoutputoperationtest/tst_consumeoutputoperationtest.cpp @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -31,6 +31,8 @@ #include <qinstallerglobal.h> #include <fileutils.h> #include <errors.h> +#include <settings.h> +#include <binarycontent.h> #include <QObject> #include <QTest> @@ -58,6 +60,8 @@ private slots: m_fakeQtPath = QDir::toNativeSeparators(qApp->applicationDirPath()) + QDir::separator() + "fakeQt" + QDir::separator(); QVERIFY(QDir().mkpath(m_fakeQtPath + "bin")); + m_testOutput = getOutputFrom(QUOTE(QMAKE_BINARY), QStringList("-query")); + qputenv("qmakePath", QUOTE(QMAKE_BINARY)); //Read from script } void testMissingArguments() @@ -81,15 +85,33 @@ private slots: void testGetOutputFromQmake() { - QString testOutput = getOutputFrom(QUOTE(QMAKE_BINARY), QStringList("-query")); - ConsumeOutputOperation operation(&m_core); operation.setArguments(QStringList() << "testConsumeOutputKey" << QUOTE(QMAKE_BINARY) << "-query"); QVERIFY2(operation.performOperation(), qPrintable(operation.errorString())); QCOMPARE(Operation::Error(operation.error()), Operation::NoError); - QCOMPARE(m_core.value("testConsumeOutputKey"), testOutput); + QCOMPARE(m_core.value("testConsumeOutputKey"), m_testOutput); + } + + void testPerformingFromCLI() + { + QInstaller::init(); //This will eat debug output + PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList<OperationBlob> ()); + QSet<Repository> repoList; + Repository repo = Repository::fromUserInput(":///data/repository"); + repoList.insert(repo); + core->settings().setDefaultRepositories(repoList); + + QString installDir = QInstaller::generateTemporaryFileName(); + QDir().mkpath(installDir); + core->setValue(scTargetDir, installDir); + core->installDefaultComponentsSilently(); + QCOMPARE(core->value("testConsumeOutputKeyFromScript"), m_testOutput); + + QDir dir(installDir); + QVERIFY(dir.removeRecursively()); + core->deleteLater(); } void cleanupTestCase() @@ -99,6 +121,7 @@ private slots: } catch (const QInstaller::Error &error) { QFAIL(qPrintable(error.message())); } + qunsetenv("qmakePath"); } private: @@ -119,6 +142,7 @@ private: PackageManagerCore m_core; QString m_fakeQtPath; + QString m_testOutput; }; QTEST_MAIN(tst_consumeoutputoperationtest) |