diff options
Diffstat (limited to 'tests/auto/installer/solver/tst_solver.cpp')
-rw-r--r-- | tests/auto/installer/solver/tst_solver.cpp | 69 |
1 files changed, 32 insertions, 37 deletions
diff --git a/tests/auto/installer/solver/tst_solver.cpp b/tests/auto/installer/solver/tst_solver.cpp index 45fadc4e6..4548af3f1 100644 --- a/tests/auto/installer/solver/tst_solver.cpp +++ b/tests/auto/installer/solver/tst_solver.cpp @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2022 The Qt Company Ltd. +** Copyright (C) 2023 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -39,7 +39,7 @@ using namespace QInstaller; typedef QMap<Component *, QStringList> ComponentToStringList; -typedef QList<QPair<Component *, UninstallerCalculator::UninstallReasonType>> UninstallReasonList; +typedef QList<QPair<Component *, CalculatorBase::Resolution>> UninstallReasonList; Q_DECLARE_METATYPE(UninstallReasonList) @@ -48,7 +48,7 @@ public: Data() {} explicit Data(const QString &data) : m_data(data) {} - inline uint qHash(const Data &test); + inline hashValue qHash(const Data &test); QString data() const { return m_data; } bool operator==(const Data &rhs) const { return m_data == rhs.m_data; } const Data &operator=(const Data &rhs) { if (this != &rhs) { m_data = rhs.m_data; } return *this; } @@ -56,7 +56,7 @@ public: private: QString m_data; }; -inline uint qHash(const Data &data) +inline hashValue qHash(const Data &data) { return qHash(data.data()); } @@ -149,7 +149,7 @@ private slots: QTest::addColumn<PackageManagerCore *>("core"); QTest::addColumn<QList<Component *> >("selectedComponents"); QTest::addColumn<QList<Component *> >("expectedResult"); - QTest::addColumn<QList<int> >("installReason"); + QTest::addColumn<QList<CalculatorBase::Resolution> >("installReason"); QTest::addColumn<AutoDependencyHash >("autodependencyHash"); PackageManagerCore *core = new PackageManagerCore(); @@ -176,11 +176,11 @@ private slots: QTest::newRow("Installer resolved") << core << (QList<Component *>() << componentB) << (QList<Component *>() << componentB_NewVersion << componentAB << componentB << componentB_Auto) - << (QList<int>() - << InstallerCalculator::Dependent - << InstallerCalculator::Dependent - << InstallerCalculator::Resolved - << InstallerCalculator::Automatic) + << (QList<CalculatorBase::Resolution>() + << CalculatorBase::Resolution::Dependent + << CalculatorBase::Resolution::Dependent + << CalculatorBase::Resolution::Resolved + << CalculatorBase::Resolution::Automatic) << autodependencyHash; } @@ -189,18 +189,17 @@ private slots: QFETCH(PackageManagerCore *, core); QFETCH(QList<Component *> , selectedComponents); QFETCH(QList<Component *> , expectedResult); - QFETCH(QList<int>, installReason); + QFETCH(QList<CalculatorBase::Resolution>, installReason); QFETCH(AutoDependencyHash, autodependencyHash); - InstallerCalculator calc(core, core->components(PackageManagerCore::ComponentType::AllNoReplacements) - , autodependencyHash); - calc.appendComponentsToInstall(selectedComponents); - QList<Component *> result = calc.orderedComponentsToInstall(); + InstallerCalculator calc(core, autodependencyHash); + calc.solve(selectedComponents); + QList<Component *> result = calc.resolvedComponents(); QCOMPARE(result.count(), expectedResult.count()); for (int i = 0; i < result.count(); i++) { QCOMPARE(result.at(i), expectedResult.at(i)); - QCOMPARE((int)calc.installReasonType(result.at(i)), installReason.at(i)); + QCOMPARE(calc.resolutionType(result.at(i)), installReason.at(i)); } delete core; } @@ -236,11 +235,11 @@ private slots: QFETCH(QList<Component *> , selectedComponents); QFETCH(QList<Component *> , expectedResult); - InstallerCalculator calc(core, core->components(PackageManagerCore::ComponentType::AllNoReplacements), QHash<QString, QStringList>()); + InstallerCalculator calc(core, QHash<QString, QStringList>()); QTest::ignoreMessage(QtWarningMsg, "Cannot find missing dependency \"B->=2.0.0\" for \"A\"."); - calc.appendComponentsToInstall(selectedComponents); + calc.solve(selectedComponents); - QList<Component *> result = calc.orderedComponentsToInstall(); + QList<Component *> result = calc.resolvedComponents(); QCOMPARE(result.count(), expectedResult.count()); delete core; } @@ -249,10 +248,9 @@ private slots: { QTest::addColumn<PackageManagerCore *>("core"); QTest::addColumn<QList<Component *> >("selectedToUninstall"); - QTest::addColumn<QList<Component *> >("installedComponents"); - QTest::addColumn<QSet<Component *> >("expectedResult"); + QTest::addColumn<QList<Component *> >("expectedResult"); QTest::addColumn<UninstallReasonList >("uninstallReasons"); - QTest::addColumn<DependencyHash >("dependencyHash"); + QTest::addColumn<LocalDependencyHash >("dependencyHash"); UninstallReasonList uninstallReasonList; PackageManagerCore *core = new PackageManagerCore(); @@ -274,12 +272,11 @@ private slots: QHash<QString, QStringList> dependencyComponentHash; dependencyComponentHash.insert(QLatin1String("A.B"), QStringList() << QLatin1String("B")); - uninstallReasonList.append(qMakePair(componentAB, UninstallerCalculator::Selected)); - uninstallReasonList.append(qMakePair(componentB, UninstallerCalculator::Dependent)); + uninstallReasonList.append(qMakePair(componentAB, CalculatorBase::Resolution::Selected)); + uninstallReasonList.append(qMakePair(componentB, CalculatorBase::Resolution::Dependent)); QTest::newRow("Uninstaller resolved") << core << (QList<Component *>() << componentAB) - << (QList<Component *>() << componentA << componentB) - << (QSet<Component *>() << componentAB << componentB) + << (QList<Component *>() << componentB << componentAB) << uninstallReasonList << dependencyComponentHash; @@ -300,12 +297,11 @@ private slots: dependencyComponentHash.insert(QLatin1String("A"), QStringList() << QLatin1String("B")); - uninstallReasonList.append(qMakePair(compA, UninstallerCalculator::Selected)); - uninstallReasonList.append(qMakePair(compB, UninstallerCalculator::Dependent)); + uninstallReasonList.append(qMakePair(compA, CalculatorBase::Resolution::Selected)); + uninstallReasonList.append(qMakePair(compB, CalculatorBase::Resolution::Dependent)); QTest::newRow("Cascade dependencies") << core << (QList<Component *>() << compA) - << (QList<Component *>() << compB) - << (QSet<Component *>() << compA << compB) + << (QList<Component *>() << compB << compA) << (uninstallReasonList) << dependencyComponentHash; } @@ -314,16 +310,15 @@ private slots: { QFETCH(PackageManagerCore *, core); QFETCH(QList<Component *> , selectedToUninstall); - QFETCH(QList<Component *> , installedComponents); - QFETCH(QSet<Component *> , expectedResult); + QFETCH(QList<Component *> , expectedResult); QFETCH(UninstallReasonList, uninstallReasons); - QFETCH(DependencyHash, dependencyHash); + QFETCH(LocalDependencyHash, dependencyHash); - UninstallerCalculator calc(installedComponents, core, QHash<QString, QStringList>(), dependencyHash, QStringList()); - calc.appendComponentsToUninstall(selectedToUninstall); - QSet<Component *> result = calc.componentsToUninstall(); + UninstallerCalculator calc(core, QHash<QString, QStringList>(), dependencyHash, QStringList()); + calc.solve(selectedToUninstall); + QList<Component *> result = calc.resolvedComponents(); for (auto pair : uninstallReasons) { - UninstallerCalculator::UninstallReasonType type = calc.uninstallReasonType(pair.first); + CalculatorBase::Resolution type = calc.resolutionType(pair.first); QCOMPARE(pair.second, type); } QCOMPARE(result.count(), expectedResult.count()); |