public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: dilfridge@gentoo.org
To: gentoo-dev@lists.gentoo.org
Cc: "Andreas K. Hüttel" <dilfridge@gentoo.org>
Subject: [gentoo-dev] [PATCH 14/15] perl-module.eclass: Rewrite src_test for EAPI=6
Date: Fri, 11 Dec 2015 22:03:10 +0100	[thread overview]
Message-ID: <1449867791-30513-14-git-send-email-dilfridge@gentoo.org> (raw)
In-Reply-To: <1449867791-30513-1-git-send-email-dilfridge@gentoo.org>

From: Andreas K. Hüttel <dilfridge@gentoo.org>

---
 eclass/perl-module.eclass | 65 ++++++++++++++++++++++++++++++++---------------
 1 file changed, 45 insertions(+), 20 deletions(-)

diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass
index faa8a34..c174d5f 100644
--- a/eclass/perl-module.eclass
+++ b/eclass/perl-module.eclass
@@ -314,13 +314,14 @@ perl-module_src_compile() {
 # @DESCRIPTION:
 # (EAPI=6) Variable that controls if tests are run in the test phase
 # at all, and if yes under which conditions. Defaults to "do parallel"
-# In EAPI=5 the variable is called SRC_TEST and defaults to "skip".
-# All of the following have been tested to work:
-#  DIST_TEST="do parallel"
-#  DIST_TEST="parallel"
-#  DIST_TEST="parallel do"
-#  DIST_TEST=parallel
-#  DIST_TEST=skip
+# If neither "do" nor "parallel" is recognized, tests are skipped.
+# (In EAPI=5 the variable is called SRC_TEST, defaults to "skip", and
+# recognizes fewer options.)
+# The following space-separated keywords are recognized:
+#   do       : run tests
+#   parallel : run tests in parallel
+#   verbose  : increase test verbosity
+#   network  : do not try to disable network tests
 
 # @ECLASS-VARIABLE: DIST_TEST_OVERRIDE
 # @DESCRIPTION:
@@ -333,33 +334,57 @@ perl-module_src_compile() {
 # @FUNCTION: perl-module_src-test
 # @USAGE: perl-module_src_test()
 # @DESCRIPTION:
-# This code attempts to work out your threadingness from MAKEOPTS
-# and apply them to Test::Harness.
-#
-# If you want more verbose testing, set TEST_VERBOSE=1
-# in your bashrc | /etc/portage/make.conf | ENV
+# This code attempts to work out your threadingness and runs tests
+# according to the settings of DIST_TEST using Test::Harness.
 perl-module_src_test() {
 	debug-print-function $FUNCNAME "$@"
 	local my_test_control
+	local my_test_verbose
+
 	if [[ ${EAPI:-0} = 5 ]] ; then
 		my_test_control=${SRC_TEST}
+		my_test_verbose=${TEST_VERBOSE:-0}
+		if has 'do' ${my_test_control} || has 'parallel' ${my_test_control} ; then
+			if has "${my_test_verbose}" 0 && has 'parallel' ${my_test_control} ; then
+				export HARNESS_OPTIONS=j$(makeopts_jobs)
+				einfo "Test::Harness Jobs=$(makeopts_jobs)"
+			fi
+		else
+			einfo Skipping tests due to SRC_TEST=${SRC_TEST}
+			return 0
+		fi
 	else
 		[[ -n "${DIST_TEST_OVERRIDE}" ]] && ewarn DIST_TEST_OVERRIDE is set to ${DIST_TEST_OVERRIDE}
 		my_test_control=${DIST_TEST_OVERRIDE:-${DIST_TEST:-do parallel}}
-	fi
 
-	if has 'do' ${my_test_control} || has 'parallel' ${my_test_control} ; then
-		if has "${TEST_VERBOSE:-0}" 0 && has 'parallel' ${my_test_control} ; then
+		if ! has 'do' ${my_test_control} && ! has 'parallel' ${my_test_control} ; then
+			einfo Skipping tests due to DIST_TEST=${my_test_control}
+			return 0
+		fi
+
+		if has verbose ${my_test_control} ; then
+			my_test_verbose=1
+		else
+			my_test_verbose=0
+		fi
+
+		if has parallel ${my_test_control} ; then
 			export HARNESS_OPTIONS=j$(makeopts_jobs)
 			einfo "Test::Harness Jobs=$(makeopts_jobs)"
 		fi
-		perl_set_version
-		if [[ -f Build ]] ; then
-			./Build test verbose=${TEST_VERBOSE:-0} || die "test failed"
-		elif [[ -f Makefile ]] ; then
-			emake test TEST_VERBOSE=${TEST_VERBOSE:-0} || die "test failed"
+
+		# this might sometimes work...
+		if ! has network ${my_test_control} ; then
+			export NO_NETWORK_TESTING=1
 		fi
 	fi
+
+	perl_set_version
+	if [[ -f Build ]] ; then
+		./Build test verbose=${my_test_verbose} || die "test failed"
+	elif [[ -f Makefile ]] ; then
+		emake test TEST_VERBOSE=${my_test_verbose} || die "test failed"
+	fi
 }
 
 # @FUNCTION: perl-module_src_install
-- 
2.6.3



  parent reply	other threads:[~2015-12-11 21:09 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-11 21:01 [gentoo-dev] perl-module.eclass EAPI=6 support Andreas K. Huettel
2015-12-11 21:02 ` [gentoo-dev] [PATCH 01/15] perl-module.eclass: Allow EAPI=6, ban PERL_EXPORT_PHASE_FUNCTIONS there, simplify perl dependency dilfridge
2015-12-11 21:02   ` [gentoo-dev] [PATCH 02/15] perl-module.eclass: Remove references to perlinfo_done dilfridge
2015-12-11 21:02   ` [gentoo-dev] [PATCH 03/15] perl-module.eclass: Just go ahead when calling configure twice in EAPI=6 dilfridge
2015-12-12 11:50     ` Michał Górny
2015-12-12 16:14       ` Andreas K. Huettel
2015-12-11 21:03   ` [gentoo-dev] [PATCH 04/15] perl-module.eclass: Use default unpacking from EAPI=6 on dilfridge
2015-12-11 23:40     ` Ulrich Mueller
2015-12-12 20:23       ` Andreas K. Huettel
2015-12-11 21:03   ` [gentoo-dev] [PATCH 05/15] perl-module.eclass: Use eapply from EAPI=6 on and always call eapply_user dilfridge
2015-12-12 11:54     ` Michał Górny
2015-12-12 20:23       ` Andreas K. Huettel
2015-12-11 21:03   ` [gentoo-dev] [PATCH 06/15] perl-module.eclass: Introduce MODULE_NAME and MODULE_P while still keeping existing weirdness compatible dilfridge
2015-12-12 11:57     ` Michał Górny
2015-12-11 21:03   ` [gentoo-dev] [PATCH 07/15] perl-module.eclass: Do not do any magic with MY_... variables in EAPI=6 anymore dilfridge
2015-12-12 11:59     ` Michał Górny
2015-12-12 20:26       ` Andreas K. Huettel
2015-12-11 21:03   ` [gentoo-dev] [PATCH 08/15] perl-module.eclass: Document variables available in EAPI=6 dilfridge
2015-12-11 21:03   ` [gentoo-dev] [PATCH 09/15] perl-module.eclass: Use DIST_ prefix instead of MODULE_ prefix in EAPI=6 for control variables dilfridge
2015-12-12  9:15     ` [gentoo-dev] " Duncan
2015-12-12 20:29       ` Andreas K. Huettel
2015-12-13  6:09         ` Duncan
2015-12-12 12:01     ` [gentoo-dev] " Michał Górny
2015-12-12 20:31       ` Andreas K. Huettel
2015-12-11 21:03   ` [gentoo-dev] [PATCH 10/15] perl-module.eclass: Rename SRC_TEST to DIST_TEST in EAPI=6 and default to "do parallel" dilfridge
2015-12-12 12:03     ` Michał Górny
2015-12-12 20:41       ` Andreas K. Huettel
2015-12-13  2:23         ` Kent Fredric
2015-12-26 11:53     ` Jeroen Roovers
2015-12-27 11:37       ` Andreas K. Huettel
2015-12-11 21:03   ` [gentoo-dev] [PATCH 11/15] perl-module.eclass: Introduce DIST_TEST_OVERRIDE in EAPI=6 dilfridge
2015-12-12 12:05     ` Michał Górny
2015-12-12 12:06       ` Michał Górny
2015-12-12 16:13         ` Andreas K. Huettel
2015-12-11 21:03   ` [gentoo-dev] [PATCH 12/15] perl-module.eclass: Minor docu improvements dilfridge
2015-12-11 21:03   ` [gentoo-dev] [PATCH 13/15] perl-module.eclass: Make some former warnings fatal to get rid of PERLQAFATAL, eqawarn, and (in EAPI=6) eutils.eclass dilfridge
2015-12-11 21:03   ` dilfridge [this message]
2015-12-11 21:03   ` [gentoo-dev] [PATCH 15/15] dev-perl/CGI: Add EAPI=6 test ebuild dilfridge
2015-12-12 11:49   ` [gentoo-dev] [PATCH 01/15] perl-module.eclass: Allow EAPI=6, ban PERL_EXPORT_PHASE_FUNCTIONS there, simplify perl dependency Michał Górny
2015-12-12 20:22     ` Andreas K. Huettel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1449867791-30513-14-git-send-email-dilfridge@gentoo.org \
    --to=dilfridge@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox