commit:     041763a8b7cda7dac0b75aa4a85eb73f333b7e55
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 14 00:11:43 2022 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Mon Feb 14 00:13:05 2022 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=041763a8

Add unit test to reproduce bug 833014

Bug: https://bugs.gentoo.org/833014
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/portage/tests/resolver/test_installkernel.py | 111 +++++++++++++++++++++++
 1 file changed, 111 insertions(+)

diff --git a/lib/portage/tests/resolver/test_installkernel.py 
b/lib/portage/tests/resolver/test_installkernel.py
new file mode 100644
index 000000000..b73bbe5bb
--- /dev/null
+++ b/lib/portage/tests/resolver/test_installkernel.py
@@ -0,0 +1,111 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+from portage.tests import TestCase
+from portage.tests.resolver.ResolverPlayground import (
+    ResolverPlayground,
+    ResolverPlaygroundTestCase,
+)
+
+
+class InstallKernelTestCase(TestCase):
+    def testInstallKernel(self):
+        ebuilds = {
+            "sys-kernel/installkernel-systemd-boot-1": {
+                "EAPI": "8",
+                "RDEPEND": "!sys-kernel/installkernel-gentoo",
+            },
+            "sys-kernel/installkernel-gentoo-3": {
+                "EAPI": "8",
+                "RDEPEND": "!sys-kernel/installkernel-systemd-boot",
+            },
+            "sys-kernel/gentoo-kernel-5.15.23": {
+                "EAPI": "8",
+                "PDEPEND": ">=virtual/dist-kernel-5.15.23",
+                "RDEPEND": "|| ( sys-kernel/installkernel-gentoo 
sys-kernel/installkernel-systemd-boot )",
+            },
+            "sys-kernel/gentoo-kernel-bin-5.15.23": {
+                "EAPI": "8",
+                "PDEPEND": ">=virtual/dist-kernel-5.15.23",
+                "RDEPEND": "|| ( sys-kernel/installkernel-gentoo 
sys-kernel/installkernel-systemd-boot )",
+            },
+            "virtual/dist-kernel-5.15.23": {
+                "EAPI": "8",
+                "PDEPEND": "|| ( ~sys-kernel/gentoo-kernel-5.15.23 
~sys-kernel/gentoo-kernel-bin-5.15.23 )",
+            },
+        }
+
+        installed = {
+            "sys-kernel/installkernel-gentoo-3": {
+                "EAPI": "8",
+                "RDEPEND": "!sys-kernel/installkernel-systemd-boot",
+            },
+        }
+
+        test_cases = (
+            ResolverPlaygroundTestCase(
+                [
+                    "sys-kernel/installkernel-systemd-boot",
+                ],
+                ambiguous_merge_order=True,
+                success=True,
+                mergelist=[
+                    "sys-kernel/installkernel-systemd-boot-1",
+                    "[uninstall]sys-kernel/installkernel-gentoo-3",
+                    (
+                        "!sys-kernel/installkernel-gentoo",
+                        "!sys-kernel/installkernel-systemd-boot",
+                    ),
+                ],
+            ),
+            # Demonstrate bug 833014, where the calculation fails unless
+            # --update and --deep are specified.
+            ResolverPlaygroundTestCase(
+                [
+                    "sys-kernel/installkernel-systemd-boot",
+                    "sys-kernel/gentoo-kernel-bin",
+                ],
+                ambiguous_merge_order=True,
+                success=False,
+                mergelist=[
+                    "sys-kernel/installkernel-systemd-boot-1",
+                    "sys-kernel/gentoo-kernel-bin-5.15.23",
+                    "virtual/dist-kernel-5.15.23",
+                    (
+                        "!sys-kernel/installkernel-gentoo",
+                        "!sys-kernel/installkernel-systemd-boot",
+                    ),
+                ],
+            ),
+            ResolverPlaygroundTestCase(
+                [
+                    "sys-kernel/installkernel-systemd-boot",
+                    "sys-kernel/gentoo-kernel-bin",
+                ],
+                ambiguous_merge_order=True,
+                success=True,
+                options={"--deep": True, "--update": True},
+                mergelist=[
+                    "virtual/dist-kernel-5.15.23",
+                    "sys-kernel/installkernel-systemd-boot-1",
+                    "sys-kernel/gentoo-kernel-bin-5.15.23",
+                    "[uninstall]sys-kernel/installkernel-gentoo-3",
+                    (
+                        "!sys-kernel/installkernel-systemd-boot",
+                        "!sys-kernel/installkernel-gentoo",
+                    ),
+                ],
+            ),
+        )
+
+        playground = ResolverPlayground(
+            debug=False, ebuilds=ebuilds, installed=installed
+        )
+
+        try:
+            for test_case in test_cases:
+                playground.run_TestCase(test_case)
+                self.assertEqual(test_case.test_success, True, 
test_case.fail_msg)
+        finally:
+            playground.debug = False
+            playground.cleanup()

Reply via email to