summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@theqtcompany.com>2014-10-23 09:30:11 +0200
committerKai Koehne <kai.koehne@theqtcompany.com>2014-10-28 15:52:38 +0100
commit71490cfe450165271a78e519d24ed39217bc440e (patch)
treef7c7989966d0e200eb327e1a95e223fed83f03cf /tests
parentf99edc5d88b8957b36f95dea08b91e141e328698 (diff)
Fix calculation of required disk space
Do not count in already installed components when calculating the required disk space. Task-number: QTBUG-39308 Change-Id: Idff52da33d3e42dd156322115d5c489ba13a0945 Reviewed-by: Niels Weber <niels.weber@digia.com> Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/installer/packagemanagercore/tst_packagemanagercore.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/auto/installer/packagemanagercore/tst_packagemanagercore.cpp b/tests/auto/installer/packagemanagercore/tst_packagemanagercore.cpp
index 8a7af4a0b..01c56caea 100644
--- a/tests/auto/installer/packagemanagercore/tst_packagemanagercore.cpp
+++ b/tests/auto/installer/packagemanagercore/tst_packagemanagercore.cpp
@@ -145,6 +145,42 @@ private slots:
QVERIFY(!QDir(testDirectory).exists());
ProgressCoordinator::instance()->reset();
}
+
+ void testRequiredDiskSpace()
+ {
+ // test installer
+ PackageManagerCore core(MagicInstallerMarker);
+
+ DummyComponent *root = new DummyComponent(&core);
+ root->setValue(scName, "root");
+ root->setValue(scUncompressedSize, QString::number(1000));
+ core.appendRootComponent(root);
+
+ DummyComponent *child1 = new DummyComponent(&core);
+ child1->setValue(scName, "root.child1");
+ child1->setValue(scUncompressedSize, QString::number(1500));
+ root->appendComponent(child1);
+
+ DummyComponent *child2 = new DummyComponent(&core);
+ child2->setValue(scName, "root.child2");
+ child2->setValue(scUncompressedSize, QString::number(250));
+ root->appendComponent(child2);
+
+ // install root, child1 (child2 remains uninstalled)
+ root->setUninstalled();
+ child1->setUninstalled();
+ child2->setInstalled();
+ core.calculateComponentsToInstall();
+ QCOMPARE(core.requiredDiskSpace(), 2500ULL);
+
+ // additionally install child2
+ root->setInstalled();
+ child1->setInstalled();
+ child2->setUninstalled();
+ core.componentsToInstallNeedsRecalculation();
+ core.calculateComponentsToInstall();
+ QCOMPARE(core.requiredDiskSpace(), 250ULL);
+ }
};