diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-06-12 15:12:26 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-06-12 15:12:26 -0700 |
commit | c754569663408e515fa134c52c7b3b8a1bb15181 (patch) | |
tree | e1e9e0c8dbb1d08cb9fc602ffe6e1236f9b4ffcc /pym/portage/tests/resolver | |
parent | 5e5b5c28dec6e9112f85adf0e2aaa00089010e62 (diff) | |
download | portage-c754569663408e515fa134c52c7b3b8a1bb15181.tar.gz portage-c754569663408e515fa134c52c7b3b8a1bb15181.tar.bz2 portage-c754569663408e515fa134c52c7b3b8a1bb15181.zip |
test_merge_order: test smallest runtime cycle
In the case of multiple runtime cycles, where some cycles
may depend on smaller independent cycles, it's optimal
to merge smaller independent cycles before other cycles
that depend on them. Therefore, we search for the
smallest cycle in order to try and identify and prefer
these smaller independent cycles.
Diffstat (limited to 'pym/portage/tests/resolver')
-rw-r--r-- | pym/portage/tests/resolver/test_merge_order.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/pym/portage/tests/resolver/test_merge_order.py b/pym/portage/tests/resolver/test_merge_order.py index e94b6c7dd..0a52c813b 100644 --- a/pym/portage/tests/resolver/test_merge_order.py +++ b/pym/portage/tests/resolver/test_merge_order.py @@ -81,6 +81,27 @@ class MergeOrderTestCase(TestCase): "DEPEND": "app-misc/circ-satisfied-a", "RDEPEND": "app-misc/circ-satisfied-a", }, + "app-misc/circ-smallest-a-1": { + "RDEPEND": "app-misc/circ-smallest-b", + }, + "app-misc/circ-smallest-b-1": { + "RDEPEND": "app-misc/circ-smallest-a", + }, + "app-misc/circ-smallest-c-1": { + "RDEPEND": "app-misc/circ-smallest-d", + }, + "app-misc/circ-smallest-d-1": { + "RDEPEND": "app-misc/circ-smallest-e", + }, + "app-misc/circ-smallest-e-1": { + "RDEPEND": "app-misc/circ-smallest-c", + }, + "app-misc/circ-smallest-f-1": { + "RDEPEND": "app-misc/circ-smallest-g app-misc/circ-smallest-a app-misc/circ-smallest-c", + }, + "app-misc/circ-smallest-g-1": { + "RDEPEND": "app-misc/circ-smallest-f", + }, "app-misc/installed-blocker-a-1" : { "EAPI" : "2", "DEPEND" : "!app-misc/blocker-buildtime-a", @@ -294,6 +315,18 @@ class MergeOrderTestCase(TestCase): ambiguous_merge_order = True, merge_order_assertions = (("app-misc/circ-satisfied-a-1", "app-misc/circ-satisfied-c-1"),), mergelist = [("app-misc/circ-satisfied-a-1", "app-misc/circ-satisfied-b-1", "app-misc/circ-satisfied-c-1")]), + # In the case of multiple runtime cycles, where some cycles + # may depend on smaller independent cycles, it's optimal + # to merge smaller independent cycles before other cycles + # that depend on them. + ResolverPlaygroundTestCase( + ["app-misc/circ-smallest-a", "app-misc/circ-smallest-c", "app-misc/circ-smallest-f"], + success = True, + ambiguous_merge_order = True, + all_permutations = True, + mergelist = [('app-misc/circ-smallest-a-1', 'app-misc/circ-smallest-b-1'), + ('app-misc/circ-smallest-c-1', 'app-misc/circ-smallest-d-1', 'app-misc/circ-smallest-e-1'), + ('app-misc/circ-smallest-f-1', 'app-misc/circ-smallest-g-1')]), # installed package has buildtime-only blocker # that should be ignored ResolverPlaygroundTestCase( |