summaryrefslogtreecommitdiffstats
path: root/tests/auto/installer/packagemanagercore
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2020-03-27 10:53:25 +0200
committerKatja Marttila <katja.marttila@qt.io>2020-03-31 10:02:29 +0300
commitb5022c36b878c13861378ab2d9970d0533a43b6a (patch)
treed3ee58cd5cc158f752dcb75a28460160e58d265f /tests/auto/installer/packagemanagercore
parent8d025e5dcd841939bdf44fc4705dffe429bca5b5 (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.cpp35
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));
+ }
};