aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Bersenev <bay@hackerdom.ru>2014-02-17 17:55:51 +0600
committerAlexander Bersenev <bay@hackerdom.ru>2014-02-17 17:55:51 +0600
commit5a3f506c9ef1cfd78940b0509f10ef94b4434e29 (patch)
tree147c35a17a8bcd8ff467bb3063adab623da51fac /portage_with_autodep/pym/portage/tests/resolver
parentfixed a deadlock (diff)
downloadautodep-5a3f506c9ef1cfd78940b0509f10ef94b4434e29.tar.gz
autodep-5a3f506c9ef1cfd78940b0509f10ef94b4434e29.tar.bz2
autodep-5a3f506c9ef1cfd78940b0509f10ef94b4434e29.zip
updated portage to 2.2.8-r1
Diffstat (limited to 'portage_with_autodep/pym/portage/tests/resolver')
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/ResolverPlayground.py690
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/__init__.py2
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/__test__0
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_autounmask.py326
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_backtracking.py169
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_circular_dependencies.py84
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_depclean.py285
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_depth.py252
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_eapi.py115
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_merge_order.py453
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_missing_iuse_and_evaluated_atoms.py31
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_multirepo.py318
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_multislot.py40
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_old_dep_chain_display.py35
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_output.py88
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_rebuild.py138
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_required_use.py114
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_simple.py57
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_slot_collisions.py143
-rw-r--r--portage_with_autodep/pym/portage/tests/resolver/test_use_dep_defaults.py40
20 files changed, 0 insertions, 3380 deletions
diff --git a/portage_with_autodep/pym/portage/tests/resolver/ResolverPlayground.py b/portage_with_autodep/pym/portage/tests/resolver/ResolverPlayground.py
deleted file mode 100644
index 6a8e3c1..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/ResolverPlayground.py
+++ /dev/null
@@ -1,690 +0,0 @@
-# Copyright 2010-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-from itertools import permutations
-import shutil
-import sys
-import tempfile
-import portage
-from portage import os
-from portage.const import PORTAGE_BASE_PATH
-from portage.dbapi.vartree import vartree
-from portage.dbapi.porttree import portagetree
-from portage.dbapi.bintree import binarytree
-from portage.dep import Atom, _repo_separator
-from portage.package.ebuild.config import config
-from portage.package.ebuild.digestgen import digestgen
-from portage._sets import load_default_config
-from portage._sets.base import InternalPackageSet
-from portage.versions import catsplit
-
-import _emerge
-from _emerge.actions import calc_depclean
-from _emerge.Blocker import Blocker
-from _emerge.create_depgraph_params import create_depgraph_params
-from _emerge.depgraph import backtrack_depgraph
-from _emerge.RootConfig import RootConfig
-
-if sys.hexversion >= 0x3000000:
- basestring = str
-
-class ResolverPlayground(object):
- """
- This class helps to create the necessary files on disk and
- the needed settings instances, etc. for the resolver to do
- its work.
- """
-
- config_files = frozenset(("package.use", "package.mask", "package.keywords", \
- "package.unmask", "package.properties", "package.license", "use.mask", "use.force"))
-
- def __init__(self, ebuilds={}, installed={}, profile={}, repo_configs={}, \
- user_config={}, sets={}, world=[], debug=False):
- """
- ebuilds: cpv -> metadata mapping simulating available ebuilds.
- installed: cpv -> metadata mapping simulating installed packages.
- If a metadata key is missing, it gets a default value.
- profile: settings defined by the profile.
- """
- self.debug = debug
- self.root = "/"
- self.eprefix = tempfile.mkdtemp()
- self.eroot = self.root + self.eprefix.lstrip(os.sep) + os.sep
- self.portdir = os.path.join(self.eroot, "usr/portage")
- self.vdbdir = os.path.join(self.eroot, "var/db/pkg")
- os.makedirs(self.portdir)
- os.makedirs(self.vdbdir)
-
- if not debug:
- portage.util.noiselimit = -2
-
- self.repo_dirs = {}
- #Make sure the main repo is always created
- self._get_repo_dir("test_repo")
-
- self._create_ebuilds(ebuilds)
- self._create_installed(installed)
- self._create_profile(ebuilds, installed, profile, repo_configs, user_config, sets)
- self._create_world(world)
-
- self.settings, self.trees = self._load_config()
-
- self._create_ebuild_manifests(ebuilds)
-
- portage.util.noiselimit = 0
-
- def _get_repo_dir(self, repo):
- """
- Create the repo directory if needed.
- """
- if repo not in self.repo_dirs:
- if repo == "test_repo":
- repo_path = self.portdir
- else:
- repo_path = os.path.join(self.eroot, "usr", "local", repo)
-
- self.repo_dirs[repo] = repo_path
- profile_path = os.path.join(repo_path, "profiles")
-
- try:
- os.makedirs(profile_path)
- except os.error:
- pass
-
- repo_name_file = os.path.join(profile_path, "repo_name")
- f = open(repo_name_file, "w")
- f.write("%s\n" % repo)
- f.close()
-
- return self.repo_dirs[repo]
-
- def _create_ebuilds(self, ebuilds):
- for cpv in ebuilds:
- a = Atom("=" + cpv, allow_repo=True)
- repo = a.repo
- if repo is None:
- repo = "test_repo"
-
- metadata = ebuilds[cpv].copy()
- eapi = metadata.pop("EAPI", 0)
- lic = metadata.pop("LICENSE", "")
- properties = metadata.pop("PROPERTIES", "")
- slot = metadata.pop("SLOT", 0)
- keywords = metadata.pop("KEYWORDS", "x86")
- iuse = metadata.pop("IUSE", "")
- depend = metadata.pop("DEPEND", "")
- rdepend = metadata.pop("RDEPEND", None)
- pdepend = metadata.pop("PDEPEND", None)
- required_use = metadata.pop("REQUIRED_USE", None)
-
- if metadata:
- raise ValueError("metadata of ebuild '%s' contains unknown keys: %s" % (cpv, metadata.keys()))
-
- repo_dir = self._get_repo_dir(repo)
- ebuild_dir = os.path.join(repo_dir, a.cp)
- ebuild_path = os.path.join(ebuild_dir, a.cpv.split("/")[1] + ".ebuild")
- try:
- os.makedirs(ebuild_dir)
- except os.error:
- pass
-
- f = open(ebuild_path, "w")
- f.write('EAPI="' + str(eapi) + '"\n')
- f.write('LICENSE="' + str(lic) + '"\n')
- f.write('PROPERTIES="' + str(properties) + '"\n')
- f.write('SLOT="' + str(slot) + '"\n')
- f.write('KEYWORDS="' + str(keywords) + '"\n')
- f.write('IUSE="' + str(iuse) + '"\n')
- f.write('DEPEND="' + str(depend) + '"\n')
- if rdepend is not None:
- f.write('RDEPEND="' + str(rdepend) + '"\n')
- if pdepend is not None:
- f.write('PDEPEND="' + str(pdepend) + '"\n')
- if required_use is not None:
- f.write('REQUIRED_USE="' + str(required_use) + '"\n')
- f.close()
-
- def _create_ebuild_manifests(self, ebuilds):
- tmpsettings = config(clone=self.settings)
- tmpsettings['PORTAGE_QUIET'] = '1'
- for cpv in ebuilds:
- a = Atom("=" + cpv, allow_repo=True)
- repo = a.repo
- if repo is None:
- repo = "test_repo"
-
- repo_dir = self._get_repo_dir(repo)
- ebuild_dir = os.path.join(repo_dir, a.cp)
- ebuild_path = os.path.join(ebuild_dir, a.cpv.split("/")[1] + ".ebuild")
-
- portdb = self.trees[self.root]["porttree"].dbapi
- tmpsettings['O'] = ebuild_dir
- if not digestgen(mysettings=tmpsettings, myportdb=portdb):
- raise AssertionError('digest creation failed for %s' % ebuild_path)
-
- def _create_installed(self, installed):
- for cpv in installed:
- a = Atom("=" + cpv, allow_repo=True)
- repo = a.repo
- if repo is None:
- repo = "test_repo"
-
- vdb_pkg_dir = os.path.join(self.vdbdir, a.cpv)
- try:
- os.makedirs(vdb_pkg_dir)
- except os.error:
- pass
-
- metadata = installed[cpv].copy()
- eapi = metadata.pop("EAPI", 0)
- lic = metadata.pop("LICENSE", "")
- properties = metadata.pop("PROPERTIES", "")
- slot = metadata.pop("SLOT", 0)
- keywords = metadata.pop("KEYWORDS", "~x86")
- iuse = metadata.pop("IUSE", "")
- use = metadata.pop("USE", "")
- depend = metadata.pop("DEPEND", "")
- rdepend = metadata.pop("RDEPEND", None)
- pdepend = metadata.pop("PDEPEND", None)
- required_use = metadata.pop("REQUIRED_USE", None)
-
- if metadata:
- raise ValueError("metadata of installed '%s' contains unknown keys: %s" % (cpv, metadata.keys()))
-
- def write_key(key, value):
- f = open(os.path.join(vdb_pkg_dir, key), "w")
- f.write(str(value) + "\n")
- f.close()
-
- write_key("EAPI", eapi)
- write_key("LICENSE", lic)
- write_key("PROPERTIES", properties)
- write_key("SLOT", slot)
- write_key("LICENSE", lic)
- write_key("PROPERTIES", properties)
- write_key("repository", repo)
- write_key("KEYWORDS", keywords)
- write_key("IUSE", iuse)
- write_key("USE", use)
- write_key("DEPEND", depend)
- if rdepend is not None:
- write_key("RDEPEND", rdepend)
- if pdepend is not None:
- write_key("PDEPEND", pdepend)
- if required_use is not None:
- write_key("REQUIRED_USE", required_use)
-
- def _create_profile(self, ebuilds, installed, profile, repo_configs, user_config, sets):
-
- for repo in self.repo_dirs:
- repo_dir = self._get_repo_dir(repo)
- profile_dir = os.path.join(self._get_repo_dir(repo), "profiles")
-
- #Create $REPO/profiles/categories
- categories = set()
- for cpv in ebuilds:
- ebuilds_repo = Atom("="+cpv, allow_repo=True).repo
- if ebuilds_repo is None:
- ebuilds_repo = "test_repo"
- if ebuilds_repo == repo:
- categories.add(catsplit(cpv)[0])
-
- categories_file = os.path.join(profile_dir, "categories")
- f = open(categories_file, "w")
- for cat in categories:
- f.write(cat + "\n")
- f.close()
-
- #Create $REPO/profiles/license_groups
- license_file = os.path.join(profile_dir, "license_groups")
- f = open(license_file, "w")
- f.write("EULA TEST\n")
- f.close()
-
- repo_config = repo_configs.get(repo)
- if repo_config:
- for config_file, lines in repo_config.items():
- if config_file not in self.config_files:
- raise ValueError("Unknown config file: '%s'" % config_file)
-
- file_name = os.path.join(profile_dir, config_file)
- f = open(file_name, "w")
- for line in lines:
- f.write("%s\n" % line)
- f.close()
-
- #Create $profile_dir/eclass (we fail to digest the ebuilds if it's not there)
- os.makedirs(os.path.join(repo_dir, "eclass"))
-
- if repo == "test_repo":
- #Create a minimal profile in /usr/portage
- sub_profile_dir = os.path.join(profile_dir, "default", "linux", "x86", "test_profile")
- os.makedirs(sub_profile_dir)
-
- eapi_file = os.path.join(sub_profile_dir, "eapi")
- f = open(eapi_file, "w")
- f.write("0\n")
- f.close()
-
- make_defaults_file = os.path.join(sub_profile_dir, "make.defaults")
- f = open(make_defaults_file, "w")
- f.write("ARCH=\"x86\"\n")
- f.write("ACCEPT_KEYWORDS=\"x86\"\n")
- f.close()
-
- use_force_file = os.path.join(sub_profile_dir, "use.force")
- f = open(use_force_file, "w")
- f.write("x86\n")
- f.close()
-
- if profile:
- for config_file, lines in profile.items():
- if config_file not in self.config_files:
- raise ValueError("Unknown config file: '%s'" % config_file)
-
- file_name = os.path.join(sub_profile_dir, config_file)
- f = open(file_name, "w")
- for line in lines:
- f.write("%s\n" % line)
- f.close()
-
- #Create profile symlink
- os.makedirs(os.path.join(self.eroot, "etc"))
- os.symlink(sub_profile_dir, os.path.join(self.eroot, "etc", "make.profile"))
-
- user_config_dir = os.path.join(self.eroot, "etc", "portage")
-
- try:
- os.makedirs(user_config_dir)
- except os.error:
- pass
-
- repos_conf_file = os.path.join(user_config_dir, "repos.conf")
- f = open(repos_conf_file, "w")
- priority = 0
- for repo in sorted(self.repo_dirs.keys()):
- f.write("[%s]\n" % repo)
- f.write("LOCATION=%s\n" % self.repo_dirs[repo])
- if repo == "test_repo":
- f.write("PRIORITY=%s\n" % -1000)
- else:
- f.write("PRIORITY=%s\n" % priority)
- priority += 1
- f.close()
-
- for config_file, lines in user_config.items():
- if config_file not in self.config_files:
- raise ValueError("Unknown config file: '%s'" % config_file)
-
- file_name = os.path.join(user_config_dir, config_file)
- f = open(file_name, "w")
- for line in lines:
- f.write("%s\n" % line)
- f.close()
-
- #Create /usr/share/portage/config/sets/portage.conf
- default_sets_conf_dir = os.path.join(self.eroot, "usr/share/portage/config/sets")
-
- try:
- os.makedirs(default_sets_conf_dir)
- except os.error:
- pass
-
- provided_sets_portage_conf = \
- os.path.join(PORTAGE_BASE_PATH, "cnf/sets/portage.conf")
- os.symlink(provided_sets_portage_conf, os.path.join(default_sets_conf_dir, "portage.conf"))
-
- set_config_dir = os.path.join(user_config_dir, "sets")
-
- try:
- os.makedirs(set_config_dir)
- except os.error:
- pass
-
- for sets_file, lines in sets.items():
- file_name = os.path.join(set_config_dir, sets_file)
- f = open(file_name, "w")
- for line in lines:
- f.write("%s\n" % line)
- f.close()
-
- user_config_dir = os.path.join(self.eroot, "etc", "portage")
-
- try:
- os.makedirs(user_config_dir)
- except os.error:
- pass
-
- for config_file, lines in user_config.items():
- if config_file not in self.config_files:
- raise ValueError("Unknown config file: '%s'" % config_file)
-
- file_name = os.path.join(user_config_dir, config_file)
- f = open(file_name, "w")
- for line in lines:
- f.write("%s\n" % line)
- f.close()
-
- def _create_world(self, world):
- #Create /var/lib/portage/world
- var_lib_portage = os.path.join(self.eroot, "var", "lib", "portage")
- os.makedirs(var_lib_portage)
-
- world_file = os.path.join(var_lib_portage, "world")
-
- f = open(world_file, "w")
- for atom in world:
- f.write("%s\n" % atom)
- f.close()
-
- def _load_config(self):
- portdir_overlay = []
- for repo_name in sorted(self.repo_dirs):
- path = self.repo_dirs[repo_name]
- if path != self.portdir:
- portdir_overlay.append(path)
-
- env = {
- "ACCEPT_KEYWORDS": "x86",
- "PORTDIR": self.portdir,
- "PORTDIR_OVERLAY": " ".join(portdir_overlay),
- 'PORTAGE_TMPDIR' : os.path.join(self.eroot, 'var/tmp'),
- }
-
- # Pass along PORTAGE_USERNAME and PORTAGE_GRPNAME since they
- # need to be inherited by ebuild subprocesses.
- if 'PORTAGE_USERNAME' in os.environ:
- env['PORTAGE_USERNAME'] = os.environ['PORTAGE_USERNAME']
- if 'PORTAGE_GRPNAME' in os.environ:
- env['PORTAGE_GRPNAME'] = os.environ['PORTAGE_GRPNAME']
-
- settings = config(_eprefix=self.eprefix, env=env)
- settings.lock()
-
- trees = {
- self.root: {
- "vartree": vartree(settings=settings),
- "porttree": portagetree(self.root, settings=settings),
- "bintree": binarytree(self.root,
- os.path.join(self.eroot, "usr/portage/packages"),
- settings=settings)
- }
- }
-
- for root, root_trees in trees.items():
- settings = root_trees["vartree"].settings
- settings._init_dirs()
- setconfig = load_default_config(settings, root_trees)
- root_trees["root_config"] = RootConfig(settings, root_trees, setconfig)
-
- return settings, trees
-
- def run(self, atoms, options={}, action=None):
- options = options.copy()
- options["--pretend"] = True
- if self.debug:
- options["--debug"] = True
-
- global_noiselimit = portage.util.noiselimit
- global_emergelog_disable = _emerge.emergelog._disable
- try:
-
- if not self.debug:
- portage.util.noiselimit = -2
- _emerge.emergelog._disable = True
-
- if options.get("--depclean"):
- rval, cleanlist, ordered, req_pkg_count = \
- calc_depclean(self.settings, self.trees, None,
- options, "depclean", InternalPackageSet(initial_atoms=atoms, allow_wildcard=True), None)
- result = ResolverPlaygroundDepcleanResult( \
- atoms, rval, cleanlist, ordered, req_pkg_count)
- else:
- params = create_depgraph_params(options, action)
- success, depgraph, favorites = backtrack_depgraph(
- self.settings, self.trees, options, params, action, atoms, None)
- depgraph._show_merge_list()
- depgraph.display_problems()
- result = ResolverPlaygroundResult(atoms, success, depgraph, favorites)
- finally:
- portage.util.noiselimit = global_noiselimit
- _emerge.emergelog._disable = global_emergelog_disable
-
- return result
-
- def run_TestCase(self, test_case):
- if not isinstance(test_case, ResolverPlaygroundTestCase):
- raise TypeError("ResolverPlayground needs a ResolverPlaygroundTestCase")
- for atoms in test_case.requests:
- result = self.run(atoms, test_case.options, test_case.action)
- if not test_case.compare_with_result(result):
- return
-
- def cleanup(self):
- portdb = self.trees[self.root]["porttree"].dbapi
- portdb.close_caches()
- portage.dbapi.porttree.portdbapi.portdbapi_instances.remove(portdb)
- if self.debug:
- print("\nEROOT=%s" % self.eroot)
- else:
- shutil.rmtree(self.eroot)
-
-class ResolverPlaygroundTestCase(object):
-
- def __init__(self, request, **kwargs):
- self.all_permutations = kwargs.pop("all_permutations", False)
- self.ignore_mergelist_order = kwargs.pop("ignore_mergelist_order", False)
- self.ambiguous_merge_order = kwargs.pop("ambiguous_merge_order", False)
- self.check_repo_names = kwargs.pop("check_repo_names", False)
- self.merge_order_assertions = kwargs.pop("merge_order_assertions", False)
-
- if self.all_permutations:
- self.requests = list(permutations(request))
- else:
- self.requests = [request]
-
- self.options = kwargs.pop("options", {})
- self.action = kwargs.pop("action", None)
- self.test_success = True
- self.fail_msg = None
- self._checks = kwargs.copy()
-
- def compare_with_result(self, result):
- checks = dict.fromkeys(result.checks)
- for key, value in self._checks.items():
- if not key in checks:
- raise KeyError("Not an available check: '%s'" % key)
- checks[key] = value
-
- fail_msgs = []
- for key, value in checks.items():
- got = getattr(result, key)
- expected = value
-
- if key in result.optional_checks and expected is None:
- continue
-
- if key == "mergelist":
- if not self.check_repo_names:
- #Strip repo names if we don't check them
- if got:
- new_got = []
- for cpv in got:
- if cpv[:1] == "!":
- new_got.append(cpv)
- continue
- a = Atom("="+cpv, allow_repo=True)
- new_got.append(a.cpv)
- got = new_got
- if expected:
- new_expected = []
- for obj in expected:
- if isinstance(obj, basestring):
- if obj[:1] == "!":
- new_expected.append(obj)
- continue
- a = Atom("="+obj, allow_repo=True)
- new_expected.append(a.cpv)
- continue
- new_expected.append(set())
- for cpv in obj:
- if cpv[:1] != "!":
- cpv = Atom("="+cpv, allow_repo=True).cpv
- new_expected[-1].add(cpv)
- expected = new_expected
- if self.ignore_mergelist_order and got is not None:
- got = set(got)
- expected = set(expected)
-
- if self.ambiguous_merge_order and got:
- expected_stack = list(reversed(expected))
- got_stack = list(reversed(got))
- new_expected = []
- match = True
- while got_stack and expected_stack:
- got_token = got_stack.pop()
- expected_obj = expected_stack.pop()
- if isinstance(expected_obj, basestring):
- new_expected.append(expected_obj)
- if got_token == expected_obj:
- continue
- # result doesn't match, so stop early
- match = False
- break
- expected_obj = set(expected_obj)
- try:
- expected_obj.remove(got_token)
- except KeyError:
- # result doesn't match, so stop early
- match = False
- break
- new_expected.append(got_token)
- while got_stack and expected_obj:
- got_token = got_stack.pop()
- try:
- expected_obj.remove(got_token)
- except KeyError:
- match = False
- break
- new_expected.append(got_token)
- if not match:
- # result doesn't match, so stop early
- break
- if expected_obj:
- # result does not match, so stop early
- match = False
- new_expected.append(tuple(expected_obj))
- break
- if expected_stack:
- # result does not match, add leftovers to new_expected
- match = False
- expected_stack.reverse()
- new_expected.extend(expected_stack)
- expected = new_expected
-
- if match and self.merge_order_assertions:
- for node1, node2 in self.merge_order_assertions:
- if not (got.index(node1) < got.index(node2)):
- fail_msgs.append("atoms: (" + \
- ", ".join(result.atoms) + "), key: " + \
- ("merge_order_assertions, expected: %s" % \
- str((node1, node2))) + \
- ", got: " + str(got))
-
- elif key in ("unstable_keywords", "needed_p_mask_changes") and expected is not None:
- expected = set(expected)
-
- if got != expected:
- fail_msgs.append("atoms: (" + ", ".join(result.atoms) + "), key: " + \
- key + ", expected: " + str(expected) + ", got: " + str(got))
- if fail_msgs:
- self.test_success = False
- self.fail_msg = "\n".join(fail_msgs)
- return False
- return True
-
-class ResolverPlaygroundResult(object):
-
- checks = (
- "success", "mergelist", "use_changes", "license_changes", "unstable_keywords", "slot_collision_solutions",
- "circular_dependency_solutions", "needed_p_mask_changes",
- )
- optional_checks = (
- )
-
- def __init__(self, atoms, success, mydepgraph, favorites):
- self.atoms = atoms
- self.success = success
- self.depgraph = mydepgraph
- self.favorites = favorites
- self.mergelist = None
- self.use_changes = None
- self.license_changes = None
- self.unstable_keywords = None
- self.needed_p_mask_changes = None
- self.slot_collision_solutions = None
- self.circular_dependency_solutions = None
-
- if self.depgraph._dynamic_config._serialized_tasks_cache is not None:
- self.mergelist = []
- for x in self.depgraph._dynamic_config._serialized_tasks_cache:
- if isinstance(x, Blocker):
- self.mergelist.append(x.atom)
- else:
- repo_str = ""
- if x.metadata["repository"] != "test_repo":
- repo_str = _repo_separator + x.metadata["repository"]
- self.mergelist.append(x.cpv + repo_str)
-
- if self.depgraph._dynamic_config._needed_use_config_changes:
- self.use_changes = {}
- for pkg, needed_use_config_changes in \
- self.depgraph._dynamic_config._needed_use_config_changes.items():
- new_use, changes = needed_use_config_changes
- self.use_changes[pkg.cpv] = changes
-
- if self.depgraph._dynamic_config._needed_unstable_keywords:
- self.unstable_keywords = set()
- for pkg in self.depgraph._dynamic_config._needed_unstable_keywords:
- self.unstable_keywords.add(pkg.cpv)
-
- if self.depgraph._dynamic_config._needed_p_mask_changes:
- self.needed_p_mask_changes = set()
- for pkg in self.depgraph._dynamic_config._needed_p_mask_changes:
- self.needed_p_mask_changes.add(pkg.cpv)
-
- if self.depgraph._dynamic_config._needed_license_changes:
- self.license_changes = {}
- for pkg, missing_licenses in self.depgraph._dynamic_config._needed_license_changes.items():
- self.license_changes[pkg.cpv] = missing_licenses
-
- if self.depgraph._dynamic_config._slot_conflict_handler is not None:
- self.slot_collision_solutions = []
- handler = self.depgraph._dynamic_config._slot_conflict_handler
-
- for change in handler.changes:
- new_change = {}
- for pkg in change:
- new_change[pkg.cpv] = change[pkg]
- self.slot_collision_solutions.append(new_change)
-
- if self.depgraph._dynamic_config._circular_dependency_handler is not None:
- handler = self.depgraph._dynamic_config._circular_dependency_handler
- sol = handler.solutions
- self.circular_dependency_solutions = dict( zip([x.cpv for x in sol.keys()], sol.values()) )
-
-class ResolverPlaygroundDepcleanResult(object):
-
- checks = (
- "success", "cleanlist", "ordered", "req_pkg_count",
- )
- optional_checks = (
- "ordered", "req_pkg_count",
- )
-
- def __init__(self, atoms, rval, cleanlist, ordered, req_pkg_count):
- self.atoms = atoms
- self.success = rval == 0
- self.cleanlist = cleanlist
- self.ordered = ordered
- self.req_pkg_count = req_pkg_count
diff --git a/portage_with_autodep/pym/portage/tests/resolver/__init__.py b/portage_with_autodep/pym/portage/tests/resolver/__init__.py
deleted file mode 100644
index 21a391a..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/__init__.py
+++ /dev/null
@@ -1,2 +0,0 @@
-# Copyright 2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
diff --git a/portage_with_autodep/pym/portage/tests/resolver/__test__ b/portage_with_autodep/pym/portage/tests/resolver/__test__
deleted file mode 100644
index e69de29..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/__test__
+++ /dev/null
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_autounmask.py b/portage_with_autodep/pym/portage/tests/resolver/test_autounmask.py
deleted file mode 100644
index 54c435f..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_autounmask.py
+++ /dev/null
@@ -1,326 +0,0 @@
-# Copyright 2010-2011 Gentoo Foundation
-# 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 AutounmaskTestCase(TestCase):
-
- def testAutounmask(self):
-
- ebuilds = {
- #ebuilds to test use changes
- "dev-libs/A-1": { "SLOT": 1, "DEPEND": "dev-libs/B[foo]", "EAPI": 2},
- "dev-libs/A-2": { "SLOT": 2, "DEPEND": "dev-libs/B[bar]", "EAPI": 2},
- "dev-libs/B-1": { "DEPEND": "foo? ( dev-libs/C ) bar? ( dev-libs/D )", "IUSE": "foo bar"},
- "dev-libs/C-1": {},
- "dev-libs/D-1": {},
-
- #ebuilds to test if we allow changing of masked or forced flags
- "dev-libs/E-1": { "SLOT": 1, "DEPEND": "dev-libs/F[masked-flag]", "EAPI": 2},
- "dev-libs/E-2": { "SLOT": 2, "DEPEND": "dev-libs/G[-forced-flag]", "EAPI": 2},
- "dev-libs/F-1": { "IUSE": "masked-flag"},
- "dev-libs/G-1": { "IUSE": "forced-flag"},
-
- #ebuilds to test keyword changes
- "app-misc/Z-1": { "KEYWORDS": "~x86", "DEPEND": "app-misc/Y" },
- "app-misc/Y-1": { "KEYWORDS": "~x86" },
- "app-misc/W-1": {},
- "app-misc/W-2": { "KEYWORDS": "~x86" },
- "app-misc/V-1": { "KEYWORDS": "~x86", "DEPEND": ">=app-misc/W-2"},
-
- #ebuilds to test mask and keyword changes
- "app-text/A-1": {},
- "app-text/B-1": { "KEYWORDS": "~x86" },
- "app-text/C-1": { "KEYWORDS": "" },
- "app-text/D-1": { "KEYWORDS": "~x86" },
- "app-text/D-2": { "KEYWORDS": "" },
-
- #ebuilds for mixed test for || dep handling
- "sci-libs/K-1": { "DEPEND": " || ( sci-libs/L[bar] || ( sci-libs/M sci-libs/P ) )", "EAPI": 2},
- "sci-libs/K-2": { "DEPEND": " || ( sci-libs/L[bar] || ( sci-libs/P sci-libs/M ) )", "EAPI": 2},
- "sci-libs/K-3": { "DEPEND": " || ( sci-libs/M || ( sci-libs/L[bar] sci-libs/P ) )", "EAPI": 2},
- "sci-libs/K-4": { "DEPEND": " || ( sci-libs/M || ( sci-libs/P sci-libs/L[bar] ) )", "EAPI": 2},
- "sci-libs/K-5": { "DEPEND": " || ( sci-libs/P || ( sci-libs/L[bar] sci-libs/M ) )", "EAPI": 2},
- "sci-libs/K-6": { "DEPEND": " || ( sci-libs/P || ( sci-libs/M sci-libs/L[bar] ) )", "EAPI": 2},
- "sci-libs/K-7": { "DEPEND": " || ( sci-libs/M sci-libs/L[bar] )", "EAPI": 2},
- "sci-libs/K-8": { "DEPEND": " || ( sci-libs/L[bar] sci-libs/M )", "EAPI": 2},
-
- "sci-libs/L-1": { "IUSE": "bar" },
- "sci-libs/M-1": { "KEYWORDS": "~x86" },
- "sci-libs/P-1": { },
-
- #ebuilds to test these nice "required by cat/pkg[foo]" messages
- "dev-util/Q-1": { "DEPEND": "foo? ( dev-util/R[bar] )", "IUSE": "+foo", "EAPI": 2 },
- "dev-util/Q-2": { "RDEPEND": "!foo? ( dev-util/R[bar] )", "IUSE": "foo", "EAPI": 2 },
- "dev-util/R-1": { "IUSE": "bar" },
-
- #ebuilds to test interaction with REQUIRED_USE
- "app-portage/A-1": { "DEPEND": "app-portage/B[foo]", "EAPI": 2 },
- "app-portage/A-2": { "DEPEND": "app-portage/B[foo=]", "IUSE": "+foo", "REQUIRED_USE": "foo", "EAPI": "4" },
-
- "app-portage/B-1": { "IUSE": "foo +bar", "REQUIRED_USE": "^^ ( foo bar )", "EAPI": "4" },
- "app-portage/C-1": { "IUSE": "+foo +bar", "REQUIRED_USE": "^^ ( foo bar )", "EAPI": "4" },
- }
-
- test_cases = (
- #Test USE changes.
- #The simple case.
-
- ResolverPlaygroundTestCase(
- ["dev-libs/A:1"],
- options = {"--autounmask": "n"},
- success = False),
- ResolverPlaygroundTestCase(
- ["dev-libs/A:1"],
- options = {"--autounmask": True},
- success = False,
- mergelist = ["dev-libs/C-1", "dev-libs/B-1", "dev-libs/A-1"],
- use_changes = { "dev-libs/B-1": {"foo": True} } ),
-
- #Make sure we restart if needed.
- ResolverPlaygroundTestCase(
- ["dev-libs/A:1", "dev-libs/B"],
- options = {"--autounmask": True},
- all_permutations = True,
- success = False,
- mergelist = ["dev-libs/C-1", "dev-libs/B-1", "dev-libs/A-1"],
- use_changes = { "dev-libs/B-1": {"foo": True} } ),
- ResolverPlaygroundTestCase(
- ["dev-libs/A:1", "dev-libs/A:2", "dev-libs/B"],
- options = {"--autounmask": True},
- all_permutations = True,
- success = False,
- mergelist = ["dev-libs/D-1", "dev-libs/C-1", "dev-libs/B-1", "dev-libs/A-1", "dev-libs/A-2"],
- ignore_mergelist_order = True,
- use_changes = { "dev-libs/B-1": {"foo": True, "bar": True} } ),
-
- #Test keywording.
- #The simple case.
-
- ResolverPlaygroundTestCase(
- ["app-misc/Z"],
- options = {"--autounmask": "n"},
- success = False),
- ResolverPlaygroundTestCase(
- ["app-misc/Z"],
- options = {"--autounmask": True},
- success = False,
- mergelist = ["app-misc/Y-1", "app-misc/Z-1"],
- unstable_keywords = ["app-misc/Y-1", "app-misc/Z-1"]),
-
- #Make sure that the backtracking for slot conflicts handles our mess.
-
- ResolverPlaygroundTestCase(
- ["=app-misc/V-1", "app-misc/W"],
- options = {"--autounmask": True},
- all_permutations = True,
- success = False,
- mergelist = ["app-misc/W-2", "app-misc/V-1"],
- unstable_keywords = ["app-misc/W-2", "app-misc/V-1"]),
-
- #Mixed testing
- #Make sure we don't change use for something in a || dep if there is another choice
- #that needs no change.
-
- ResolverPlaygroundTestCase(
- ["=sci-libs/K-1"],
- options = {"--autounmask": True},
- success = True,
- mergelist = ["sci-libs/P-1", "sci-libs/K-1"]),
- ResolverPlaygroundTestCase(
- ["=sci-libs/K-2"],
- options = {"--autounmask": True},
- success = True,
- mergelist = ["sci-libs/P-1", "sci-libs/K-2"]),
- ResolverPlaygroundTestCase(
- ["=sci-libs/K-3"],
- options = {"--autounmask": True},
- success = True,
- mergelist = ["sci-libs/P-1", "sci-libs/K-3"]),
- ResolverPlaygroundTestCase(
- ["=sci-libs/K-4"],
- options = {"--autounmask": True},
- success = True,
- mergelist = ["sci-libs/P-1", "sci-libs/K-4"]),
- ResolverPlaygroundTestCase(
- ["=sci-libs/K-5"],
- options = {"--autounmask": True},
- success = True,
- mergelist = ["sci-libs/P-1", "sci-libs/K-5"]),
- ResolverPlaygroundTestCase(
- ["=sci-libs/K-6"],
- options = {"--autounmask": True},
- success = True,
- mergelist = ["sci-libs/P-1", "sci-libs/K-6"]),
-
- #Make sure we prefer use changes over keyword changes.
- ResolverPlaygroundTestCase(
- ["=sci-libs/K-7"],
- options = {"--autounmask": True},
- success = False,
- mergelist = ["sci-libs/L-1", "sci-libs/K-7"],
- use_changes = { "sci-libs/L-1": { "bar": True } }),
- ResolverPlaygroundTestCase(
- ["=sci-libs/K-8"],
- options = {"--autounmask": True},
- success = False,
- mergelist = ["sci-libs/L-1", "sci-libs/K-8"],
- use_changes = { "sci-libs/L-1": { "bar": True } }),
-
- #Test these nice "required by cat/pkg[foo]" messages.
- ResolverPlaygroundTestCase(
- ["=dev-util/Q-1"],
- options = {"--autounmask": True},
- success = False,
- mergelist = ["dev-util/R-1", "dev-util/Q-1"],
- use_changes = { "dev-util/R-1": { "bar": True } }),
- ResolverPlaygroundTestCase(
- ["=dev-util/Q-2"],
- options = {"--autounmask": True},
- success = False,
- mergelist = ["dev-util/R-1", "dev-util/Q-2"],
- use_changes = { "dev-util/R-1": { "bar": True } }),
-
- #Test interaction with REQUIRED_USE.
- ResolverPlaygroundTestCase(
- ["=app-portage/A-1"],
- options = { "--autounmask": True },
- use_changes = None,
- success = False),
- ResolverPlaygroundTestCase(
- ["=app-portage/A-2"],
- options = { "--autounmask": True },
- use_changes = None,
- success = False),
- ResolverPlaygroundTestCase(
- ["=app-portage/C-1"],
- options = { "--autounmask": True },
- use_changes = None,
- success = False),
-
- #Make sure we don't change masked/forced flags.
- ResolverPlaygroundTestCase(
- ["dev-libs/E:1"],
- options = {"--autounmask": True},
- use_changes = None,
- success = False),
- ResolverPlaygroundTestCase(
- ["dev-libs/E:2"],
- options = {"--autounmask": True},
- use_changes = None,
- success = False),
-
- #Test mask and keyword changes.
- ResolverPlaygroundTestCase(
- ["app-text/A"],
- options = {"--autounmask": True},
- success = False,
- mergelist = ["app-text/A-1"],
- needed_p_mask_changes = ["app-text/A-1"]),
- ResolverPlaygroundTestCase(
- ["app-text/B"],
- options = {"--autounmask": True},
- success = False,
- mergelist = ["app-text/B-1"],
- unstable_keywords = ["app-text/B-1"],
- needed_p_mask_changes = ["app-text/B-1"]),
- ResolverPlaygroundTestCase(
- ["app-text/C"],
- options = {"--autounmask": True},
- success = False,
- mergelist = ["app-text/C-1"],
- unstable_keywords = ["app-text/C-1"],
- needed_p_mask_changes = ["app-text/C-1"]),
- #Make sure unstable keyword is preferred over missing keyword
- ResolverPlaygroundTestCase(
- ["app-text/D"],
- options = {"--autounmask": True},
- success = False,
- mergelist = ["app-text/D-1"],
- unstable_keywords = ["app-text/D-1"]),
- #Test missing keyword
- ResolverPlaygroundTestCase(
- ["=app-text/D-2"],
- options = {"--autounmask": True},
- success = False,
- mergelist = ["app-text/D-2"],
- unstable_keywords = ["app-text/D-2"])
- )
-
- profile = {
- "use.mask":
- (
- "masked-flag",
- ),
- "use.force":
- (
- "forced-flag",
- ),
- "package.mask":
- (
- "app-text/A",
- "app-text/B",
- "app-text/C",
- ),
- }
-
- playground = ResolverPlayground(ebuilds=ebuilds, profile=profile)
- 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.cleanup()
-
- def testAutounmaskForLicenses(self):
-
- ebuilds = {
- "dev-libs/A-1": { "LICENSE": "TEST" },
- "dev-libs/B-1": { "LICENSE": "TEST", "IUSE": "foo", "KEYWORDS": "~x86"},
- "dev-libs/C-1": { "DEPEND": "dev-libs/B[foo]", "EAPI": 2 },
-
- "dev-libs/D-1": { "DEPEND": "dev-libs/E dev-libs/F", "LICENSE": "TEST" },
- "dev-libs/E-1": { "LICENSE": "TEST" },
- "dev-libs/E-2": { "LICENSE": "TEST" },
- "dev-libs/F-1": { "DEPEND": "=dev-libs/E-1", "LICENSE": "TEST" },
- }
-
- test_cases = (
- ResolverPlaygroundTestCase(
- ["=dev-libs/A-1"],
- options = {"--autounmask": 'n'},
- success = False),
- ResolverPlaygroundTestCase(
- ["=dev-libs/A-1"],
- options = {"--autounmask": True},
- success = False,
- mergelist = ["dev-libs/A-1"],
- license_changes = { "dev-libs/A-1": set(["TEST"]) }),
-
- #Test license+keyword+use change at once.
- ResolverPlaygroundTestCase(
- ["=dev-libs/C-1"],
- options = {"--autounmask": True},
- success = False,
- mergelist = ["dev-libs/B-1", "dev-libs/C-1"],
- license_changes = { "dev-libs/B-1": set(["TEST"]) },
- unstable_keywords = ["dev-libs/B-1"],
- use_changes = { "dev-libs/B-1": { "foo": True } }),
-
- #Test license with backtracking.
- ResolverPlaygroundTestCase(
- ["=dev-libs/D-1"],
- options = {"--autounmask": True},
- success = False,
- mergelist = ["dev-libs/E-1", "dev-libs/F-1", "dev-libs/D-1"],
- license_changes = { "dev-libs/D-1": set(["TEST"]), "dev-libs/E-1": set(["TEST"]), "dev-libs/E-2": set(["TEST"]), "dev-libs/F-1": set(["TEST"]) }),
- )
-
- playground = ResolverPlayground(ebuilds=ebuilds)
- 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.cleanup()
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_backtracking.py b/portage_with_autodep/pym/portage/tests/resolver/test_backtracking.py
deleted file mode 100644
index fc49306..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_backtracking.py
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright 2010 Gentoo Foundation
-# 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 BacktrackingTestCase(TestCase):
-
- def testBacktracking(self):
- ebuilds = {
- "dev-libs/A-1": {},
- "dev-libs/A-2": {},
- "dev-libs/B-1": { "DEPEND": "dev-libs/A" },
- }
-
- test_cases = (
- ResolverPlaygroundTestCase(
- ["=dev-libs/A-1", "dev-libs/B"],
- all_permutations = True,
- mergelist = ["dev-libs/A-1", "dev-libs/B-1"],
- success = True),
- )
-
- playground = ResolverPlayground(ebuilds=ebuilds)
-
- 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.cleanup()
-
-
- def testHittingTheBacktrackLimit(self):
- ebuilds = {
- "dev-libs/A-1": {},
- "dev-libs/A-2": {},
- "dev-libs/B-1": {},
- "dev-libs/B-2": {},
- "dev-libs/C-1": { "DEPEND": "dev-libs/A dev-libs/B" },
- "dev-libs/D-1": { "DEPEND": "=dev-libs/A-1 =dev-libs/B-1" },
- }
-
- test_cases = (
- ResolverPlaygroundTestCase(
- ["dev-libs/C", "dev-libs/D"],
- all_permutations = True,
- mergelist = ["dev-libs/A-1", "dev-libs/B-1", "dev-libs/C-1", "dev-libs/D-1"],
- ignore_mergelist_order = True,
- success = True),
- #This one hits the backtrack limit. Be aware that this depends on the argument order.
- ResolverPlaygroundTestCase(
- ["dev-libs/D", "dev-libs/C"],
- options = { "--backtrack": 1 },
- mergelist = ["dev-libs/A-1", "dev-libs/B-1", "dev-libs/A-2", "dev-libs/B-2", "dev-libs/C-1", "dev-libs/D-1"],
- ignore_mergelist_order = True,
- slot_collision_solutions = [],
- success = False),
- )
-
- playground = ResolverPlayground(ebuilds=ebuilds)
-
- 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.cleanup()
-
-
- def testBacktrackingGoodVersionFirst(self):
- """
- When backtracking due to slot conflicts, we masked the version that has been pulled
- in first. This is not always a good idea. Mask the highest version instead.
- """
-
- ebuilds = {
- "dev-libs/A-1": { "DEPEND": "=dev-libs/C-1 dev-libs/B" },
- "dev-libs/B-1": { "DEPEND": "=dev-libs/C-1" },
- "dev-libs/B-2": { "DEPEND": "=dev-libs/C-2" },
- "dev-libs/C-1": { },
- "dev-libs/C-2": { },
- }
-
- test_cases = (
- ResolverPlaygroundTestCase(
- ["dev-libs/A"],
- mergelist = ["dev-libs/C-1", "dev-libs/B-1", "dev-libs/A-1", ],
- success = True),
- )
-
- playground = ResolverPlayground(ebuilds=ebuilds)
-
- 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.cleanup()
-
- def testBacktrackWithoutUpdates(self):
- """
- If --update is not given we might have to mask the old installed version later.
- """
-
- ebuilds = {
- "dev-libs/A-1": { "DEPEND": "dev-libs/Z" },
- "dev-libs/B-1": { "DEPEND": ">=dev-libs/Z-2" },
- "dev-libs/Z-1": { },
- "dev-libs/Z-2": { },
- }
-
- installed = {
- "dev-libs/Z-1": { "USE": "" },
- }
-
- test_cases = (
- ResolverPlaygroundTestCase(
- ["dev-libs/B", "dev-libs/A"],
- all_permutations = True,
- mergelist = ["dev-libs/Z-2", "dev-libs/B-1", "dev-libs/A-1", ],
- ignore_mergelist_order = True,
- success = True),
- )
-
- playground = ResolverPlayground(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.cleanup()
-
- def testBacktrackMissedUpdates(self):
- """
- An update is missed due to a dependency on an older version.
- """
-
- ebuilds = {
- "dev-libs/A-1": { },
- "dev-libs/A-2": { },
- "dev-libs/B-1": { "RDEPEND": "<=dev-libs/A-1" },
- }
-
- installed = {
- "dev-libs/A-1": { "USE": "" },
- "dev-libs/B-1": { "USE": "", "RDEPEND": "<=dev-libs/A-1" },
- }
-
- options = {'--update' : True, '--deep' : True, '--selective' : True}
-
- test_cases = (
- ResolverPlaygroundTestCase(
- ["dev-libs/A", "dev-libs/B"],
- options = options,
- all_permutations = True,
- mergelist = [],
- success = True),
- )
-
- playground = ResolverPlayground(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.cleanup()
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_circular_dependencies.py b/portage_with_autodep/pym/portage/tests/resolver/test_circular_dependencies.py
deleted file mode 100644
index f8331ac..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_circular_dependencies.py
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright 2010-2011 Gentoo Foundation
-# 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 CircularDependencyTestCase(TestCase):
-
- #TODO:
- # use config change by autounmask
- # conflict on parent's parent
- # difference in RDEPEND and DEPEND
- # is there anything else than priority buildtime and runtime?
- # play with use.{mask,force}
- # play with REQUIRED_USE
-
-
- def testCircularDependency(self):
-
- ebuilds = {
- "dev-libs/Z-1": { "DEPEND": "foo? ( !bar? ( dev-libs/Y ) )", "IUSE": "+foo bar", "EAPI": 1 },
- "dev-libs/Z-2": { "DEPEND": "foo? ( dev-libs/Y ) !bar? ( dev-libs/Y )", "IUSE": "+foo bar", "EAPI": 1 },
- "dev-libs/Z-3": { "DEPEND": "foo? ( !bar? ( dev-libs/Y ) ) foo? ( dev-libs/Y ) !bar? ( dev-libs/Y )", "IUSE": "+foo bar", "EAPI": 1 },
- "dev-libs/Y-1": { "DEPEND": "dev-libs/Z" },
- "dev-libs/W-1": { "DEPEND": "dev-libs/Z[foo] dev-libs/Y", "EAPI": 2 },
- "dev-libs/W-2": { "DEPEND": "dev-libs/Z[foo=] dev-libs/Y", "IUSE": "+foo", "EAPI": 2 },
- "dev-libs/W-3": { "DEPEND": "dev-libs/Z[bar] dev-libs/Y", "EAPI": 2 },
-
- "app-misc/A-1": { "DEPEND": "foo? ( =app-misc/B-1 )", "IUSE": "+foo bar", "REQUIRED_USE": "^^ ( foo bar )", "EAPI": "4" },
- "app-misc/A-2": { "DEPEND": "foo? ( =app-misc/B-2 ) bar? ( =app-misc/B-2 )", "IUSE": "+foo bar", "REQUIRED_USE": "^^ ( foo bar )", "EAPI": "4" },
- "app-misc/B-1": { "DEPEND": "=app-misc/A-1" },
- "app-misc/B-2": { "DEPEND": "=app-misc/A-2" },
- }
-
- test_cases = (
- #Simple tests
- ResolverPlaygroundTestCase(
- ["=dev-libs/Z-1"],
- circular_dependency_solutions = { "dev-libs/Y-1": frozenset([frozenset([("foo", False)]), frozenset([("bar", True)])])},
- success = False),
- ResolverPlaygroundTestCase(
- ["=dev-libs/Z-2"],
- circular_dependency_solutions = { "dev-libs/Y-1": frozenset([frozenset([("foo", False), ("bar", True)])])},
- success = False),
- ResolverPlaygroundTestCase(
- ["=dev-libs/Z-3"],
- circular_dependency_solutions = { "dev-libs/Y-1": frozenset([frozenset([("foo", False), ("bar", True)])])},
- success = False),
-
- #Conflict on parent
- ResolverPlaygroundTestCase(
- ["=dev-libs/W-1"],
- circular_dependency_solutions = {},
- success = False),
- ResolverPlaygroundTestCase(
- ["=dev-libs/W-2"],
- circular_dependency_solutions = { "dev-libs/Y-1": frozenset([frozenset([("foo", False), ("bar", True)])])},
- success = False),
-
- #Conflict with autounmask
- ResolverPlaygroundTestCase(
- ["=dev-libs/W-3"],
- circular_dependency_solutions = { "dev-libs/Y-1": frozenset([frozenset([("foo", False)])])},
- use_changes = { "dev-libs/Z-3": {"bar": True}},
- success = False),
-
- #Conflict with REQUIRED_USE
- ResolverPlaygroundTestCase(
- ["=app-misc/B-1"],
- circular_dependency_solutions = { "app-misc/B-1": frozenset([frozenset([("foo", False), ("bar", True)])])},
- success = False),
- ResolverPlaygroundTestCase(
- ["=app-misc/B-2"],
- circular_dependency_solutions = {},
- success = False),
- )
-
- playground = ResolverPlayground(ebuilds=ebuilds)
- 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.cleanup()
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_depclean.py b/portage_with_autodep/pym/portage/tests/resolver/test_depclean.py
deleted file mode 100644
index ba70144..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_depclean.py
+++ /dev/null
@@ -1,285 +0,0 @@
-# Copyright 2010 Gentoo Foundation
-# 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 SimpleDepcleanTestCase(TestCase):
-
- def testSimpleDepclean(self):
- ebuilds = {
- "dev-libs/A-1": {},
- "dev-libs/B-1": {},
- }
- installed = {
- "dev-libs/A-1": {},
- "dev-libs/B-1": {},
- }
-
- world = (
- "dev-libs/A",
- )
-
- test_cases = (
- ResolverPlaygroundTestCase(
- [],
- options = {"--depclean": True},
- success = True,
- cleanlist = ["dev-libs/B-1"]),
- )
-
- playground = ResolverPlayground(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.cleanup()
-
-class DepcleanWithDepsTestCase(TestCase):
-
- def testDepcleanWithDeps(self):
- ebuilds = {
- "dev-libs/A-1": { "RDEPEND": "dev-libs/C" },
- "dev-libs/B-1": { "RDEPEND": "dev-libs/D" },
- "dev-libs/C-1": {},
- "dev-libs/D-1": { "RDEPEND": "dev-libs/E" },
- "dev-libs/E-1": { "RDEPEND": "dev-libs/F" },
- "dev-libs/F-1": {},
- }
- installed = {
- "dev-libs/A-1": { "RDEPEND": "dev-libs/C" },
- "dev-libs/B-1": { "RDEPEND": "dev-libs/D" },
- "dev-libs/C-1": {},
- "dev-libs/D-1": { "RDEPEND": "dev-libs/E" },
- "dev-libs/E-1": { "RDEPEND": "dev-libs/F" },
- "dev-libs/F-1": {},
- }
-
- world = (
- "dev-libs/A",
- )
-
- test_cases = (
- ResolverPlaygroundTestCase(
- [],
- options = {"--depclean": True},
- success = True,
- cleanlist = ["dev-libs/B-1", "dev-libs/D-1",
- "dev-libs/E-1", "dev-libs/F-1"]),
- )
-
- playground = ResolverPlayground(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.cleanup()
-
-
-class DepcleanWithInstalledMaskedTestCase(TestCase):
-
- def testDepcleanWithInstalledMasked(self):
- """
- Test case for bug 332719.
- emerge --declean ignores that B is masked by license and removes C.
- The next emerge -uDN world doesn't take B and installs C again.
- """
- ebuilds = {
- "dev-libs/A-1": { "RDEPEND": "|| ( dev-libs/B dev-libs/C )" },
- "dev-libs/B-1": { "LICENSE": "TEST", "KEYWORDS": "x86" },
- "dev-libs/C-1": { "KEYWORDS": "x86" },
- }
- installed = {
- "dev-libs/A-1": { "RDEPEND": "|| ( dev-libs/B dev-libs/C )" },
- "dev-libs/B-1": { "LICENSE": "TEST", "KEYWORDS": "x86" },
- "dev-libs/C-1": { "KEYWORDS": "x86" },
- }
-
- world = (
- "dev-libs/A",
- )
-
- test_cases = (
- ResolverPlaygroundTestCase(
- [],
- options = {"--depclean": True},
- success = True,
- #cleanlist = ["dev-libs/C-1"]),
- cleanlist = ["dev-libs/B-1"]),
- )
-
- playground = ResolverPlayground(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.cleanup()
-
-class DepcleanInstalledKeywordMaskedSlotTestCase(TestCase):
-
- def testDepcleanInstalledKeywordMaskedSlot(self):
- """
- Verify that depclean removes newer slot
- masked by KEYWORDS (see bug #350285).
- """
- ebuilds = {
- "dev-libs/A-1": { "RDEPEND": "|| ( =dev-libs/B-2.7* =dev-libs/B-2.6* )" },
- "dev-libs/B-2.6": { "SLOT":"2.6", "KEYWORDS": "x86" },
- "dev-libs/B-2.7": { "SLOT":"2.7", "KEYWORDS": "~x86" },
- }
- installed = {
- "dev-libs/A-1": { "EAPI" : "3", "RDEPEND": "|| ( dev-libs/B:2.7 dev-libs/B:2.6 )" },
- "dev-libs/B-2.6": { "SLOT":"2.6", "KEYWORDS": "x86" },
- "dev-libs/B-2.7": { "SLOT":"2.7", "KEYWORDS": "~x86" },
- }
-
- world = (
- "dev-libs/A",
- )
-
- test_cases = (
- ResolverPlaygroundTestCase(
- [],
- options = {"--depclean": True},
- success = True,
- cleanlist = ["dev-libs/B-2.7"]),
- )
-
- playground = ResolverPlayground(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.cleanup()
-
-class DepcleanWithExcludeTestCase(TestCase):
-
- def testDepcleanWithExclude(self):
-
- installed = {
- "dev-libs/A-1": {},
- "dev-libs/B-1": { "RDEPEND": "dev-libs/A" },
- }
-
- test_cases = (
- #Without --exclude.
- ResolverPlaygroundTestCase(
- [],
- options = {"--depclean": True},
- success = True,
- cleanlist = ["dev-libs/B-1", "dev-libs/A-1"]),
- ResolverPlaygroundTestCase(
- ["dev-libs/A"],
- options = {"--depclean": True},
- success = True,
- cleanlist = []),
- ResolverPlaygroundTestCase(
- ["dev-libs/B"],
- options = {"--depclean": True},
- success = True,
- cleanlist = ["dev-libs/B-1"]),
-
- #With --exclude
- ResolverPlaygroundTestCase(
- [],
- options = {"--depclean": True, "--exclude": ["dev-libs/A"]},
- success = True,
- cleanlist = ["dev-libs/B-1"]),
- ResolverPlaygroundTestCase(
- ["dev-libs/B"],
- options = {"--depclean": True, "--exclude": ["dev-libs/B"]},
- success = True,
- cleanlist = []),
- )
-
- playground = ResolverPlayground(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.cleanup()
-
-class DepcleanWithExcludeAndSlotsTestCase(TestCase):
-
- def testDepcleanWithExcludeAndSlots(self):
-
- installed = {
- "dev-libs/Z-1": { "SLOT": 1},
- "dev-libs/Z-2": { "SLOT": 2},
- "dev-libs/Y-1": { "RDEPEND": "=dev-libs/Z-1", "SLOT": 1 },
- "dev-libs/Y-2": { "RDEPEND": "=dev-libs/Z-2", "SLOT": 2 },
- }
-
- world = [ "dev-libs/Y" ]
-
- test_cases = (
- #Without --exclude.
- ResolverPlaygroundTestCase(
- [],
- options = {"--depclean": True},
- success = True,
- cleanlist = ["dev-libs/Y-1", "dev-libs/Z-1"]),
- ResolverPlaygroundTestCase(
- [],
- options = {"--depclean": True, "--exclude": ["dev-libs/Z"]},
- success = True,
- cleanlist = ["dev-libs/Y-1"]),
- ResolverPlaygroundTestCase(
- [],
- options = {"--depclean": True, "--exclude": ["dev-libs/Y"]},
- success = True,
- cleanlist = []),
- )
-
- playground = ResolverPlayground(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.cleanup()
-
-class DepcleanAndWildcardsTestCase(TestCase):
-
- def testDepcleanAndWildcards(self):
-
- installed = {
- "dev-libs/A-1": { "RDEPEND": "dev-libs/B" },
- "dev-libs/B-1": {},
- }
-
- test_cases = (
- ResolverPlaygroundTestCase(
- ["*/*"],
- options = {"--depclean": True},
- success = True,
- cleanlist = ["dev-libs/A-1", "dev-libs/B-1"]),
- ResolverPlaygroundTestCase(
- ["dev-libs/*"],
- options = {"--depclean": True},
- success = True,
- cleanlist = ["dev-libs/A-1", "dev-libs/B-1"]),
- ResolverPlaygroundTestCase(
- ["*/A"],
- options = {"--depclean": True},
- success = True,
- cleanlist = ["dev-libs/A-1"]),
- ResolverPlaygroundTestCase(
- ["*/B"],
- options = {"--depclean": True},
- success = True,
- cleanlist = []),
- )
-
- playground = ResolverPlayground(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.cleanup()
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_depth.py b/portage_with_autodep/pym/portage/tests/resolver/test_depth.py
deleted file mode 100644
index cb1e2dd..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_depth.py
+++ /dev/null
@@ -1,252 +0,0 @@
-# Copyright 2011 Gentoo Foundation
-# 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 ResolverDepthTestCase(TestCase):
-
- def testResolverDepth(self):
-
- ebuilds = {
- "dev-libs/A-1": {"RDEPEND" : "dev-libs/B"},
- "dev-libs/A-2": {"RDEPEND" : "dev-libs/B"},
- "dev-libs/B-1": {"RDEPEND" : "dev-libs/C"},
- "dev-libs/B-2": {"RDEPEND" : "dev-libs/C"},
- "dev-libs/C-1": {},
- "dev-libs/C-2": {},
-
- "virtual/libusb-0" : {"EAPI" :"2", "SLOT" : "0", "RDEPEND" : "|| ( >=dev-libs/libusb-0.1.12-r1:0 dev-libs/libusb-compat >=sys-freebsd/freebsd-lib-8.0[usb] )"},
- "virtual/libusb-1" : {"EAPI" :"2", "SLOT" : "1", "RDEPEND" : ">=dev-libs/libusb-1.0.4:1"},
- "dev-libs/libusb-0.1.13" : {},
- "dev-libs/libusb-1.0.5" : {"SLOT":"1"},
- "dev-libs/libusb-compat-1" : {},
- "sys-freebsd/freebsd-lib-8": {"IUSE" : "+usb"},
-
- "sys-fs/udev-164" : {"EAPI" : "1", "RDEPEND" : "virtual/libusb:0"},
-
- "virtual/jre-1.5.0" : {"SLOT" : "1.5", "RDEPEND" : "|| ( =dev-java/sun-jre-bin-1.5.0* =virtual/jdk-1.5.0* )"},
- "virtual/jre-1.5.0-r1" : {"SLOT" : "1.5", "RDEPEND" : "|| ( =dev-java/sun-jre-bin-1.5.0* =virtual/jdk-1.5.0* )"},
- "virtual/jre-1.6.0" : {"SLOT" : "1.6", "RDEPEND" : "|| ( =dev-java/sun-jre-bin-1.6.0* =virtual/jdk-1.6.0* )"},
- "virtual/jre-1.6.0-r1" : {"SLOT" : "1.6", "RDEPEND" : "|| ( =dev-java/sun-jre-bin-1.6.0* =virtual/jdk-1.6.0* )"},
- "virtual/jdk-1.5.0" : {"SLOT" : "1.5", "RDEPEND" : "|| ( =dev-java/sun-jdk-1.5.0* dev-java/gcj-jdk )"},
- "virtual/jdk-1.5.0-r1" : {"SLOT" : "1.5", "RDEPEND" : "|| ( =dev-java/sun-jdk-1.5.0* dev-java/gcj-jdk )"},
- "virtual/jdk-1.6.0" : {"SLOT" : "1.6", "RDEPEND" : "|| ( =dev-java/icedtea-6* =dev-java/sun-jdk-1.6.0* )"},
- "virtual/jdk-1.6.0-r1" : {"SLOT" : "1.6", "RDEPEND" : "|| ( =dev-java/icedtea-6* =dev-java/sun-jdk-1.6.0* )"},
- "dev-java/gcj-jdk-4.5" : {},
- "dev-java/gcj-jdk-4.5-r1" : {},
- "dev-java/icedtea-6.1" : {},
- "dev-java/icedtea-6.1-r1" : {},
- "dev-java/sun-jdk-1.5" : {"SLOT" : "1.5"},
- "dev-java/sun-jdk-1.6" : {"SLOT" : "1.6"},
- "dev-java/sun-jre-bin-1.5" : {"SLOT" : "1.5"},
- "dev-java/sun-jre-bin-1.6" : {"SLOT" : "1.6"},
-
- "dev-java/ant-core-1.8" : {"DEPEND" : ">=virtual/jdk-1.4"},
- "dev-db/hsqldb-1.8" : {"RDEPEND" : ">=virtual/jre-1.6"},
- }
-
- installed = {
- "dev-libs/A-1": {"RDEPEND" : "dev-libs/B"},
- "dev-libs/B-1": {"RDEPEND" : "dev-libs/C"},
- "dev-libs/C-1": {},
-
- "virtual/jre-1.5.0" : {"SLOT" : "1.5", "RDEPEND" : "|| ( =virtual/jdk-1.5.0* =dev-java/sun-jre-bin-1.5.0* )"},
- "virtual/jre-1.6.0" : {"SLOT" : "1.6", "RDEPEND" : "|| ( =virtual/jdk-1.6.0* =dev-java/sun-jre-bin-1.6.0* )"},
- "virtual/jdk-1.5.0" : {"SLOT" : "1.5", "RDEPEND" : "|| ( =dev-java/sun-jdk-1.5.0* dev-java/gcj-jdk )"},
- "virtual/jdk-1.6.0" : {"SLOT" : "1.6", "RDEPEND" : "|| ( =dev-java/icedtea-6* =dev-java/sun-jdk-1.6.0* )"},
- "dev-java/gcj-jdk-4.5" : {},
- "dev-java/icedtea-6.1" : {},
-
- "virtual/libusb-0" : {"EAPI" :"2", "SLOT" : "0", "RDEPEND" : "|| ( >=dev-libs/libusb-0.1.12-r1:0 dev-libs/libusb-compat >=sys-freebsd/freebsd-lib-8.0[usb] )"},
- }
-
- world = ["dev-libs/A"]
-
- test_cases = (
- ResolverPlaygroundTestCase(
- ["dev-libs/A"],
- options = {"--update": True, "--deep": 0},
- success = True,
- mergelist = ["dev-libs/A-2"]),
-
- ResolverPlaygroundTestCase(
- ["dev-libs/A"],
- options = {"--update": True, "--deep": 1},
- success = True,
- mergelist = ["dev-libs/B-2", "dev-libs/A-2"]),
-
- ResolverPlaygroundTestCase(
- ["dev-libs/A"],
- options = {"--update": True, "--deep": 2},
- success = True,
- mergelist = ["dev-libs/C-2", "dev-libs/B-2", "dev-libs/A-2"]),
-
- ResolverPlaygroundTestCase(
- ["@world"],
- options = {"--update": True, "--deep": True},
- success = True,
- mergelist = ["dev-libs/C-2", "dev-libs/B-2", "dev-libs/A-2"]),
-
- ResolverPlaygroundTestCase(
- ["@world"],
- options = {"--emptytree": True},
- success = True,
- mergelist = ["dev-libs/C-2", "dev-libs/B-2", "dev-libs/A-2"]),
-
- ResolverPlaygroundTestCase(
- ["@world"],
- options = {"--selective": True, "--deep": True},
- success = True,
- mergelist = []),
-
- ResolverPlaygroundTestCase(
- ["dev-libs/A"],
- options = {"--deep": 2},
- success = True,
- mergelist = ["dev-libs/A-2"]),
-
- ResolverPlaygroundTestCase(
- ["virtual/jre"],
- options = {},
- success = True,
- mergelist = ['virtual/jre-1.6.0-r1']),
-
- ResolverPlaygroundTestCase(
- ["virtual/jre"],
- options = {"--deep" : True},
- success = True,
- mergelist = ['virtual/jre-1.6.0-r1']),
-
- # Test bug #141118, where we avoid pulling in
- # redundant deps, satisfying nested virtuals
- # as efficiently as possible.
- ResolverPlaygroundTestCase(
- ["virtual/jre"],
- options = {"--selective" : True, "--deep" : True},
- success = True,
- mergelist = []),
-
- # Test bug #150361, where depgraph._greedy_slots()
- # is triggered by --update with AtomArg.
- ResolverPlaygroundTestCase(
- ["virtual/jre"],
- options = {"--update" : True},
- success = True,
- ambiguous_merge_order = True,
- mergelist = [('virtual/jre-1.6.0-r1', 'virtual/jre-1.5.0-r1')]),
-
- # Recursively traversed virtual dependencies, and their
- # direct dependencies, are considered to have the same
- # depth as direct dependencies.
- ResolverPlaygroundTestCase(
- ["virtual/jre"],
- options = {"--update" : True, "--deep" : 1},
- success = True,
- ambiguous_merge_order = True,
- merge_order_assertions=(('dev-java/icedtea-6.1-r1', 'virtual/jdk-1.6.0-r1'), ('virtual/jdk-1.6.0-r1', 'virtual/jre-1.6.0-r1'),
- ('dev-java/gcj-jdk-4.5-r1', 'virtual/jdk-1.5.0-r1'), ('virtual/jdk-1.5.0-r1', 'virtual/jre-1.5.0-r1')),
- mergelist = [('dev-java/icedtea-6.1-r1', 'dev-java/gcj-jdk-4.5-r1', 'virtual/jdk-1.6.0-r1', 'virtual/jdk-1.5.0-r1', 'virtual/jre-1.6.0-r1', 'virtual/jre-1.5.0-r1')]),
-
- ResolverPlaygroundTestCase(
- ["virtual/jre:1.5"],
- options = {"--update" : True},
- success = True,
- mergelist = ['virtual/jre-1.5.0-r1']),
-
- ResolverPlaygroundTestCase(
- ["virtual/jre:1.6"],
- options = {"--update" : True},
- success = True,
- mergelist = ['virtual/jre-1.6.0-r1']),
-
- # Test that we don't pull in any unnecessary updates
- # when --update is not specified, even though we
- # specified --deep.
- ResolverPlaygroundTestCase(
- ["dev-java/ant-core"],
- options = {"--deep" : True},
- success = True,
- mergelist = ["dev-java/ant-core-1.8"]),
-
- ResolverPlaygroundTestCase(
- ["dev-java/ant-core"],
- options = {"--update" : True},
- success = True,
- mergelist = ["dev-java/ant-core-1.8"]),
-
- # Recursively traversed virtual dependencies, and their
- # direct dependencies, are considered to have the same
- # depth as direct dependencies.
- ResolverPlaygroundTestCase(
- ["dev-java/ant-core"],
- options = {"--update" : True, "--deep" : 1},
- success = True,
- mergelist = ['dev-java/icedtea-6.1-r1', 'virtual/jdk-1.6.0-r1', 'dev-java/ant-core-1.8']),
-
- ResolverPlaygroundTestCase(
- ["dev-db/hsqldb"],
- options = {"--deep" : True},
- success = True,
- mergelist = ["dev-db/hsqldb-1.8"]),
-
- # Don't traverse deps of an installed package with --deep=0,
- # even if it's a virtual.
- ResolverPlaygroundTestCase(
- ["virtual/libusb:0"],
- options = {"--selective" : True, "--deep" : 0},
- success = True,
- mergelist = []),
-
- # Satisfy unsatisfied dep of installed package with --deep=1.
- ResolverPlaygroundTestCase(
- ["virtual/libusb:0"],
- options = {"--selective" : True, "--deep" : 1},
- success = True,
- mergelist = ['dev-libs/libusb-0.1.13']),
-
- # Pull in direct dep of virtual, even with --deep=0.
- ResolverPlaygroundTestCase(
- ["sys-fs/udev"],
- options = {"--deep" : 0},
- success = True,
- mergelist = ['dev-libs/libusb-0.1.13', 'sys-fs/udev-164']),
-
- # Test --nodeps with direct virtual deps.
- ResolverPlaygroundTestCase(
- ["sys-fs/udev"],
- options = {"--nodeps" : True},
- success = True,
- mergelist = ["sys-fs/udev-164"]),
-
- # Test that --nodeps overrides --deep.
- ResolverPlaygroundTestCase(
- ["sys-fs/udev"],
- options = {"--nodeps" : True, "--deep" : True},
- success = True,
- mergelist = ["sys-fs/udev-164"]),
-
- # Test that --nodeps overrides --emptytree.
- ResolverPlaygroundTestCase(
- ["sys-fs/udev"],
- options = {"--nodeps" : True, "--emptytree" : True},
- success = True,
- mergelist = ["sys-fs/udev-164"]),
-
- # Test --emptytree with virtuals.
- ResolverPlaygroundTestCase(
- ["sys-fs/udev"],
- options = {"--emptytree" : True},
- success = True,
- mergelist = ['dev-libs/libusb-0.1.13', 'virtual/libusb-0', 'sys-fs/udev-164']),
- )
-
- playground = ResolverPlayground(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.cleanup()
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_eapi.py b/portage_with_autodep/pym/portage/tests/resolver/test_eapi.py
deleted file mode 100644
index 525b585..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_eapi.py
+++ /dev/null
@@ -1,115 +0,0 @@
-# Copyright 2010 Gentoo Foundation
-# 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 EAPITestCase(TestCase):
-
- def testEAPI(self):
-
- ebuilds = {
- #EAPI-1: IUSE-defaults
- "dev-libs/A-1.0": { "EAPI": 0, "IUSE": "+foo" },
- "dev-libs/A-1.1": { "EAPI": 1, "IUSE": "+foo" },
- "dev-libs/A-1.2": { "EAPI": 2, "IUSE": "+foo" },
- "dev-libs/A-1.3": { "EAPI": 3, "IUSE": "+foo" },
- "dev-libs/A-1.4": { "EAPI": "4", "IUSE": "+foo" },
-
- #EAPI-1: slot deps
- "dev-libs/A-2.0": { "EAPI": 0, "DEPEND": "dev-libs/B:0" },
- "dev-libs/A-2.1": { "EAPI": 1, "DEPEND": "dev-libs/B:0" },
- "dev-libs/A-2.2": { "EAPI": 2, "DEPEND": "dev-libs/B:0" },
- "dev-libs/A-2.3": { "EAPI": 3, "DEPEND": "dev-libs/B:0" },
- "dev-libs/A-2.4": { "EAPI": "4", "DEPEND": "dev-libs/B:0" },
-
- #EAPI-2: use deps
- "dev-libs/A-3.0": { "EAPI": 0, "DEPEND": "dev-libs/B[foo]" },
- "dev-libs/A-3.1": { "EAPI": 1, "DEPEND": "dev-libs/B[foo]" },
- "dev-libs/A-3.2": { "EAPI": 2, "DEPEND": "dev-libs/B[foo]" },
- "dev-libs/A-3.3": { "EAPI": 3, "DEPEND": "dev-libs/B[foo]" },
- "dev-libs/A-3.4": { "EAPI": "4", "DEPEND": "dev-libs/B[foo]" },
-
- #EAPI-2: strong blocks
- "dev-libs/A-4.0": { "EAPI": 0, "DEPEND": "!!dev-libs/B" },
- "dev-libs/A-4.1": { "EAPI": 1, "DEPEND": "!!dev-libs/B" },
- "dev-libs/A-4.2": { "EAPI": 2, "DEPEND": "!!dev-libs/B" },
- "dev-libs/A-4.3": { "EAPI": 3, "DEPEND": "!!dev-libs/B" },
- "dev-libs/A-4.4": { "EAPI": "4", "DEPEND": "!!dev-libs/B" },
-
- #EAPI-4: slot operator deps
- #~ "dev-libs/A-5.0": { "EAPI": 0, "DEPEND": "dev-libs/B:*" },
- #~ "dev-libs/A-5.1": { "EAPI": 1, "DEPEND": "dev-libs/B:*" },
- #~ "dev-libs/A-5.2": { "EAPI": 2, "DEPEND": "dev-libs/B:*" },
- #~ "dev-libs/A-5.3": { "EAPI": 3, "DEPEND": "dev-libs/B:*" },
- #~ "dev-libs/A-5.4": { "EAPI": "4", "DEPEND": "dev-libs/B:*" },
-
- #EAPI-4: use dep defaults
- "dev-libs/A-6.0": { "EAPI": 0, "DEPEND": "dev-libs/B[bar(+)]" },
- "dev-libs/A-6.1": { "EAPI": 1, "DEPEND": "dev-libs/B[bar(+)]" },
- "dev-libs/A-6.2": { "EAPI": 2, "DEPEND": "dev-libs/B[bar(+)]" },
- "dev-libs/A-6.3": { "EAPI": 3, "DEPEND": "dev-libs/B[bar(+)]" },
- "dev-libs/A-6.4": { "EAPI": "4", "DEPEND": "dev-libs/B[bar(+)]" },
-
- #EAPI-4: REQUIRED_USE
- "dev-libs/A-7.0": { "EAPI": 0, "IUSE": "foo bar", "REQUIRED_USE": "|| ( foo bar )" },
- "dev-libs/A-7.1": { "EAPI": 1, "IUSE": "foo +bar", "REQUIRED_USE": "|| ( foo bar )" },
- "dev-libs/A-7.2": { "EAPI": 2, "IUSE": "foo +bar", "REQUIRED_USE": "|| ( foo bar )" },
- "dev-libs/A-7.3": { "EAPI": 3, "IUSE": "foo +bar", "REQUIRED_USE": "|| ( foo bar )" },
- "dev-libs/A-7.4": { "EAPI": "4", "IUSE": "foo +bar", "REQUIRED_USE": "|| ( foo bar )" },
-
- "dev-libs/B-1": {"EAPI": 1, "IUSE": "+foo"},
- }
-
- test_cases = (
- ResolverPlaygroundTestCase(["=dev-libs/A-1.0"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-1.1"], success = True, mergelist = ["dev-libs/A-1.1"]),
- ResolverPlaygroundTestCase(["=dev-libs/A-1.2"], success = True, mergelist = ["dev-libs/A-1.2"]),
- ResolverPlaygroundTestCase(["=dev-libs/A-1.3"], success = True, mergelist = ["dev-libs/A-1.3"]),
- ResolverPlaygroundTestCase(["=dev-libs/A-1.4"], success = True, mergelist = ["dev-libs/A-1.4"]),
-
- ResolverPlaygroundTestCase(["=dev-libs/A-2.0"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-2.1"], success = True, mergelist = ["dev-libs/B-1", "dev-libs/A-2.1"]),
- ResolverPlaygroundTestCase(["=dev-libs/A-2.2"], success = True, mergelist = ["dev-libs/B-1", "dev-libs/A-2.2"]),
- ResolverPlaygroundTestCase(["=dev-libs/A-2.3"], success = True, mergelist = ["dev-libs/B-1", "dev-libs/A-2.3"]),
- ResolverPlaygroundTestCase(["=dev-libs/A-2.4"], success = True, mergelist = ["dev-libs/B-1", "dev-libs/A-2.4"]),
-
- ResolverPlaygroundTestCase(["=dev-libs/A-3.0"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-3.1"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-3.2"], success = True, mergelist = ["dev-libs/B-1", "dev-libs/A-3.2"]),
- ResolverPlaygroundTestCase(["=dev-libs/A-3.3"], success = True, mergelist = ["dev-libs/B-1", "dev-libs/A-3.3"]),
- ResolverPlaygroundTestCase(["=dev-libs/A-3.4"], success = True, mergelist = ["dev-libs/B-1", "dev-libs/A-3.4"]),
-
- ResolverPlaygroundTestCase(["=dev-libs/A-4.0"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-4.1"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-4.2"], success = True, mergelist = ["dev-libs/A-4.2"]),
- ResolverPlaygroundTestCase(["=dev-libs/A-4.3"], success = True, mergelist = ["dev-libs/A-4.3"]),
- ResolverPlaygroundTestCase(["=dev-libs/A-4.4"], success = True, mergelist = ["dev-libs/A-4.4"]),
-
- ResolverPlaygroundTestCase(["=dev-libs/A-5.0"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-5.1"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-5.2"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-5.3"], success = False),
- # not implemented: EAPI-4: slot operator deps
- #~ ResolverPlaygroundTestCase(["=dev-libs/A-5.4"], success = True, mergelist = ["dev-libs/B-1", "dev-libs/A-5.4"]),
-
- ResolverPlaygroundTestCase(["=dev-libs/A-6.0"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-6.1"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-6.2"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-6.3"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-6.4"], success = True, mergelist = ["dev-libs/B-1", "dev-libs/A-6.4"]),
-
- ResolverPlaygroundTestCase(["=dev-libs/A-7.0"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-7.1"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-7.2"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-7.3"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-7.4"], success = True, mergelist = ["dev-libs/A-7.4"]),
- )
-
- playground = ResolverPlayground(ebuilds=ebuilds)
- 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.cleanup()
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_merge_order.py b/portage_with_autodep/pym/portage/tests/resolver/test_merge_order.py
deleted file mode 100644
index 0a52c81..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_merge_order.py
+++ /dev/null
@@ -1,453 +0,0 @@
-# Copyright 2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-import portage
-from portage.tests import TestCase
-from portage.tests.resolver.ResolverPlayground import (ResolverPlayground,
- ResolverPlaygroundTestCase)
-
-class MergeOrderTestCase(TestCase):
-
- def testMergeOrder(self):
- ebuilds = {
- "app-misc/blocker-buildtime-a-1" : {},
- "app-misc/blocker-buildtime-unbuilt-a-1" : {
- "DEPEND" : "!app-misc/installed-blocker-a",
- },
- "app-misc/blocker-buildtime-unbuilt-hard-a-1" : {
- "EAPI" : "2",
- "DEPEND" : "!!app-misc/installed-blocker-a",
- },
- "app-misc/blocker-update-order-a-1" : {},
- "app-misc/blocker-update-order-hard-a-1" : {},
- "app-misc/blocker-update-order-hard-unsolvable-a-1" : {},
- "app-misc/blocker-runtime-a-1" : {},
- "app-misc/blocker-runtime-b-1" : {},
- "app-misc/blocker-runtime-hard-a-1" : {},
- "app-misc/circ-buildtime-a-0": {},
- "app-misc/circ-buildtime-a-1": {
- "RDEPEND": "app-misc/circ-buildtime-b",
- },
- "app-misc/circ-buildtime-b-1": {
- "RDEPEND": "app-misc/circ-buildtime-c",
- },
- "app-misc/circ-buildtime-c-1": {
- "DEPEND": "app-misc/circ-buildtime-a",
- },
- "app-misc/circ-buildtime-unsolvable-a-1": {
- "RDEPEND": "app-misc/circ-buildtime-unsolvable-b",
- },
- "app-misc/circ-buildtime-unsolvable-b-1": {
- "RDEPEND": "app-misc/circ-buildtime-unsolvable-c",
- },
- "app-misc/circ-buildtime-unsolvable-c-1": {
- "DEPEND": "app-misc/circ-buildtime-unsolvable-a",
- },
- "app-misc/circ-post-runtime-a-1": {
- "PDEPEND": "app-misc/circ-post-runtime-b",
- },
- "app-misc/circ-post-runtime-b-1": {
- "RDEPEND": "app-misc/circ-post-runtime-c",
- },
- "app-misc/circ-post-runtime-c-1": {
- "RDEPEND": "app-misc/circ-post-runtime-a",
- },
- "app-misc/circ-runtime-a-1": {
- "RDEPEND": "app-misc/circ-runtime-b",
- },
- "app-misc/circ-runtime-b-1": {
- "RDEPEND": "app-misc/circ-runtime-c",
- },
- "app-misc/circ-runtime-c-1": {
- "RDEPEND": "app-misc/circ-runtime-a",
- },
- "app-misc/circ-satisfied-a-0": {
- "RDEPEND": "app-misc/circ-satisfied-b",
- },
- "app-misc/circ-satisfied-a-1": {
- "RDEPEND": "app-misc/circ-satisfied-b",
- },
- "app-misc/circ-satisfied-b-0": {
- "RDEPEND": "app-misc/circ-satisfied-c",
- },
- "app-misc/circ-satisfied-b-1": {
- "RDEPEND": "app-misc/circ-satisfied-c",
- },
- "app-misc/circ-satisfied-c-0": {
- "DEPEND": "app-misc/circ-satisfied-a",
- "RDEPEND": "app-misc/circ-satisfied-a",
- },
- "app-misc/circ-satisfied-c-1": {
- "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",
- "RDEPEND" : "!app-misc/blocker-runtime-a !app-misc/blocker-runtime-b !!app-misc/blocker-runtime-hard-a",
- },
- "app-misc/installed-old-version-blocks-a-1" : {
- "RDEPEND" : "!app-misc/blocker-update-order-a",
- },
- "app-misc/installed-old-version-blocks-a-2" : {},
- "app-misc/installed-old-version-blocks-hard-a-1" : {
- "EAPI" : "2",
- "RDEPEND" : "!!app-misc/blocker-update-order-hard-a",
- },
- "app-misc/installed-old-version-blocks-hard-a-2" : {},
- "app-misc/installed-old-version-blocks-hard-unsolvable-a-1" : {
- "EAPI" : "2",
- "RDEPEND" : "!!app-misc/blocker-update-order-hard-unsolvable-a",
- },
- "app-misc/installed-old-version-blocks-hard-unsolvable-a-2" : {
- "DEPEND" : "app-misc/blocker-update-order-hard-unsolvable-a",
- "RDEPEND" : "",
- },
- "app-misc/some-app-a-1": {
- "RDEPEND": "app-misc/circ-runtime-a app-misc/circ-runtime-b",
- },
- "app-misc/some-app-b-1": {
- "RDEPEND": "app-misc/circ-post-runtime-a app-misc/circ-post-runtime-b",
- },
- "app-misc/some-app-c-1": {
- "RDEPEND": "app-misc/circ-buildtime-a app-misc/circ-buildtime-b",
- },
- "app-admin/eselect-python-20100321" : {},
- "sys-apps/portage-2.1.9.42" : {
- "DEPEND" : "dev-lang/python",
- "RDEPEND" : "dev-lang/python",
- },
- "sys-apps/portage-2.1.9.49" : {
- "DEPEND" : "dev-lang/python >=app-admin/eselect-python-20091230",
- "RDEPEND" : "dev-lang/python",
- },
- "dev-lang/python-3.1" : {},
- "dev-lang/python-3.2" : {},
- "virtual/libc-0" : {
- "RDEPEND" : "sys-libs/glibc",
- },
- "sys-devel/gcc-4.5.2" : {},
- "sys-devel/binutils-2.18" : {},
- "sys-devel/binutils-2.20.1" : {},
- "sys-libs/glibc-2.11" : {
- "DEPEND" : "virtual/os-headers sys-devel/gcc sys-devel/binutils",
- "RDEPEND": "",
- },
- "sys-libs/glibc-2.13" : {
- "DEPEND" : "virtual/os-headers sys-devel/gcc sys-devel/binutils",
- "RDEPEND": "",
- },
- "virtual/os-headers-0" : {
- "RDEPEND" : "sys-kernel/linux-headers",
- },
- "sys-kernel/linux-headers-2.6.38": {
- "DEPEND" : "app-arch/xz-utils",
- "RDEPEND": "",
- },
- "sys-kernel/linux-headers-2.6.39": {
- "DEPEND" : "app-arch/xz-utils",
- "RDEPEND": "",
- },
- "app-arch/xz-utils-5.0.1" : {},
- "app-arch/xz-utils-5.0.2" : {},
- "dev-util/pkgconfig-0.25-r2" : {},
- "kde-base/kdelibs-3.5.7" : {
- "PDEPEND" : "kde-misc/kdnssd-avahi",
- },
- "kde-misc/kdnssd-avahi-0.1.2" : {
- "DEPEND" : "kde-base/kdelibs app-arch/xz-utils dev-util/pkgconfig",
- "RDEPEND" : "kde-base/kdelibs",
- },
- "kde-base/kdnssd-3.5.7" : {
- "DEPEND" : "kde-base/kdelibs",
- "RDEPEND" : "kde-base/kdelibs",
- },
- "kde-base/libkdegames-3.5.7" : {
- "DEPEND" : "kde-base/kdelibs",
- "RDEPEND" : "kde-base/kdelibs",
- },
- "kde-base/kmines-3.5.7" : {
- "DEPEND" : "kde-base/libkdegames",
- "RDEPEND" : "kde-base/libkdegames",
- },
- "media-video/libav-0.7_pre20110327" : {
- "EAPI" : "2",
- "IUSE" : "X +encode",
- "RDEPEND" : "!media-video/ffmpeg",
- },
- "media-video/ffmpeg-0.7_rc1" : {
- "EAPI" : "2",
- "IUSE" : "X +encode",
- },
- "virtual/ffmpeg-0.6.90" : {
- "EAPI" : "2",
- "IUSE" : "X +encode",
- "RDEPEND" : "|| ( >=media-video/ffmpeg-0.6.90_rc0-r2[X=,encode=] >=media-video/libav-0.6.90_rc[X=,encode=] )",
- },
- }
-
- installed = {
- "app-misc/circ-buildtime-a-0": {},
- "app-misc/circ-satisfied-a-0": {
- "RDEPEND": "app-misc/circ-satisfied-b",
- },
- "app-misc/circ-satisfied-b-0": {
- "RDEPEND": "app-misc/circ-satisfied-c",
- },
- "app-misc/circ-satisfied-c-0": {
- "DEPEND": "app-misc/circ-satisfied-a",
- "RDEPEND": "app-misc/circ-satisfied-a",
- },
- "app-misc/installed-blocker-a-1" : {
- "EAPI" : "2",
- "DEPEND" : "!app-misc/blocker-buildtime-a",
- "RDEPEND" : "!app-misc/blocker-runtime-a !app-misc/blocker-runtime-b !!app-misc/blocker-runtime-hard-a",
- },
- "app-misc/installed-old-version-blocks-a-1" : {
- "RDEPEND" : "!app-misc/blocker-update-order-a",
- },
- "app-misc/installed-old-version-blocks-hard-a-1" : {
- "EAPI" : "2",
- "RDEPEND" : "!!app-misc/blocker-update-order-hard-a",
- },
- "app-misc/installed-old-version-blocks-hard-unsolvable-a-1" : {
- "EAPI" : "2",
- "RDEPEND" : "!!app-misc/blocker-update-order-hard-unsolvable-a",
- },
- "sys-apps/portage-2.1.9.42" : {
- "DEPEND" : "dev-lang/python",
- "RDEPEND" : "dev-lang/python",
- },
- "dev-lang/python-3.1" : {},
- "virtual/libc-0" : {
- "RDEPEND" : "sys-libs/glibc",
- },
- "sys-devel/binutils-2.18" : {},
- "sys-libs/glibc-2.11" : {
- "DEPEND" : "virtual/os-headers sys-devel/gcc sys-devel/binutils",
- "RDEPEND": "",
- },
- "virtual/os-headers-0" : {
- "RDEPEND" : "sys-kernel/linux-headers",
- },
- "sys-kernel/linux-headers-2.6.38": {
- "DEPEND" : "app-arch/xz-utils",
- "RDEPEND": "",
- },
- "app-arch/xz-utils-5.0.1" : {},
- "media-video/ffmpeg-0.7_rc1" : {
- "EAPI" : "2",
- "IUSE" : "X +encode",
- "USE" : "encode",
- },
- "virtual/ffmpeg-0.6.90" : {
- "EAPI" : "2",
- "IUSE" : "X +encode",
- "USE" : "encode",
- "RDEPEND" : "|| ( >=media-video/ffmpeg-0.6.90_rc0-r2[X=,encode=] >=media-video/libav-0.6.90_rc[X=,encode=] )",
- },
- }
-
- test_cases = (
- ResolverPlaygroundTestCase(
- ["app-misc/some-app-a"],
- success = True,
- ambiguous_merge_order = True,
- mergelist = [("app-misc/circ-runtime-a-1", "app-misc/circ-runtime-b-1", "app-misc/circ-runtime-c-1"), "app-misc/some-app-a-1"]),
- ResolverPlaygroundTestCase(
- ["app-misc/some-app-a"],
- success = True,
- ambiguous_merge_order = True,
- mergelist = [("app-misc/circ-runtime-c-1", "app-misc/circ-runtime-b-1", "app-misc/circ-runtime-a-1"), "app-misc/some-app-a-1"]),
- # Test unsolvable circular dep that is RDEPEND in one
- # direction and DEPEND in the other.
- ResolverPlaygroundTestCase(
- ["app-misc/circ-buildtime-unsolvable-a"],
- success = False,
- circular_dependency_solutions = {}),
- # Test optimal merge order for a circular dep that is
- # RDEPEND in one direction and DEPEND in the other.
- # This requires an installed instance of the DEPEND
- # package in order to be solvable.
- ResolverPlaygroundTestCase(
- ["app-misc/some-app-c", "app-misc/circ-buildtime-a"],
- success = True,
- ambiguous_merge_order = True,
- mergelist = [("app-misc/circ-buildtime-b-1", "app-misc/circ-buildtime-c-1"), "app-misc/circ-buildtime-a-1", "app-misc/some-app-c-1"]),
- # Test optimal merge order for a circular dep that is
- # RDEPEND in one direction and PDEPEND in the other.
- ResolverPlaygroundTestCase(
- ["app-misc/some-app-b"],
- success = True,
- ambiguous_merge_order = True,
- mergelist = ["app-misc/circ-post-runtime-a-1", ("app-misc/circ-post-runtime-b-1", "app-misc/circ-post-runtime-c-1"), "app-misc/some-app-b-1"]),
- # Test optimal merge order for a circular dep that is
- # RDEPEND in one direction and DEPEND in the other,
- # with all dependencies initially satisfied. Optimally,
- # the DEPEND/buildtime dep should be updated before the
- # package that depends on it, even though it's feasible
- # to update it later since it is already satisfied.
- ResolverPlaygroundTestCase(
- ["app-misc/circ-satisfied-a", "app-misc/circ-satisfied-b", "app-misc/circ-satisfied-c"],
- success = True,
- all_permutations = True,
- 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(
- ["app-misc/blocker-buildtime-a"],
- success = True,
- mergelist = ["app-misc/blocker-buildtime-a-1"]),
- # We're installing a package that an old version of
- # an installed package blocks. However, an update is
- # available to the old package. The old package should
- # be updated first, in order to solve the blocker without
- # any need for blocking packages to temporarily overlap.
- ResolverPlaygroundTestCase(
- ["app-misc/blocker-update-order-a", "app-misc/installed-old-version-blocks-a"],
- success = True,
- all_permutations = True,
- mergelist = ["app-misc/installed-old-version-blocks-a-2", "app-misc/blocker-update-order-a-1"]),
- # This is the same as above but with a hard blocker. The hard
- # blocker is solved automatically since the update makes it
- # irrelevant.
- ResolverPlaygroundTestCase(
- ["app-misc/blocker-update-order-hard-a", "app-misc/installed-old-version-blocks-hard-a"],
- success = True,
- all_permutations = True,
- mergelist = ["app-misc/installed-old-version-blocks-hard-a-2", "app-misc/blocker-update-order-hard-a-1"]),
- # This is similar to the above case except that it's unsolvable
- # due to merge order, unless bug 250286 is implemented so that
- # the installed blocker will be unmerged before installation
- # of the package it blocks (rather than after like a soft blocker
- # would be handled). The "unmerge before" behavior requested
- # in bug 250286 must be optional since essential programs or
- # libraries may be temporarily unavailable during a
- # non-overlapping update like this.
- ResolverPlaygroundTestCase(
- ["app-misc/blocker-update-order-hard-unsolvable-a", "app-misc/installed-old-version-blocks-hard-unsolvable-a"],
- success = False,
- all_permutations = True,
- ambiguous_merge_order = True,
- merge_order_assertions = (('app-misc/blocker-update-order-hard-unsolvable-a-1', 'app-misc/installed-old-version-blocks-hard-unsolvable-a-2'),),
- mergelist = [('app-misc/blocker-update-order-hard-unsolvable-a-1', 'app-misc/installed-old-version-blocks-hard-unsolvable-a-2', '!!app-misc/blocker-update-order-hard-unsolvable-a')]),
- # The installed package has runtime blockers that
- # should cause it to be uninstalled. The uninstall
- # task is executed only after blocking packages have
- # been merged.
- # TODO: distinguish between install/uninstall tasks in mergelist
- ResolverPlaygroundTestCase(
- ["app-misc/blocker-runtime-a", "app-misc/blocker-runtime-b"],
- success = True,
- all_permutations = True,
- ambiguous_merge_order = True,
- mergelist = [("app-misc/blocker-runtime-a-1", "app-misc/blocker-runtime-b-1"), "app-misc/installed-blocker-a-1", ("!app-misc/blocker-runtime-a", "!app-misc/blocker-runtime-b")]),
- # We have a soft buildtime blocker against an installed
- # package that should cause it to be uninstalled. Note that with
- # soft blockers, the blocking packages are allowed to temporarily
- # overlap. This allows any essential programs/libraries provided
- # by both packages to be available at all times.
- # TODO: distinguish between install/uninstall tasks in mergelist
- ResolverPlaygroundTestCase(
- ["app-misc/blocker-buildtime-unbuilt-a"],
- success = True,
- mergelist = ["app-misc/blocker-buildtime-unbuilt-a-1", "app-misc/installed-blocker-a-1", "!app-misc/installed-blocker-a"]),
- # We have a hard buildtime blocker against an installed
- # package that will not resolve automatically (unless
- # the option requested in bug 250286 is implemented).
- ResolverPlaygroundTestCase(
- ["app-misc/blocker-buildtime-unbuilt-hard-a"],
- success = False,
- mergelist = ['app-misc/blocker-buildtime-unbuilt-hard-a-1', '!!app-misc/installed-blocker-a']),
- # An installed package has a hard runtime blocker that
- # will not resolve automatically (unless the option
- # requested in bug 250286 is implemented).
- ResolverPlaygroundTestCase(
- ["app-misc/blocker-runtime-hard-a"],
- success = False,
- mergelist = ['app-misc/blocker-runtime-hard-a-1', '!!app-misc/blocker-runtime-hard-a']),
- # Test swapping of providers for a new-style virtual package,
- # which relies on delayed evaluation of disjunctive (virtual
- # and ||) deps as required to solve bug #264434. Note that
- # this behavior is not supported for old-style PROVIDE virtuals,
- # as reported in bug #339164.
- ResolverPlaygroundTestCase(
- ["media-video/libav"],
- success=True,
- mergelist = ['media-video/libav-0.7_pre20110327', 'media-video/ffmpeg-0.7_rc1', '!media-video/ffmpeg']),
- # Test that PORTAGE_PACKAGE_ATOM is merged asap. Optimally,
- # satisfied deps are always merged after the asap nodes that
- # depend on them.
- ResolverPlaygroundTestCase(
- ["dev-lang/python", portage.const.PORTAGE_PACKAGE_ATOM],
- success = True,
- all_permutations = True,
- mergelist = ['app-admin/eselect-python-20100321', 'sys-apps/portage-2.1.9.49', 'dev-lang/python-3.2']),
- # Test that OS_HEADERS_PACKAGE_ATOM and LIBC_PACKAGE_ATOM
- # are merged asap, in order to account for implicit
- # dependencies. See bug #303567. Optimally, satisfied deps
- # are always merged after the asap nodes that depend on them.
- ResolverPlaygroundTestCase(
- ["app-arch/xz-utils", "sys-kernel/linux-headers", "sys-devel/binutils", "sys-libs/glibc"],
- options = {"--complete-graph" : True},
- success = True,
- all_permutations = True,
- ambiguous_merge_order = True,
- mergelist = ['sys-kernel/linux-headers-2.6.39', 'sys-devel/gcc-4.5.2', 'sys-libs/glibc-2.13', ('app-arch/xz-utils-5.0.2', 'sys-devel/binutils-2.20.1')]),
- # Test asap install of PDEPEND for bug #180045.
- ResolverPlaygroundTestCase(
- ["kde-base/kmines", "kde-base/kdnssd", "kde-base/kdelibs", "app-arch/xz-utils"],
- success = True,
- all_permutations = True,
- ambiguous_merge_order = True,
- merge_order_assertions = (
- ('dev-util/pkgconfig-0.25-r2', 'kde-misc/kdnssd-avahi-0.1.2'),
- ('kde-misc/kdnssd-avahi-0.1.2', 'kde-base/libkdegames-3.5.7'),
- ('kde-misc/kdnssd-avahi-0.1.2', 'kde-base/kdnssd-3.5.7'),
- ('kde-base/libkdegames-3.5.7', 'kde-base/kmines-3.5.7'),
- ),
- mergelist = [('kde-base/kdelibs-3.5.7', 'dev-util/pkgconfig-0.25-r2', 'kde-misc/kdnssd-avahi-0.1.2', 'app-arch/xz-utils-5.0.2', 'kde-base/libkdegames-3.5.7', 'kde-base/kdnssd-3.5.7', 'kde-base/kmines-3.5.7')]),
- )
-
- playground = ResolverPlayground(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.cleanup()
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_missing_iuse_and_evaluated_atoms.py b/portage_with_autodep/pym/portage/tests/resolver/test_missing_iuse_and_evaluated_atoms.py
deleted file mode 100644
index a860e7b..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_missing_iuse_and_evaluated_atoms.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 2010 Gentoo Foundation
-# 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 MissingIUSEandEvaluatedAtomsTestCase(TestCase):
-
- def testMissingIUSEandEvaluatedAtoms(self):
- ebuilds = {
- "dev-libs/A-1": { "DEPEND": "dev-libs/B[foo?]", "IUSE": "foo bar", "EAPI": 2 },
- "dev-libs/A-2": { "DEPEND": "dev-libs/B[foo?,bar]", "IUSE": "foo bar", "EAPI": 2 },
- "dev-libs/B-1": { "IUSE": "bar" },
- }
-
- test_cases = (
- ResolverPlaygroundTestCase(
- ["=dev-libs/A-1"],
- success = False),
- ResolverPlaygroundTestCase(
- ["=dev-libs/A-2"],
- success = False),
- )
-
- playground = ResolverPlayground(ebuilds=ebuilds, 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.cleanup()
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_multirepo.py b/portage_with_autodep/pym/portage/tests/resolver/test_multirepo.py
deleted file mode 100644
index 34c6d45..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_multirepo.py
+++ /dev/null
@@ -1,318 +0,0 @@
-# Copyright 2010-2011 Gentoo Foundation
-# 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 MultirepoTestCase(TestCase):
-
- def testMultirepo(self):
- ebuilds = {
- #Simple repo selection
- "dev-libs/A-1": { },
- "dev-libs/A-1::repo1": { },
- "dev-libs/A-2::repo1": { },
- "dev-libs/A-1::repo2": { },
-
- #Packages in exactly one repo
- "dev-libs/B-1": { },
- "dev-libs/C-1::repo1": { },
-
- #Package in repository 1 and 2, but 1 must be used
- "dev-libs/D-1::repo1": { },
- "dev-libs/D-1::repo2": { },
-
- "dev-libs/E-1": { },
- "dev-libs/E-1::repo1": { },
- "dev-libs/E-1::repo2": { "SLOT": "1" },
-
- "dev-libs/F-1::repo1": { "SLOT": "1" },
- "dev-libs/F-1::repo2": { "SLOT": "1" },
-
- "dev-libs/G-1::repo1": { "EAPI" : "4", "IUSE":"+x +y", "REQUIRED_USE" : "" },
- "dev-libs/G-1::repo2": { "EAPI" : "4", "IUSE":"+x +y", "REQUIRED_USE" : "^^ ( x y )" },
-
- "dev-libs/H-1": { "KEYWORDS": "x86", "EAPI" : "3",
- "RDEPEND" : "|| ( dev-libs/I:2 dev-libs/I:1 )" },
-
- "dev-libs/I-1::repo2": { "SLOT" : "1"},
- "dev-libs/I-2::repo2": { "SLOT" : "2"},
- }
-
- installed = {
- "dev-libs/H-1": { "RDEPEND" : "|| ( dev-libs/I:2 dev-libs/I:1 )"},
- "dev-libs/I-2::repo1": {"SLOT" : "2"},
- }
-
- sets = {
- "multirepotest":
- ( "dev-libs/A::test_repo", )
- }
-
- test_cases = (
- #Simple repo selection
- ResolverPlaygroundTestCase(
- ["dev-libs/A"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/A-2::repo1"]),
- ResolverPlaygroundTestCase(
- ["dev-libs/A::test_repo"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/A-1"]),
- ResolverPlaygroundTestCase(
- ["dev-libs/A::repo2"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/A-1::repo2"]),
- ResolverPlaygroundTestCase(
- ["=dev-libs/A-1::repo1"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/A-1::repo1"]),
- ResolverPlaygroundTestCase(
- ["@multirepotest"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/A-1"]),
-
- #Packages in exactly one repo
- ResolverPlaygroundTestCase(
- ["dev-libs/B"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/B-1"]),
- ResolverPlaygroundTestCase(
- ["dev-libs/C"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/C-1::repo1"]),
-
- #Package in repository 1 and 2, but 2 must be used
- ResolverPlaygroundTestCase(
- ["dev-libs/D"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/D-1::repo2"]),
-
- #Atoms with slots
- ResolverPlaygroundTestCase(
- ["dev-libs/E"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/E-1::repo2"]),
- ResolverPlaygroundTestCase(
- ["dev-libs/E:1::repo2"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/E-1::repo2"]),
- ResolverPlaygroundTestCase(
- ["dev-libs/E:1"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/E-1::repo2"]),
- ResolverPlaygroundTestCase(
- ["dev-libs/F:1"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/F-1::repo2"]),
- ResolverPlaygroundTestCase(
- ["=dev-libs/F-1:1"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/F-1::repo2"]),
- ResolverPlaygroundTestCase(
- ["=dev-libs/F-1:1::repo1"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/F-1::repo1"]),
-
- # Dependency on installed dev-libs/C-2 ebuild for which ebuild is
- # not available from the same repo should not unnecessarily
- # reinstall the same version from a different repo.
- ResolverPlaygroundTestCase(
- ["dev-libs/H"],
- options = {"--update": True, "--deep": True},
- success = True,
- mergelist = []),
-
- # Check interaction between repo priority and unsatisfied
- # REQUIRED_USE, for bug #350254.
- ResolverPlaygroundTestCase(
- ["=dev-libs/G-1"],
- check_repo_names = True,
- success = False),
-
- )
-
- playground = ResolverPlayground(ebuilds=ebuilds,
- installed=installed, sets=sets)
- 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.cleanup()
-
-
- def testMultirepoUserConfig(self):
- ebuilds = {
- #package.use test
- "dev-libs/A-1": { "IUSE": "foo" },
- "dev-libs/A-2::repo1": { "IUSE": "foo" },
- "dev-libs/A-3::repo2": { },
- "dev-libs/B-1": { "DEPEND": "dev-libs/A", "EAPI": 2 },
- "dev-libs/B-2": { "DEPEND": "dev-libs/A[foo]", "EAPI": 2 },
- "dev-libs/B-3": { "DEPEND": "dev-libs/A[-foo]", "EAPI": 2 },
-
- #package.keywords test
- "dev-libs/C-1": { "KEYWORDS": "~x86" },
- "dev-libs/C-1::repo1": { "KEYWORDS": "~x86" },
-
- #package.license
- "dev-libs/D-1": { "LICENSE": "TEST" },
- "dev-libs/D-1::repo1": { "LICENSE": "TEST" },
-
- #package.mask
- "dev-libs/E-1": { },
- "dev-libs/E-1::repo1": { },
- "dev-libs/H-1": { },
- "dev-libs/H-1::repo1": { },
- "dev-libs/I-1::repo2": { "SLOT" : "1"},
- "dev-libs/I-2::repo2": { "SLOT" : "2"},
- "dev-libs/J-1": { "KEYWORDS": "x86", "EAPI" : "3",
- "RDEPEND" : "|| ( dev-libs/I:2 dev-libs/I:1 )" },
-
- #package.properties
- "dev-libs/F-1": { "PROPERTIES": "bar"},
- "dev-libs/F-1::repo1": { "PROPERTIES": "bar"},
-
- #package.unmask
- "dev-libs/G-1": { },
- "dev-libs/G-1::repo1": { },
-
- #package.mask with wildcards
- "dev-libs/Z-1::repo3": { },
- }
-
- installed = {
- "dev-libs/J-1": { "RDEPEND" : "|| ( dev-libs/I:2 dev-libs/I:1 )"},
- "dev-libs/I-2::repo1": {"SLOT" : "2"},
- }
-
- user_config = {
- "package.use":
- (
- "dev-libs/A::repo1 foo",
- ),
- "package.keywords":
- (
- "=dev-libs/C-1::test_repo",
- ),
- "package.license":
- (
- "=dev-libs/D-1::test_repo TEST",
- ),
- "package.mask":
- (
- "dev-libs/E::repo1",
- "dev-libs/H",
- "dev-libs/I::repo1",
- #needed for package.unmask test
- "dev-libs/G",
- #wildcard test
- "*/*::repo3",
- ),
- "package.properties":
- (
- "dev-libs/F::repo1 -bar",
- ),
- "package.unmask":
- (
- "dev-libs/G::test_repo",
- ),
- }
-
- test_cases = (
- #package.use test
- ResolverPlaygroundTestCase(
- ["=dev-libs/B-1"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/A-3::repo2", "dev-libs/B-1"]),
- ResolverPlaygroundTestCase(
- ["=dev-libs/B-2"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/A-2::repo1", "dev-libs/B-2"]),
- ResolverPlaygroundTestCase(
- ["=dev-libs/B-3"],
- options = { "--autounmask": 'n' },
- success = False,
- check_repo_names = True),
-
- #package.keywords test
- ResolverPlaygroundTestCase(
- ["dev-libs/C"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/C-1"]),
-
- #package.license test
- ResolverPlaygroundTestCase(
- ["dev-libs/D"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/D-1"]),
-
- #package.mask test
- ResolverPlaygroundTestCase(
- ["dev-libs/E"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/E-1"]),
-
- # Dependency on installed dev-libs/C-2 ebuild for which ebuild is
- # masked from the same repo should not unnecessarily pull
- # in a different slot. It should just pull in the same slot from
- # a different repo (bug #351828).
- ResolverPlaygroundTestCase(
- ["dev-libs/J"],
- options = {"--update": True, "--deep": True},
- success = True,
- mergelist = ["dev-libs/I-2"]),
-
- #package.properties test
- ResolverPlaygroundTestCase(
- ["dev-libs/F"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/F-1"]),
-
- #package.mask test
- ResolverPlaygroundTestCase(
- ["dev-libs/G"],
- success = True,
- check_repo_names = True,
- mergelist = ["dev-libs/G-1"]),
- ResolverPlaygroundTestCase(
- ["dev-libs/H"],
- options = { "--autounmask": 'n' },
- success = False),
-
- #package.mask with wildcards
- ResolverPlaygroundTestCase(
- ["dev-libs/Z"],
- options = { "--autounmask": 'n' },
- success = False),
- )
-
- playground = ResolverPlayground(ebuilds=ebuilds,
- installed=installed, user_config=user_config)
- 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.cleanup()
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_multislot.py b/portage_with_autodep/pym/portage/tests/resolver/test_multislot.py
deleted file mode 100644
index 8615419..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_multislot.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2010 Gentoo Foundation
-# 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 MultSlotTestCase(TestCase):
-
- def testMultiSlotSelective(self):
- """
- Test that a package isn't reinstalled due to SLOT dependency
- interaction with USE=multislot (bug #220341).
- """
-
- ebuilds = {
- "sys-devel/gcc-4.4.4": { "SLOT": "4.4" },
- }
-
- installed = {
- "sys-devel/gcc-4.4.4": { "SLOT": "i686-pc-linux-gnu-4.4.4" },
- }
-
- options = {'--update' : True, '--deep' : True, '--selective' : True}
-
- test_cases = (
- ResolverPlaygroundTestCase(
- ["sys-devel/gcc:4.4"],
- options = options,
- mergelist = [],
- success = True),
- )
-
- playground = ResolverPlayground(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.cleanup()
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_old_dep_chain_display.py b/portage_with_autodep/pym/portage/tests/resolver/test_old_dep_chain_display.py
deleted file mode 100644
index 8aedf59..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_old_dep_chain_display.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 2010-2011 Gentoo Foundation
-# 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 OldDepChainDisplayTestCase(TestCase):
-
- def testOldDepChainDisplay(self):
- ebuilds = {
- "dev-libs/A-1": { "DEPEND": "foo? ( dev-libs/B[-bar] )", "IUSE": "+foo", "EAPI": "2" },
- "dev-libs/A-2": { "DEPEND": "foo? ( dev-libs/C )", "IUSE": "+foo", "EAPI": "1" },
- "dev-libs/B-1": { "IUSE": "bar", "DEPEND": "!bar? ( dev-libs/D[-baz] )", "EAPI": "2" },
- "dev-libs/C-1": { "KEYWORDS": "~x86" },
- "dev-libs/D-1": { "IUSE": "+baz", "EAPI": "1" },
- }
-
- test_cases = (
- ResolverPlaygroundTestCase(
- ["=dev-libs/A-1"],
- options = { "--autounmask": 'n' },
- success = False),
- ResolverPlaygroundTestCase(
- ["=dev-libs/A-2"],
- options = { "--autounmask": 'n' },
- success = False),
- )
-
- playground = ResolverPlayground(ebuilds=ebuilds)
- 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.cleanup()
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_output.py b/portage_with_autodep/pym/portage/tests/resolver/test_output.py
deleted file mode 100644
index 34efe9c..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_output.py
+++ /dev/null
@@ -1,88 +0,0 @@
-# Copyright 2010 Gentoo Foundation
-# 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 MergelistOutputTestCase(TestCase):
-
- def testMergelistOutput(self):
- """
- This test doesn't check if the output is correct, but makes sure
- that we don't backtrace somewhere in the output code.
- """
- ebuilds = {
- "dev-libs/A-1": { "DEPEND": "dev-libs/B dev-libs/C", "IUSE": "+foo", "EAPI": 1 },
- "dev-libs/B-1": { "DEPEND": "dev-libs/D", "IUSE": "foo +bar", "EAPI": 1 },
- "dev-libs/C-1": { "DEPEND": "dev-libs/E", "IUSE": "foo bar" },
- "dev-libs/D-1": { "IUSE": "" },
- "dev-libs/E-1": {},
-
- #reinstall for flags
- "dev-libs/Z-1": { "IUSE": "+foo", "EAPI": 1 },
- "dev-libs/Y-1": { "IUSE": "foo", "EAPI": 1 },
- "dev-libs/X-1": {},
- "dev-libs/W-1": { "IUSE": "+foo", "EAPI": 1 },
- }
-
- installed = {
- "dev-libs/Z-1": { "USE": "", "IUSE": "foo" },
- "dev-libs/Y-1": { "USE": "foo", "IUSE": "+foo", "EAPI": 1 },
- "dev-libs/X-1": { "USE": "foo", "IUSE": "+foo", "EAPI": 1 },
- "dev-libs/W-1": { },
- }
-
- option_cobos = (
- (),
- ("verbose",),
- ("tree",),
- ("tree", "unordered-display",),
- ("verbose",),
- ("verbose", "tree",),
- ("verbose", "tree", "unordered-display",),
- )
-
- test_cases = []
- for options in option_cobos:
- testcase_opts = {}
- for opt in options:
- testcase_opts["--" + opt] = True
-
- test_cases.append(ResolverPlaygroundTestCase(
- ["dev-libs/A"],
- options = testcase_opts,
- success = True,
- ignore_mergelist_order=True,
- mergelist = ["dev-libs/D-1", "dev-libs/E-1", "dev-libs/C-1", "dev-libs/B-1", "dev-libs/A-1"]))
-
- test_cases.append(ResolverPlaygroundTestCase(
- ["dev-libs/Z"],
- options = testcase_opts,
- success = True,
- mergelist = ["dev-libs/Z-1"]))
-
- test_cases.append(ResolverPlaygroundTestCase(
- ["dev-libs/Y"],
- options = testcase_opts,
- success = True,
- mergelist = ["dev-libs/Y-1"]))
-
- test_cases.append(ResolverPlaygroundTestCase(
- ["dev-libs/X"],
- options = testcase_opts,
- success = True,
- mergelist = ["dev-libs/X-1"]))
-
- test_cases.append(ResolverPlaygroundTestCase(
- ["dev-libs/W"],
- options = testcase_opts,
- success = True,
- mergelist = ["dev-libs/W-1"]))
-
- playground = ResolverPlayground(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.cleanup()
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_rebuild.py b/portage_with_autodep/pym/portage/tests/resolver/test_rebuild.py
deleted file mode 100644
index b9c4d6d..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_rebuild.py
+++ /dev/null
@@ -1,138 +0,0 @@
-# Copyright 2011 Gentoo Foundation
-# 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 RebuildTestCase(TestCase):
-
- def testRebuild(self):
- """
- Rebuild packages when dependencies that are used at both build-time and
- run-time are upgraded.
- """
-
- ebuilds = {
- "sys-libs/x-1": { },
- "sys-libs/x-1-r1": { },
- "sys-libs/x-2": { },
- "sys-apps/a-1": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"},
- "sys-apps/a-2": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"},
- "sys-apps/b-1": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"},
- "sys-apps/b-2": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"},
- "sys-apps/c-1": { "DEPEND" : "sys-libs/x", "RDEPEND" : ""},
- "sys-apps/c-2": { "DEPEND" : "sys-libs/x", "RDEPEND" : ""},
- "sys-apps/d-1": { "RDEPEND" : "sys-libs/x"},
- "sys-apps/d-2": { "RDEPEND" : "sys-libs/x"},
- "sys-apps/e-2": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"},
- "sys-apps/f-2": { "DEPEND" : "sys-apps/a", "RDEPEND" : "sys-apps/a"},
- "sys-apps/g-2": { "DEPEND" : "sys-apps/b sys-libs/x",
- "RDEPEND" : "sys-apps/b"},
- }
-
- installed = {
- "sys-libs/x-1": { },
- "sys-apps/a-1": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"},
- "sys-apps/b-1": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"},
- "sys-apps/c-1": { "DEPEND" : "sys-libs/x", "RDEPEND" : ""},
- "sys-apps/d-1": { "RDEPEND" : "sys-libs/x"},
- "sys-apps/e-1": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"},
- "sys-apps/f-1": { "DEPEND" : "sys-apps/a", "RDEPEND" : "sys-apps/a"},
- "sys-apps/g-1": { "DEPEND" : "sys-apps/b sys-libs/x",
- "RDEPEND" : "sys-apps/b"},
- }
-
- world = ["sys-apps/a", "sys-apps/b", "sys-apps/c", "sys-apps/d",
- "sys-apps/e", "sys-apps/f", "sys-apps/g"]
-
- test_cases = (
- ResolverPlaygroundTestCase(
- ["sys-libs/x"],
- options = {"--rebuild-if-unbuilt" : True,
- "--rebuild-exclude" : ["sys-apps/b"]},
- mergelist = ['sys-libs/x-2', 'sys-apps/a-2', 'sys-apps/e-2'],
- ignore_mergelist_order = True,
- success = True),
-
- ResolverPlaygroundTestCase(
- ["sys-libs/x"],
- options = {"--rebuild-if-unbuilt" : True},
- mergelist = ['sys-libs/x-2', 'sys-apps/a-2', 'sys-apps/b-2',
- 'sys-apps/e-2', 'sys-apps/g-2'],
- ignore_mergelist_order = True,
- success = True),
-
- ResolverPlaygroundTestCase(
- ["sys-libs/x"],
- options = {"--rebuild-if-unbuilt" : True,
- "--rebuild-ignore" : ["sys-libs/x"]},
- mergelist = ['sys-libs/x-2'],
- ignore_mergelist_order = True,
- success = True),
-
- ResolverPlaygroundTestCase(
- ["sys-libs/x"],
- options = {"--rebuild-if-unbuilt" : True,
- "--rebuild-ignore" : ["sys-apps/b"]},
- mergelist = ['sys-libs/x-2', 'sys-apps/a-2', 'sys-apps/b-2',
- 'sys-apps/e-2'],
- ignore_mergelist_order = True,
- success = True),
-
- ResolverPlaygroundTestCase(
- ["=sys-libs/x-1-r1"],
- options = {"--rebuild-if-unbuilt" : True},
- mergelist = ['sys-libs/x-1-r1', 'sys-apps/a-2',
- 'sys-apps/b-2', 'sys-apps/e-2', 'sys-apps/g-2'],
- ignore_mergelist_order = True,
- success = True),
-
- ResolverPlaygroundTestCase(
- ["=sys-libs/x-1-r1"],
- options = {"--rebuild-if-new-rev" : True},
- mergelist = ['sys-libs/x-1-r1', 'sys-apps/a-2',
- 'sys-apps/b-2', 'sys-apps/e-2', 'sys-apps/g-2'],
- ignore_mergelist_order = True,
- success = True),
-
- ResolverPlaygroundTestCase(
- ["=sys-libs/x-1-r1"],
- options = {"--rebuild-if-new-ver" : True},
- mergelist = ['sys-libs/x-1-r1'],
- ignore_mergelist_order = True,
- success = True),
-
- ResolverPlaygroundTestCase(
- ["sys-libs/x"],
- options = {"--rebuild-if-new-ver" : True},
- mergelist = ['sys-libs/x-2', 'sys-apps/a-2',
- 'sys-apps/b-2', 'sys-apps/e-2', 'sys-apps/g-2'],
- ignore_mergelist_order = True,
- success = True),
-
- ResolverPlaygroundTestCase(
- ["=sys-libs/x-1"],
- options = {"--rebuild-if-new-rev" : True},
- mergelist = ['sys-libs/x-1'],
- ignore_mergelist_order = True,
- success = True),
-
- ResolverPlaygroundTestCase(
- ["=sys-libs/x-1"],
- options = {"--rebuild-if-unbuilt" : True},
- mergelist = ['sys-libs/x-1', 'sys-apps/a-2',
- 'sys-apps/b-2', 'sys-apps/e-2', 'sys-apps/g-2'],
- ignore_mergelist_order = True,
- success = True),
- )
-
- playground = ResolverPlayground(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.cleanup()
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_required_use.py b/portage_with_autodep/pym/portage/tests/resolver/test_required_use.py
deleted file mode 100644
index c8810fa..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_required_use.py
+++ /dev/null
@@ -1,114 +0,0 @@
-# Copyright 2010-2011 Gentoo Foundation
-# 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 RequiredUSETestCase(TestCase):
-
- def testRequiredUSE(self):
- """
- Only simple REQUIRED_USE values here. The parser is tested under in dep/testCheckRequiredUse
- """
-
- ebuilds = {
- "dev-libs/A-1" : {"EAPI": "4", "IUSE": "foo bar", "REQUIRED_USE": "|| ( foo bar )"},
- "dev-libs/A-2" : {"EAPI": "4", "IUSE": "foo +bar", "REQUIRED_USE": "|| ( foo bar )"},
- "dev-libs/A-3" : {"EAPI": "4", "IUSE": "+foo bar", "REQUIRED_USE": "|| ( foo bar )"},
- "dev-libs/A-4" : {"EAPI": "4", "IUSE": "+foo +bar", "REQUIRED_USE": "|| ( foo bar )"},
- "dev-libs/A-5" : {"EAPI": "4", "IUSE": "+foo +bar", "REQUIRED_USE": "|| ( )"},
-
- "dev-libs/B-1" : {"EAPI": "4", "IUSE": "foo bar", "REQUIRED_USE": "^^ ( foo bar )"},
- "dev-libs/B-2" : {"EAPI": "4", "IUSE": "foo +bar", "REQUIRED_USE": "^^ ( foo bar )"},
- "dev-libs/B-3" : {"EAPI": "4", "IUSE": "+foo bar", "REQUIRED_USE": "^^ ( foo bar )"},
- "dev-libs/B-4" : {"EAPI": "4", "IUSE": "+foo +bar", "REQUIRED_USE": "^^ ( foo bar )"},
- "dev-libs/B-5" : {"EAPI": "4", "IUSE": "+foo +bar", "REQUIRED_USE": "^^ ( )"},
-
- "dev-libs/C-1" : {"EAPI": "4", "IUSE": "+foo bar", "REQUIRED_USE": "foo? ( !bar )"},
- "dev-libs/C-2" : {"EAPI": "4", "IUSE": "+foo +bar", "REQUIRED_USE": "foo? ( !bar )"},
- "dev-libs/C-3" : {"EAPI": "4", "IUSE": "+foo +bar", "REQUIRED_USE": "foo? ( bar )"},
- "dev-libs/C-4" : {"EAPI": "4", "IUSE": "+foo bar", "REQUIRED_USE": "foo? ( bar )"},
- "dev-libs/C-5" : {"EAPI": "4", "IUSE": "foo bar", "REQUIRED_USE": "foo? ( bar )"},
- "dev-libs/C-6" : {"EAPI": "4", "IUSE": "foo +bar", "REQUIRED_USE": "foo? ( bar )"},
- "dev-libs/C-7" : {"EAPI": "4", "IUSE": "foo +bar", "REQUIRED_USE": "!foo? ( bar )"},
- "dev-libs/C-8" : {"EAPI": "4", "IUSE": "+foo +bar", "REQUIRED_USE": "!foo? ( bar )"},
- "dev-libs/C-9" : {"EAPI": "4", "IUSE": "+foo bar", "REQUIRED_USE": "!foo? ( bar )"},
- "dev-libs/C-10": {"EAPI": "4", "IUSE": "foo bar", "REQUIRED_USE": "!foo? ( bar )"},
- "dev-libs/C-11": {"EAPI": "4", "IUSE": "foo bar", "REQUIRED_USE": "!foo? ( !bar )"},
- "dev-libs/C-12": {"EAPI": "4", "IUSE": "foo +bar", "REQUIRED_USE": "!foo? ( !bar )"},
- "dev-libs/C-13": {"EAPI": "4", "IUSE": "+foo +bar", "REQUIRED_USE": "!foo? ( !bar )"},
- "dev-libs/C-14": {"EAPI": "4", "IUSE": "+foo bar", "REQUIRED_USE": "!foo? ( !bar )"},
-
- "dev-libs/D-1" : {"EAPI": "4", "IUSE": "+w +x +y z", "REQUIRED_USE": "w? ( x || ( y z ) )"},
- "dev-libs/D-2" : {"EAPI": "4", "IUSE": "+w +x +y +z", "REQUIRED_USE": "w? ( x || ( y z ) )"},
- "dev-libs/D-3" : {"EAPI": "4", "IUSE": "+w +x y z", "REQUIRED_USE": "w? ( x || ( y z ) )"},
- "dev-libs/D-4" : {"EAPI": "4", "IUSE": "+w x +y +z", "REQUIRED_USE": "w? ( x || ( y z ) )"},
- "dev-libs/D-5" : {"EAPI": "4", "IUSE": "w x y z", "REQUIRED_USE": "w? ( x || ( y z ) )"},
- }
-
- test_cases = (
- ResolverPlaygroundTestCase(["=dev-libs/A-1"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/A-2"], success = True, mergelist=["dev-libs/A-2"]),
- ResolverPlaygroundTestCase(["=dev-libs/A-3"], success = True, mergelist=["dev-libs/A-3"]),
- ResolverPlaygroundTestCase(["=dev-libs/A-4"], success = True, mergelist=["dev-libs/A-4"]),
- ResolverPlaygroundTestCase(["=dev-libs/A-5"], success = True, mergelist=["dev-libs/A-5"]),
-
- ResolverPlaygroundTestCase(["=dev-libs/B-1"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/B-2"], success = True, mergelist=["dev-libs/B-2"]),
- ResolverPlaygroundTestCase(["=dev-libs/B-3"], success = True, mergelist=["dev-libs/B-3"]),
- ResolverPlaygroundTestCase(["=dev-libs/B-4"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/B-5"], success = True, mergelist=["dev-libs/B-5"]),
-
- ResolverPlaygroundTestCase(["=dev-libs/C-1"], success = True, mergelist=["dev-libs/C-1"]),
- ResolverPlaygroundTestCase(["=dev-libs/C-2"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/C-3"], success = True, mergelist=["dev-libs/C-3"]),
- ResolverPlaygroundTestCase(["=dev-libs/C-4"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/C-5"], success = True, mergelist=["dev-libs/C-5"]),
- ResolverPlaygroundTestCase(["=dev-libs/C-6"], success = True, mergelist=["dev-libs/C-6"]),
- ResolverPlaygroundTestCase(["=dev-libs/C-7"], success = True, mergelist=["dev-libs/C-7"]),
- ResolverPlaygroundTestCase(["=dev-libs/C-8"], success = True, mergelist=["dev-libs/C-8"]),
- ResolverPlaygroundTestCase(["=dev-libs/C-9"], success = True, mergelist=["dev-libs/C-9"]),
- ResolverPlaygroundTestCase(["=dev-libs/C-10"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/C-11"], success = True, mergelist=["dev-libs/C-11"]),
- ResolverPlaygroundTestCase(["=dev-libs/C-12"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/C-13"], success = True, mergelist=["dev-libs/C-13"]),
- ResolverPlaygroundTestCase(["=dev-libs/C-14"], success = True, mergelist=["dev-libs/C-14"]),
-
- ResolverPlaygroundTestCase(["=dev-libs/D-1"], success = True, mergelist=["dev-libs/D-1"]),
- ResolverPlaygroundTestCase(["=dev-libs/D-2"], success = True, mergelist=["dev-libs/D-2"]),
- ResolverPlaygroundTestCase(["=dev-libs/D-3"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/D-4"], success = False),
- ResolverPlaygroundTestCase(["=dev-libs/D-5"], success = True, mergelist=["dev-libs/D-5"]),
- )
-
- playground = ResolverPlayground(ebuilds=ebuilds)
- 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.cleanup()
-
- def testRequiredUseOrDeps(self):
-
- ebuilds = {
- "dev-libs/A-1": { "IUSE": "+x +y", "REQUIRED_USE": "^^ ( x y )", "EAPI": "4" },
- "dev-libs/B-1": { "IUSE": "+x +y", "REQUIRED_USE": "", "EAPI": "4" },
- "app-misc/p-1": { "RDEPEND": "|| ( =dev-libs/A-1 =dev-libs/B-1 )" },
- }
-
- test_cases = (
- # This should fail and show a REQUIRED_USE error for
- # dev-libs/A-1, since this choice it preferred.
- ResolverPlaygroundTestCase(
- ["=app-misc/p-1"],
- success = False),
- )
-
- playground = ResolverPlayground(ebuilds=ebuilds)
- 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.cleanup()
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_simple.py b/portage_with_autodep/pym/portage/tests/resolver/test_simple.py
deleted file mode 100644
index 0bcfc4b..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_simple.py
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 2010-2011 Gentoo Foundation
-# 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 SimpleResolverTestCase(TestCase):
-
- def testSimple(self):
- ebuilds = {
- "dev-libs/A-1": { "KEYWORDS": "x86" },
- "dev-libs/A-2": { "KEYWORDS": "~x86" },
- "dev-libs/B-1.2": {},
-
- "app-misc/Z-1": { "DEPEND": "|| ( app-misc/Y ( app-misc/X app-misc/W ) )", "RDEPEND": "" },
- "app-misc/Y-1": { "KEYWORDS": "~x86" },
- "app-misc/X-1": {},
- "app-misc/W-1": {},
- }
- installed = {
- "dev-libs/A-1": {},
- "dev-libs/B-1.1": {},
- }
-
- test_cases = (
- ResolverPlaygroundTestCase(["dev-libs/A"], success = True, mergelist = ["dev-libs/A-1"]),
- ResolverPlaygroundTestCase(["=dev-libs/A-2"], options = { "--autounmask": 'n' }, success = False),
-
- ResolverPlaygroundTestCase(
- ["dev-libs/A"],
- options = {"--noreplace": True},
- success = True,
- mergelist = []),
- ResolverPlaygroundTestCase(
- ["dev-libs/B"],
- options = {"--noreplace": True},
- success = True,
- mergelist = []),
- ResolverPlaygroundTestCase(
- ["dev-libs/B"],
- options = {"--update": True},
- success = True,
- mergelist = ["dev-libs/B-1.2"]),
-
- ResolverPlaygroundTestCase(
- ["app-misc/Z"],
- success = True,
- mergelist = ["app-misc/W-1", "app-misc/X-1", "app-misc/Z-1"]),
- )
-
- playground = ResolverPlayground(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.cleanup()
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_slot_collisions.py b/portage_with_autodep/pym/portage/tests/resolver/test_slot_collisions.py
deleted file mode 100644
index 4867cea..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_slot_collisions.py
+++ /dev/null
@@ -1,143 +0,0 @@
-# Copyright 2010-2011 Gentoo Foundation
-# 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 SlotCollisionTestCase(TestCase):
-
- def testSlotCollision(self):
-
- ebuilds = {
- "dev-libs/A-1": { "PDEPEND": "foo? ( dev-libs/B )", "IUSE": "foo" },
- "dev-libs/B-1": { "IUSE": "foo" },
- "dev-libs/C-1": { "DEPEND": "dev-libs/A[foo]", "EAPI": 2 },
- "dev-libs/D-1": { "DEPEND": "dev-libs/A[foo=] dev-libs/B[foo=]", "IUSE": "foo", "EAPI": 2 },
- "dev-libs/E-1": { },
- "dev-libs/E-2": { "IUSE": "foo" },
-
- "app-misc/Z-1": { },
- "app-misc/Z-2": { },
- "app-misc/Y-1": { "DEPEND": "=app-misc/Z-1" },
- "app-misc/Y-2": { "DEPEND": ">app-misc/Z-1" },
- "app-misc/X-1": { "DEPEND": "=app-misc/Z-2" },
- "app-misc/X-2": { "DEPEND": "<app-misc/Z-2" },
-
- "sci-libs/K-1": { "IUSE": "+foo", "EAPI": 1 },
- "sci-libs/L-1": { "DEPEND": "sci-libs/K[-foo]", "EAPI": 2 },
- "sci-libs/M-1": { "DEPEND": "sci-libs/K[foo=]", "IUSE": "+foo", "EAPI": 2 },
-
- "sci-libs/Q-1": { "SLOT": "1", "IUSE": "+bar foo", "EAPI": 1 },
- "sci-libs/Q-2": { "SLOT": "2", "IUSE": "+bar +foo", "EAPI": 2, "PDEPEND": "sci-libs/Q:1[bar?,foo?]" },
- "sci-libs/P-1": { "DEPEND": "sci-libs/Q:1[foo=]", "IUSE": "foo", "EAPI": 2 },
-
- "sys-libs/A-1": { "RDEPEND": "foo? ( sys-libs/J[foo=] )", "IUSE": "+foo", "EAPI": "4" },
- "sys-libs/B-1": { "RDEPEND": "bar? ( sys-libs/J[bar=] )", "IUSE": "+bar", "EAPI": "4" },
- "sys-libs/C-1": { "RDEPEND": "sys-libs/J[bar]", "EAPI": "4" },
- "sys-libs/D-1": { "RDEPEND": "sys-libs/J[bar?]", "IUSE": "bar", "EAPI": "4" },
- "sys-libs/E-1": { "RDEPEND": "sys-libs/J[foo(+)?]", "IUSE": "+foo", "EAPI": "4" },
- "sys-libs/F-1": { "RDEPEND": "sys-libs/J[foo(+)]", "EAPI": "4" },
- "sys-libs/J-1": { "IUSE": "+foo", "EAPI": "4" },
- "sys-libs/J-2": { "IUSE": "+bar", "EAPI": "4" },
-
- "app-misc/A-1": { "IUSE": "foo +bar", "REQUIRED_USE": "^^ ( foo bar )", "EAPI": "4" },
- "app-misc/B-1": { "DEPEND": "=app-misc/A-1[foo=]", "IUSE": "foo", "EAPI": 2 },
- "app-misc/C-1": { "DEPEND": "=app-misc/A-1[foo]", "EAPI": 2 },
- "app-misc/E-1": { "RDEPEND": "dev-libs/E[foo?]", "IUSE": "foo", "EAPI": "2" },
- "app-misc/F-1": { "RDEPEND": "=dev-libs/E-1", "IUSE": "foo", "EAPI": "2" },
- }
- installed = {
- "dev-libs/A-1": { "PDEPEND": "foo? ( dev-libs/B )", "IUSE": "foo", "USE": "foo" },
- "dev-libs/B-1": { "IUSE": "foo", "USE": "foo" },
- "dev-libs/C-1": { "DEPEND": "dev-libs/A[foo]", "EAPI": 2 },
- "dev-libs/D-1": { "DEPEND": "dev-libs/A[foo=] dev-libs/B[foo=]", "IUSE": "foo", "USE": "foo", "EAPI": 2 },
-
- "sci-libs/K-1": { "IUSE": "foo", "USE": "" },
- "sci-libs/L-1": { "DEPEND": "sci-libs/K[-foo]" },
-
- "sci-libs/Q-1": { "SLOT": "1", "IUSE": "+bar +foo", "USE": "bar foo", "EAPI": 1 },
- "sci-libs/Q-2": { "SLOT": "2", "IUSE": "+bar +foo", "USE": "bar foo", "EAPI": 2, "PDEPEND": "sci-libs/Q:1[bar?,foo?]" },
-
- "app-misc/A-1": { "IUSE": "+foo bar", "USE": "foo", "REQUIRED_USE": "^^ ( foo bar )", "EAPI": "4" },
- }
-
- test_cases = (
- #A qt-*[qt3support] like mess.
- ResolverPlaygroundTestCase(
- ["dev-libs/A", "dev-libs/B", "dev-libs/C", "dev-libs/D"],
- options = { "--autounmask": 'n' },
- success = False,
- mergelist = ["dev-libs/A-1", "dev-libs/B-1", "dev-libs/C-1", "dev-libs/D-1"],
- ignore_mergelist_order = True,
- slot_collision_solutions = [ {"dev-libs/A-1": {"foo": True}, "dev-libs/D-1": {"foo": True}} ]),
-
- ResolverPlaygroundTestCase(
- ["sys-libs/A", "sys-libs/B", "sys-libs/C", "sys-libs/D", "sys-libs/E", "sys-libs/F"],
- options = { "--autounmask": 'n' },
- success = False,
- ignore_mergelist_order = True,
- slot_collision_solutions = [],
- mergelist = ['sys-libs/J-2', 'sys-libs/J-1', 'sys-libs/A-1', 'sys-libs/B-1', 'sys-libs/C-1', 'sys-libs/D-1', 'sys-libs/E-1', 'sys-libs/F-1'],
- ),
-
- #A version based conflicts, nothing we can do.
- ResolverPlaygroundTestCase(
- ["=app-misc/X-1", "=app-misc/Y-1"],
- success = False,
- mergelist = ["app-misc/Z-1", "app-misc/Z-2", "app-misc/X-1", "app-misc/Y-1"],
- ignore_mergelist_order = True,
- slot_collision_solutions = []
- ),
- ResolverPlaygroundTestCase(
- ["=app-misc/X-2", "=app-misc/Y-2"],
- success = False,
- mergelist = ["app-misc/Z-1", "app-misc/Z-2", "app-misc/X-2", "app-misc/Y-2"],
- ignore_mergelist_order = True,
- slot_collision_solutions = []
- ),
-
- ResolverPlaygroundTestCase(
- ["=app-misc/E-1", "=app-misc/F-1"],
- success = False,
- mergelist = ["dev-libs/E-1", "dev-libs/E-2", "app-misc/E-1", "app-misc/F-1"],
- ignore_mergelist_order = True,
- slot_collision_solutions = []
- ),
-
- #Simple cases.
- ResolverPlaygroundTestCase(
- ["sci-libs/L", "sci-libs/M"],
- success = False,
- mergelist = ["sci-libs/L-1", "sci-libs/M-1", "sci-libs/K-1"],
- ignore_mergelist_order = True,
- slot_collision_solutions = [{"sci-libs/K-1": {"foo": False}, "sci-libs/M-1": {"foo": False}}]
- ),
-
- #Avoid duplicates.
- ResolverPlaygroundTestCase(
- ["sci-libs/P", "sci-libs/Q:2"],
- success = False,
- options = { "--update": True, "--complete-graph": True, "--autounmask": 'n' },
- mergelist = ["sci-libs/P-1", "sci-libs/Q-1"],
- ignore_mergelist_order = True,
- all_permutations=True,
- slot_collision_solutions = [{"sci-libs/Q-1": {"foo": True}, "sci-libs/P-1": {"foo": True}}]
- ),
-
- #Conflict with REQUIRED_USE
- ResolverPlaygroundTestCase(
- ["=app-misc/C-1", "=app-misc/B-1"],
- all_permutations = True,
- slot_collision_solutions = [],
- mergelist = ["app-misc/A-1", "app-misc/C-1", "app-misc/B-1"],
- ignore_mergelist_order = True,
- success = False),
- )
-
- playground = ResolverPlayground(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.cleanup()
diff --git a/portage_with_autodep/pym/portage/tests/resolver/test_use_dep_defaults.py b/portage_with_autodep/pym/portage/tests/resolver/test_use_dep_defaults.py
deleted file mode 100644
index 7d17106..0000000
--- a/portage_with_autodep/pym/portage/tests/resolver/test_use_dep_defaults.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2010 Gentoo Foundation
-# 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 UseDepDefaultsTestCase(TestCase):
-
- def testUseDepDefaultse(self):
-
- ebuilds = {
- "dev-libs/A-1": { "DEPEND": "dev-libs/B[foo]", "RDEPEND": "dev-libs/B[foo]", "EAPI": "2" },
- "dev-libs/A-2": { "DEPEND": "dev-libs/B[foo(+)]", "RDEPEND": "dev-libs/B[foo(+)]", "EAPI": "4" },
- "dev-libs/A-3": { "DEPEND": "dev-libs/B[foo(-)]", "RDEPEND": "dev-libs/B[foo(-)]", "EAPI": "4" },
- "dev-libs/B-1": { "IUSE": "+foo", "EAPI": "1" },
- "dev-libs/B-2": {},
- }
-
- test_cases = (
- ResolverPlaygroundTestCase(
- ["=dev-libs/A-1"],
- success = True,
- mergelist = ["dev-libs/B-1", "dev-libs/A-1"]),
- ResolverPlaygroundTestCase(
- ["=dev-libs/A-2"],
- success = True,
- mergelist = ["dev-libs/B-2", "dev-libs/A-2"]),
- ResolverPlaygroundTestCase(
- ["=dev-libs/A-3"],
- success = True,
- mergelist = ["dev-libs/B-1", "dev-libs/A-3"]),
- )
-
- playground = ResolverPlayground(ebuilds=ebuilds)
- 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.cleanup()