commit:     a4d832db2da41240558c424710a00435a797f0d6
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 25 22:17:54 2020 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Jan 25 22:34:36 2020 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=a4d832db

OrUpgradeInstalledTestCase: add test for bug 706278

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

 .../tests/resolver/test_or_upgrade_installed.py    | 71 ++++++++++++++++++++++
 1 file changed, 71 insertions(+)

diff --git a/lib/portage/tests/resolver/test_or_upgrade_installed.py 
b/lib/portage/tests/resolver/test_or_upgrade_installed.py
index 7018e08de..c3efebf55 100644
--- a/lib/portage/tests/resolver/test_or_upgrade_installed.py
+++ b/lib/portage/tests/resolver/test_or_upgrade_installed.py
@@ -158,3 +158,74 @@ class OrUpgradeInstalledTestCase(TestCase):
                finally:
                        playground.debug = False
                        playground.cleanup()
+
+
+       def test_llvm_slot_operator(self):
+               ebuilds = {
+                       'media-libs/mesa-19.2.8': {
+                               'EAPI': '7',
+                               'RDEPEND': '''|| (
+                                       sys-devel/llvm:10
+                                       sys-devel/llvm:9
+                                       sys-devel/llvm:8
+                                       sys-devel/llvm:7
+                               )
+                               sys-devel/llvm:='''
+                       },
+                       'sys-devel/llvm-10': {
+                               'EAPI': '7',
+                               'KEYWORDS': '',
+                               'SLOT': '10',
+                       },
+                       'sys-devel/llvm-9': {
+                               'EAPI': '7',
+                               'SLOT': '9',
+                       },
+                       'sys-devel/llvm-8': {
+                               'EAPI': '7',
+                               'SLOT': '8',
+                       },
+               }
+
+               installed = {
+                       'media-libs/mesa-19.2.8': {
+                               'EAPI': '7',
+                               'RDEPEND': '''|| (
+                                       sys-devel/llvm:10
+                                       sys-devel/llvm:9
+                                       sys-devel/llvm:8
+                                       sys-devel/llvm:7
+                               )
+                               sys-devel/llvm:8/8='''
+                       },
+                       'sys-devel/llvm-8': {
+                               'EAPI': '7',
+                               'SLOT': '8',
+                       },
+               }
+
+               world = ['media-libs/mesa']
+
+               test_cases = (
+                       # Demonstrate bug 706278, where there is a missed slot 
operator
+                       # rebuild that prevents upgrade from llvm-8 to llvm-9.
+                       ResolverPlaygroundTestCase(
+                               ['@world'],
+                               options={'--update': True, '--deep': True},
+                               success=True,
+                               mergelist=[],
+                               #mergelist=['sys-devel/llvm-9'],
+                       ),
+               )
+
+               playground = ResolverPlayground(debug=False,
+                       ebuilds=ebuilds, installed=installed, world=world)
+
+               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