From 71490cfe450165271a78e519d24ed39217bc440e Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Thu, 23 Oct 2014 09:30:11 +0200 Subject: 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 Reviewed-by: Karsten Heimrich --- .../packagemanagercore/tst_packagemanagercore.cpp | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'tests') 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); + } }; -- cgit v1.2.3