summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-12-12 08:53:42 +0000
committerZac Medico <zmedico@gentoo.org>2008-12-12 08:53:42 +0000
commit7cdfd9ddd425ecd357bfa2138b5ee1bc2e2983ef (patch)
treee27dd6de395d21978f220aad5e4d2a5f6adc7019 /pym
parent006a77cbca947a09f3fe1054ff260dcb6ed61b93 (diff)
downloadportage-7cdfd9ddd425ecd357bfa2138b5ee1bc2e2983ef.tar.gz
portage-7cdfd9ddd425ecd357bfa2138b5ee1bc2e2983ef.tar.bz2
portage-7cdfd9ddd425ecd357bfa2138b5ee1bc2e2983ef.zip
Add a new FEATURES=test-fail-continue value which causes ebuild execution
to continue after the test phase has failed. Thanks to Diego Pettenò <flameeyes@g.o> for the suggestion. svn path=/main/trunk/; revision=12214
Diffstat (limited to 'pym')
-rw-r--r--pym/_emerge/__init__.py4
-rw-r--r--pym/portage/__init__.py5
2 files changed, 9 insertions, 0 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index eb1bd3b7a..3f16150e4 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -2927,6 +2927,10 @@ class EbuildProcess(SpawnProcess):
self.returncode = portage._doebuild_exit_status_check_and_log(
self.settings, self.phase, self.returncode)
+ if self.phase == "test" and self.returncode != os.EX_OK and \
+ "test-fail-continue" in self.settings.features:
+ self.returncode = os.EX_OK
+
portage._post_phase_userpriv_perms(self.settings)
class EbuildPhase(CompositeTask):
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index cf966195a..fc42bd3af 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -4503,6 +4503,11 @@ def spawnebuild(mydo, actionmap, mysettings, debug, alwaysdep=0,
_check_build_log(mysettings)
if phase_retval == os.EX_OK:
phase_retval = _post_src_install_checks(mysettings)
+
+ if mydo == "test" and phase_retval != os.EX_OK and \
+ "test-fail-continue" in mysettings.features:
+ phase_retval = os.EX_OK
+
return phase_retval
_post_phase_cmds = {