From 85bcec56e8de9f060db90d369689f0ff1db634d8 Mon Sep 17 00:00:00 2001 From: Sebastian Luther Date: Mon, 2 Dec 2013 07:22:26 +0100 Subject: [PATCH] first try on bug 492932 --- .../package/ebuild/_config/LocationsManager.py | 2 +- pym/portage/tests/emerge/test_simple.py | 168 +++++++++++---------- 2 files changed, 87 insertions(+), 83 deletions(-) diff --git a/pym/portage/package/ebuild/_config/LocationsManager.py b/pym/portage/package/ebuild/_config/LocationsManager.py index 80b6a70..ddc3997 100644 --- a/pym/portage/package/ebuild/_config/LocationsManager.py +++ b/pym/portage/package/ebuild/_config/LocationsManager.py @@ -55,7 +55,7 @@ class LocationsManager(object): self.eprefix = "" if self.config_root is None: - self.config_root = portage.const.EPREFIX + os.sep + self.config_root = self.eprefix + os.sep self.config_root = normalize_path(os.path.abspath( self.config_root)).rstrip(os.path.sep) + os.path.sep diff --git a/pym/portage/tests/emerge/test_simple.py b/pym/portage/tests/emerge/test_simple.py index ad02384..45bb7e1 100644 --- a/pym/portage/tests/emerge/test_simple.py +++ b/pym/portage/tests/emerge/test_simple.py @@ -26,7 +26,7 @@ class SimpleEmergeTestCase(TestCase): def testSimple(self): - debug = False + debug = True install_something = """ S="${WORKDIR}" @@ -214,88 +214,88 @@ pkg_preinst() { cross_prefix = os.path.join(eprefix, "cross_prefix") test_commands = ( - env_update_cmd, - portageq_cmd + ("envvar", "-v", "CONFIG_PROTECT", "EROOT", - "PORTAGE_CONFIGROOT", "PORTAGE_TMPDIR", "USERLAND"), - etc_update_cmd, - dispatch_conf_cmd, - emerge_cmd + ("--version",), - emerge_cmd + ("--info",), - emerge_cmd + ("--info", "--verbose"), - emerge_cmd + ("--list-sets",), - emerge_cmd + ("--check-news",), - rm_cmd + ("-rf", cachedir), - rm_cmd + ("-rf", cachedir_pregen), - emerge_cmd + ("--regen",), - rm_cmd + ("-rf", cachedir), - ({"FEATURES" : "metadata-transfer"},) + \ - emerge_cmd + ("--regen",), - rm_cmd + ("-rf", cachedir), - ({"FEATURES" : "metadata-transfer"},) + \ - emerge_cmd + ("--regen",), - rm_cmd + ("-rf", cachedir), - egencache_cmd + ("--update",) + tuple(egencache_extra_args), - ({"FEATURES" : "metadata-transfer"},) + \ - emerge_cmd + ("--metadata",), - rm_cmd + ("-rf", cachedir), - ({"FEATURES" : "metadata-transfer"},) + \ - emerge_cmd + ("--metadata",), - emerge_cmd + ("--metadata",), - rm_cmd + ("-rf", cachedir), - emerge_cmd + ("--oneshot", "virtual/foo"), - emerge_cmd + ("--pretend", "dev-libs/A"), - ebuild_cmd + (test_ebuild, "manifest", "clean", "package", "merge"), - emerge_cmd + ("--pretend", "--tree", "--complete-graph", "dev-libs/A"), - emerge_cmd + ("-p", "dev-libs/B"), - emerge_cmd + ("-B", "dev-libs/B",), - emerge_cmd + ("--oneshot", "--usepkg", "dev-libs/B",), - - # trigger clean prior to pkg_pretend as in bug #390711 - ebuild_cmd + (test_ebuild, "unpack"), - emerge_cmd + ("--oneshot", "dev-libs/A",), - - emerge_cmd + ("--noreplace", "dev-libs/A",), - emerge_cmd + ("--config", "dev-libs/A",), - emerge_cmd + ("--info", "dev-libs/A", "dev-libs/B"), - emerge_cmd + ("--pretend", "--depclean", "--verbose", "dev-libs/B"), - emerge_cmd + ("--pretend", "--depclean",), - emerge_cmd + ("--depclean",), - quickpkg_cmd + ("dev-libs/A",), - emerge_cmd + ("--usepkgonly", "dev-libs/A"), - emaint_cmd + ("--check", "all"), - emaint_cmd + ("--fix", "all"), - fixpackages_cmd, - regenworld_cmd, - portageq_cmd + ("match", eroot, "dev-libs/A"), - portageq_cmd + ("best_visible", eroot, "dev-libs/A"), - portageq_cmd + ("best_visible", eroot, "binary", "dev-libs/A"), - portageq_cmd + ("contents", eroot, "dev-libs/A-1"), - portageq_cmd + ("metadata", eroot, "ebuild", "dev-libs/A-1", "EAPI", "IUSE", "RDEPEND"), - portageq_cmd + ("metadata", eroot, "binary", "dev-libs/A-1", "EAPI", "USE", "RDEPEND"), - portageq_cmd + ("metadata", eroot, "installed", "dev-libs/A-1", "EAPI", "USE", "RDEPEND"), - portageq_cmd + ("owners", eroot, eroot + "usr"), - emerge_cmd + ("-p", eroot + "usr"), - emerge_cmd + ("-p", "--unmerge", "-q", eroot + "usr"), - emerge_cmd + ("--unmerge", "--quiet", "dev-libs/A"), - emerge_cmd + ("-C", "--quiet", "dev-libs/B"), + #~ env_update_cmd, + #~ portageq_cmd + ("envvar", "-v", "CONFIG_PROTECT", "EROOT", + #~ "PORTAGE_CONFIGROOT", "PORTAGE_TMPDIR", "USERLAND"), + #~ etc_update_cmd, + #~ dispatch_conf_cmd, + #~ emerge_cmd + ("--version",), + #~ emerge_cmd + ("--info",), + #~ emerge_cmd + ("--info", "--verbose"), + #~ emerge_cmd + ("--list-sets",), + #~ emerge_cmd + ("--check-news",), + #~ rm_cmd + ("-rf", cachedir), + #~ rm_cmd + ("-rf", cachedir_pregen), + #~ emerge_cmd + ("--regen",), + #~ rm_cmd + ("-rf", cachedir), + #~ ({"FEATURES" : "metadata-transfer"},) + \ + #~ emerge_cmd + ("--regen",), + #~ rm_cmd + ("-rf", cachedir), + #~ ({"FEATURES" : "metadata-transfer"},) + \ + #~ emerge_cmd + ("--regen",), + #~ rm_cmd + ("-rf", cachedir), + #~ egencache_cmd + ("--update",) + tuple(egencache_extra_args), + #~ ({"FEATURES" : "metadata-transfer"},) + \ + #~ emerge_cmd + ("--metadata",), + #~ rm_cmd + ("-rf", cachedir), + #~ ({"FEATURES" : "metadata-transfer"},) + \ + #~ emerge_cmd + ("--metadata",), + #~ emerge_cmd + ("--metadata",), + #~ rm_cmd + ("-rf", cachedir), + #~ emerge_cmd + ("--oneshot", "virtual/foo"), + #~ emerge_cmd + ("--pretend", "dev-libs/A"), + #~ ebuild_cmd + (test_ebuild, "manifest", "clean", "package", "merge"), + #~ emerge_cmd + ("--pretend", "--tree", "--complete-graph", "dev-libs/A"), + #~ emerge_cmd + ("-p", "dev-libs/B"), + #~ emerge_cmd + ("-B", "dev-libs/B",), + #~ emerge_cmd + ("--oneshot", "--usepkg", "dev-libs/B",), +#~ + #~ # trigger clean prior to pkg_pretend as in bug #390711 + #~ ebuild_cmd + (test_ebuild, "unpack"), + #~ emerge_cmd + ("--oneshot", "dev-libs/A",), +#~ + #~ emerge_cmd + ("--noreplace", "dev-libs/A",), + #~ emerge_cmd + ("--config", "dev-libs/A",), + #~ emerge_cmd + ("--info", "dev-libs/A", "dev-libs/B"), + #~ emerge_cmd + ("--pretend", "--depclean", "--verbose", "dev-libs/B"), + #~ emerge_cmd + ("--pretend", "--depclean",), + #~ emerge_cmd + ("--depclean",), + #~ quickpkg_cmd + ("dev-libs/A",), + #~ emerge_cmd + ("--usepkgonly", "dev-libs/A"), + #~ emaint_cmd + ("--check", "all"), + #~ emaint_cmd + ("--fix", "all"), + #~ fixpackages_cmd, + #~ regenworld_cmd, + #~ portageq_cmd + ("match", eroot, "dev-libs/A"), + #~ portageq_cmd + ("best_visible", eroot, "dev-libs/A"), + #~ portageq_cmd + ("best_visible", eroot, "binary", "dev-libs/A"), + #~ portageq_cmd + ("contents", eroot, "dev-libs/A-1"), + #~ portageq_cmd + ("metadata", eroot, "ebuild", "dev-libs/A-1", "EAPI", "IUSE", "RDEPEND"), + #~ portageq_cmd + ("metadata", eroot, "binary", "dev-libs/A-1", "EAPI", "USE", "RDEPEND"), + #~ portageq_cmd + ("metadata", eroot, "installed", "dev-libs/A-1", "EAPI", "USE", "RDEPEND"), + #~ portageq_cmd + ("owners", eroot, eroot + "usr"), + #~ emerge_cmd + ("-p", eroot + "usr"), + #~ emerge_cmd + ("-p", "--unmerge", "-q", eroot + "usr"), + #~ emerge_cmd + ("--unmerge", "--quiet", "dev-libs/A"), + #~ emerge_cmd + ("-C", "--quiet", "dev-libs/B"), # Test cross-prefix usage, including chpathtool for binpkgs. ({"EPREFIX" : cross_prefix},) + \ emerge_cmd + ("--usepkgonly", "dev-libs/A"), - ({"EPREFIX" : cross_prefix},) + \ - portageq_cmd + ("has_version", cross_prefix, "dev-libs/A"), - ({"EPREFIX" : cross_prefix},) + \ - portageq_cmd + ("has_version", cross_prefix, "dev-libs/B"), - ({"EPREFIX" : cross_prefix},) + \ - emerge_cmd + ("-C", "--quiet", "dev-libs/B"), - ({"EPREFIX" : cross_prefix},) + \ - emerge_cmd + ("-C", "--quiet", "dev-libs/A"), - ({"EPREFIX" : cross_prefix},) + \ - emerge_cmd + ("dev-libs/A",), - ({"EPREFIX" : cross_prefix},) + \ - portageq_cmd + ("has_version", cross_prefix, "dev-libs/A"), - ({"EPREFIX" : cross_prefix},) + \ - portageq_cmd + ("has_version", cross_prefix, "dev-libs/B"), + #({"EPREFIX" : cross_prefix},) + \ + # portageq_cmd + ("has_version", cross_prefix, "dev-libs/A"), + #({"EPREFIX" : cross_prefix},) + \ + # portageq_cmd + ("has_version", cross_prefix, "dev-libs/B"), + #({"EPREFIX" : cross_prefix},) + \ + # emerge_cmd + ("-C", "--quiet", "dev-libs/B"), + #({"EPREFIX" : cross_prefix},) + \ + # emerge_cmd + ("-C", "--quiet", "dev-libs/A"), + #({"EPREFIX" : cross_prefix},) + \ + # emerge_cmd + ("dev-libs/A",), + #({"EPREFIX" : cross_prefix},) + \ + # portageq_cmd + ("has_version", cross_prefix, "dev-libs/A"), + #({"EPREFIX" : cross_prefix},) + \ + # portageq_cmd + ("has_version", cross_prefix, "dev-libs/B"), ) distdir = playground.distdir @@ -304,6 +304,7 @@ pkg_preinst() { portage_tmpdir = os.path.join(eprefix, "var", "tmp", "portage") profile_path = settings.profile_path user_config_dir = os.path.join(os.sep, eprefix, USER_CONFIG_PATH) + cross_prefix_user_config_dir = os.path.join(cross_prefix, USER_CONFIG_PATH) path = os.environ.get("PATH") if path is not None and not path.strip(): @@ -350,8 +351,8 @@ pkg_preinst() { os.environ["__PORTAGE_TEST_HARDLINK_LOCKS"] updates_dir = os.path.join(test_repo_location, "profiles", "updates") - dirs = [cachedir, cachedir_pregen, distdir, fake_bin, - portage_tmpdir, updates_dir, + dirs = [cachedir, cachedir_pregen, cross_prefix, cross_prefix_user_config_dir, + distdir, fake_bin, portage_tmpdir, updates_dir, user_config_dir, var_cache_edb] etc_symlinks = ("dispatch-conf.conf", "etc-update.conf") # Override things that may be unavailable, or may have portability @@ -382,6 +383,8 @@ pkg_preinst() { slotmove =app-doc/pms-3 2 3 move dev-util/git dev-vcs/git """) + os.symlink(os.path.join(test_repo_location, "profiles", "default", "linux", + "x86", "test_profile"), os.path.join(cross_prefix, "etc", "portage", "make.profile")) if debug: # The subprocess inherits both stdout and stderr, for @@ -417,4 +420,5 @@ move dev-util/git dev-vcs/git self.assertEqual(os.EX_OK, proc.returncode, "emerge failed with args %s" % (args,)) finally: - playground.cleanup() + #playground.cleanup() + pass -- 1.8.3.2