diff options
author | Zac Medico <zmedico@gentoo.org> | 2019-11-26 10:05:47 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2019-11-26 12:34:53 -0800 |
commit | 1b3131db0e22085dba7d0fb9fc6e5ec70c8c577d (patch) | |
tree | f7d433787a633d63c6f3787eee80e58825e1a47f /lib/portage/tests | |
parent | Rename DCO_SIGNED_OFF_BY config variable to SIGNED_OFF_BY. (diff) | |
download | portage-1b3131db0e22085dba7d0fb9fc6e5ec70c8c577d.tar.gz portage-1b3131db0e22085dba7d0fb9fc6e5ec70c8c577d.tar.bz2 portage-1b3131db0e22085dba7d0fb9fc6e5ec70c8c577d.zip |
emerge --buildpkgonly: respect buildtime hard blockers
Bug: https://bugs.gentoo.org/689226
Signed-off-by: Zac Medico <zmedico@gentoo.org>
Diffstat (limited to 'lib/portage/tests')
-rw-r--r-- | lib/portage/tests/resolver/test_blocker.py | 87 |
1 files changed, 86 insertions, 1 deletions
diff --git a/lib/portage/tests/resolver/test_blocker.py b/lib/portage/tests/resolver/test_blocker.py index 94a88b8b4..6534f99e6 100644 --- a/lib/portage/tests/resolver/test_blocker.py +++ b/lib/portage/tests/resolver/test_blocker.py @@ -1,4 +1,4 @@ -# Copyright 2014 Gentoo Foundation +# Copyright 2014-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 from portage.tests import TestCase @@ -46,3 +46,88 @@ class SlotConflictWithBlockerTestCase(TestCase): self.assertEqual(test_case.test_success, True, test_case.fail_msg) finally: playground.cleanup() + + def testBlockerBuildpkgonly(self): + ebuilds = { + 'dev-libs/A-1': { + 'EAPI': '7', + 'DEPEND': '!!dev-libs/X' + }, + + 'dev-libs/B-1': { + 'EAPI': '7', + 'BDEPEND': '!!dev-libs/X' + }, + + 'dev-libs/C-1': { + 'EAPI': '7', + 'BDEPEND': '!dev-libs/X' + }, + + 'dev-libs/D-1': { + 'EAPI': '7', + 'DEPEND': '!dev-libs/X' + }, + + 'dev-libs/E-1': { + 'EAPI': '7', + 'RDEPEND': '!dev-libs/X !!dev-libs/X' + }, + + 'dev-libs/F-1': { + 'EAPI': '7', + 'PDEPEND': '!dev-libs/X !!dev-libs/X' + }, + } + + installed = { + 'dev-libs/X-1': {}, + } + + test_cases = ( + ResolverPlaygroundTestCase( + ['dev-libs/A'], + success = False, + options = {'--buildpkgonly': True}, + mergelist = ['dev-libs/A-1', '!!dev-libs/X']), + + ResolverPlaygroundTestCase( + ['dev-libs/B'], + success = False, + options = {'--buildpkgonly': True}, + mergelist = ['dev-libs/B-1', '!!dev-libs/X']), + + ResolverPlaygroundTestCase( + ['dev-libs/C'], + success = True, + options = {'--buildpkgonly': True}, + mergelist = ['dev-libs/C-1']), + + ResolverPlaygroundTestCase( + ['dev-libs/D'], + success = True, + options = {'--buildpkgonly': True}, + mergelist = ['dev-libs/D-1']), + + ResolverPlaygroundTestCase( + ['dev-libs/E'], + success = True, + options = {'--buildpkgonly': True}, + mergelist = ['dev-libs/E-1']), + + ResolverPlaygroundTestCase( + ['dev-libs/F'], + success = True, + options = {'--buildpkgonly': True}, + mergelist = ['dev-libs/F-1']), + ) + + playground = ResolverPlayground(ebuilds=ebuilds, + installed=installed, debug=False) + 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() |