diff options
author | Katja Marttila <katja.marttila@qt.io> | 2020-03-27 10:53:25 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2020-03-31 10:02:29 +0300 |
commit | b5022c36b878c13861378ab2d9970d0533a43b6a (patch) | |
tree | d3ee58cd5cc158f752dcb75a28460160e58d265f /tests/auto/installer/packagemanagercore | |
parent | 8d025e5dcd841939bdf44fc4705dffe429bca5b5 (diff) |
Add function to allow additional processes to be run
Maintenancetool does not allow updating install if running processes are
found from install directory. Only maintenancetool process was allowed,
otherwise the install failed with query to shut down processes. This
commit adds a function to extend the allowed processes to be
run, this is mandatory when running tests as test executable lies in the
install directory.
Task-number: QTIFW-1019
Change-Id: I5422b0327e3f77edf3f9c88c74f40eff5cc8c830
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Diffstat (limited to 'tests/auto/installer/packagemanagercore')
-rw-r--r-- | tests/auto/installer/packagemanagercore/tst_packagemanagercore.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/auto/installer/packagemanagercore/tst_packagemanagercore.cpp b/tests/auto/installer/packagemanagercore/tst_packagemanagercore.cpp index cf5a53b8b..40e8d5a1b 100644 --- a/tests/auto/installer/packagemanagercore/tst_packagemanagercore.cpp +++ b/tests/auto/installer/packagemanagercore/tst_packagemanagercore.cpp @@ -37,6 +37,7 @@ #include <QFile> #include <QTemporaryFile> #include <QTest> +#include <QRegularExpression> using namespace QInstaller; @@ -284,6 +285,40 @@ private slots: #endif QVERIFY(QDir().rmdir(testDirectory)); } + + void testAllowRunningProcess() + { + PackageManagerCore core; + core.setPackageManager(); + const QString testDirectory = QInstaller::generateTemporaryFileName(); + QVERIFY(QDir().mkpath(testDirectory)); + core.setValue(scTargetDir, testDirectory); + + QString appFilePath = QCoreApplication::applicationFilePath(); + core.setAllowedRunningProcesses(QStringList() << appFilePath); + const QString warningMessage = QString("Failure to read packages from "); + const QRegularExpression re(warningMessage); + QTest::ignoreMessage(QtWarningMsg, re); + QTest::ignoreMessage(QtDebugMsg, "No updates available."); + core.updateComponentsSilently(QStringList()); + QVERIFY(QDir().rmdir(testDirectory)); + } + + void testDisallowRunningProcess() + { + PackageManagerCore core; + core.setPackageManager(); + const QString testDirectory = QInstaller::generateTemporaryFileName(); + QVERIFY(QDir().mkpath(testDirectory)); + core.setValue(scTargetDir, testDirectory); + + const QString warningMessage = QString("Unable to update components. Please stop these processes: "); + const QRegularExpression re(warningMessage); + QTest::ignoreMessage(QtWarningMsg, re); + QVERIFY_EXCEPTION_THROWN(core.updateComponentsSilently(QStringList()), Error); + + QVERIFY(QDir().rmdir(testDirectory)); + } }; |