From ab3727d6a4f78cbf3403e446787e223d1dc4e7f1 Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Wed, 1 Apr 2020 08:39:35 +0300 Subject: Add CLI test for ConsumeOutputOperation Task-number: QTIFW-1717 Change-Id: If27b649a11f54395de117891ee6fa0d9d339bfb4 Reviewed-by: Arttu Tarkiainen --- .../consumeoutputoperationtest.pro | 4 +++ .../data/repository/A/1.0.2-1meta.7z | Bin 0 -> 894 bytes .../data/repository/Updates.xml | 14 +++++++++ .../consumeoutputoperationtest/settings.qrc | 6 ++++ .../tst_consumeoutputoperationtest.cpp | 32 ++++++++++++++++++--- 5 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 tests/auto/installer/consumeoutputoperationtest/data/repository/A/1.0.2-1meta.7z create mode 100644 tests/auto/installer/consumeoutputoperationtest/data/repository/Updates.xml create mode 100644 tests/auto/installer/consumeoutputoperationtest/settings.qrc 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 new file mode 100644 index 000000000..5415d3b9f Binary files /dev/null and b/tests/auto/installer/consumeoutputoperationtest/data/repository/A/1.0.2-1meta.7z differ 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 @@ + + {AnyApplication} + 1.0.0 + false + + A + A + Example component A + 1.0.2-1 + 2015-01-01 + true + + + 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 @@ + + + data/repository/Updates.xml + data/repository/A/1.0.2-1meta.7z + + 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 #include #include +#include +#include #include #include @@ -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 ()); + QSet 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) -- cgit v1.2.3