cpan.port.mk: let make regress write test reports

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

cpan.port.mk: let make regress write test reports

Simon Bertrang
Hi porters,
a few weeks ago steven@ sent a diff for cpan.port.mk that provides
regress reporting functionality via p5-Test-Reporter.  When i saw that
the cpantest script directly sends out emails i stepped in and changed
a few bits to write the report mail into a file.
Unfortunately the output was not correct and additionally the existing
code of cpantest made my eys bleed, so i wrote build/cpanreport.
It's very simple, still depends on p5-Test-Reporter but does the job.
I've got a bit feedback already but i want more solid replies before i
commit this.

To use it, apply the diff, set CPAN_REPORT=Yes, create a directory for
the reports (i.e. /usr/ports/mystuff/reports) and set CPAN_REPORT_DB to
point to it.
With this all perl ports using the cpan.port.mk will write files you can
email to cpan-testers@perl after you `make regress'.

This way we can dispatch build testing reports to prove problems and
have a better ground to submit upstream patches.

Please let me hear your oppinions and/or {,dis}agreements.

Regards,
Simon

cpanreport.diff (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: cpan.port.mk: let make regress write test reports

Rui Reis-2
I like this.


On Sat, Jul 21, 2007 at 04:52:08PM +0200, Simon Bertrang wrote:

> Hi porters,
> a few weeks ago steven@ sent a diff for cpan.port.mk that provides
> regress reporting functionality via p5-Test-Reporter.  When i saw that
> the cpantest script directly sends out emails i stepped in and changed
> a few bits to write the report mail into a file.
> Unfortunately the output was not correct and additionally the existing
> code of cpantest made my eys bleed, so i wrote build/cpanreport.
> It's very simple, still depends on p5-Test-Reporter but does the job.
> I've got a bit feedback already but i want more solid replies before i
> commit this.
>
> To use it, apply the diff, set CPAN_REPORT=Yes, create a directory for
> the reports (i.e. /usr/ports/mystuff/reports) and set CPAN_REPORT_DB to
> point to it.
> With this all perl ports using the cpan.port.mk will write files you can
> email to cpan-testers@perl after you `make regress'.
>
> This way we can dispatch build testing reports to prove problems and
> have a better ground to submit upstream patches.
>
> Please let me hear your oppinions and/or {,dis}agreements.
>
> Regards,
> Simon

> diff -urNx CVS -x .#* -x *.orig ./build/cpanreport /usr/ports/infrastructure/build/cpanreport
> --- ./build/cpanreport Thu Jan  1 01:00:00 1970
> +++ /usr/ports/infrastructure/build/cpanreport Thu Jul  5 20:18:04 2007
> @@ -0,0 +1,84 @@
> +#!/usr/bin/perl
> +# $OpenBSD$
> +# Copyright (c) 2007 Simon Bertrang.  All rights reserved.
> +# Redistribution and use in source and binary forms, with or without
> +# modification, are permitted provided that the following conditions
> +# are met:
> +# 1. Redistributions of code must retain the above copyright
> +#    notice, this list of conditions and the following disclaimer.
> +# 2. Neither the name of OpenBSD nor the names of its contributors
> +#    may be used to endorse or promote products derived from this software
> +#    without specific prior written permission.
> +#
> +# THIS SOFTWARE IS PROVIDED BY ITS AUTHOR AND THE OpenBSD project ``AS IS'' AND
> +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> +# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
> +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> +# SUCH DAMAGE.
> +
> +use Getopt::Std qw(getopts);
> +use Test::Reporter;
> +
> +my $distname;
> +my $fh;
> +my $log;
> +my %opts = (
> + 'd' => $ENV{'CPAN_REPORT_DB'} || '.',
> + 'f' => $ENV{'REGRESS_LOGFILE'} || '',
> + 'g' => '',
> +);
> +my $reporter;
> +
> +sub usage {
> + die("usage: $0 [-d logdir]" .
> +    " [-f regress.log]" .
> +    " -g fail|pass|na|unknown distname\n");
> +}
> +
> +unless (getopts('d:f:g:', \%opts)) {
> + usage();
> +}
> +
> +unless ($opts{'g'} && $opts{'g'} =~ m/^(?:pass|fail|na|unknown)$/o) {
> + usage();
> +}
> +
> +unless ($distname = shift(@ARGV)) {
> + usage();
> +}
> +
> +if ($opts{'f'}) {
> + unless (open($fh, '<', $opts{'f'})) {
> + die("$0: $!: $opts{'f'}\n");
> + }
> + close(STDIN);
> +}
> +else {
> + $fh = \*STDIN;
> +}
> +
> +{
> + local($/) = undef;
> + $log = <$fh>;
> +}
> +close($fh);
> +
> +unless (open($fh, '>', $opts{'d'} . "/$distname")) {
> + die("$0: $!: ", $opts{'d'}, "/$distname\n");
> +}
> +
> +$reporter = Test::Reporter->new();
> +
> +$reporter->grade($opts{'g'});
> +$reporter->distribution($distname);
> +$reporter->comments($log);
> +
> +$reporter->write($fh);
> +
> +close($fh);
> Binary files ./mk/.cpan.port.mk.swp and /usr/ports/infrastructure/mk/.cpan.port.mk.swp differ
> diff -urNx CVS -x .#* -x *.orig ./mk/cpan.port.mk /usr/ports/infrastructure/mk/cpan.port.mk
> --- ./mk/cpan.port.mk Sat Nov 25 14:14:40 2006
> +++ /usr/ports/infrastructure/mk/cpan.port.mk Thu Jul  5 20:41:33 2007
> @@ -21,3 +21,20 @@
>  REGRESS_DEPENDS+=::devel/p5-Test-Pod \
>   ::devel/p5-Test-Pod-Coverage
>  .endif
> +
> +.if defined(CPAN_REPORT)
> +REGRESS_DEPENDS+=::devel/p5-Test-Reporter
> +REGRESS_FLAGS+= TEST_VERBOSE=1
> +.  if empty(CPAN_REPORT_DB) || !exists(${CPAN_REPORT_DB})
> +ERRORS+= "Fatal: CPAN_REPORT_DB must point to a directory"
> +.  endif
> +CPAN_REPORTER= ${PORTSDIR}/infrastructure/build/cpanreport
> +CPAN_REPORTER_FLAGS= -d ${CPAN_REPORT_DB} -f ${REGRESS_LOGFILE} ${DISTNAME}
> +CPAN_REPORTER_PASS= -g pass ${CPAN_REPORTER_FLAGS}
> +CPAN_REPORTER_FAIL= -g fail ${CPAN_REPORTER_FLAGS}
> +
> +post-regress:
> + @if grep 'All tests successful' ${REGRESS_LOGFILE}; then \
> + ${CPAN_REPORTER} ${CPAN_REPORTER_PASS}; \
> + else ${CPAN_REPORTER} ${CPAN_REPORTER_FAIL}; fi
> +.endif

Reply | Threaded
Open this post in threaded view
|

Re: cpan.port.mk: let make regress write test reports

Simon Bertrang
In reply to this post by Simon Bertrang
On Sat, Jul 21, 2007 at 04:52:08PM +0200, Simon Bertrang wrote:

> Hi porters,
> a few weeks ago steven@ sent a diff for cpan.port.mk that provides
> regress reporting functionality via p5-Test-Reporter.  When i saw that
> the cpantest script directly sends out emails i stepped in and changed
> a few bits to write the report mail into a file.
> Unfortunately the output was not correct and additionally the existing
> code of cpantest made my eys bleed, so i wrote build/cpanreport.
> It's very simple, still depends on p5-Test-Reporter but does the job.
> I've got a bit feedback already but i want more solid replies before i
> commit this.
>
After newer versions of p5-Test-Reporter got cleaned up a bit i gave
cpantest a new chance, fixed the -dump output and retried with it (bug
filed and diff attached).

> To use it, apply the diff, set CPAN_REPORT=Yes, create a directory for
> the reports (i.e. /usr/ports/mystuff/reports) and set CPAN_REPORT_DB to
> point to it.
> With this all perl ports using the cpan.port.mk will write files you can
> email to cpan-testers@perl after you `make regress'.
>

This hasn't changed but i added a new variable CPAN_REPORT_FROM to set
the report sender address.  Defaults to ${MAINTAINER}.
Further i changed the report file name from ${DISTNAME} to ${PKGNAME}.

This time with the corresponding manpage bits.

Objections?

Regards,
Simon

cpanreport.cpan_port_mk.diff (1K) Download Attachment
cpanreport.bsd_port_mk_5.diff (1K) Download Attachment
p5-Test-Reporter-1.34.diff (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: cpan.port.mk: let make regress write test reports

Marc Espie-2
On Sat, Oct 06, 2007 at 02:01:18PM +0200, Simon Bertrang wrote:
> This hasn't changed but i added a new variable CPAN_REPORT_FROM to set
> the report sender address.  Defaults to ${MAINTAINER}.
> Further i changed the report file name from ${DISTNAME} to ${PKGNAME}.

I disagree about this. CPAN_REPORT_FROM should not default. In fact, it
should error out if it's not set.

You should have to set it to whomever is running the tests. Anything else
is totally bogus.

Reply | Threaded
Open this post in threaded view
|

Re: cpan.port.mk: let make regress write test reports

Simon Bertrang
On Sat, Oct 06, 2007 at 05:36:25PM +0200, Marc Espie wrote:

> On Sat, Oct 06, 2007 at 02:01:18PM +0200, Simon Bertrang wrote:
> > This hasn't changed but i added a new variable CPAN_REPORT_FROM to set
> > the report sender address.  Defaults to ${MAINTAINER}.
> > Further i changed the report file name from ${DISTNAME} to ${PKGNAME}.
>
> I disagree about this. CPAN_REPORT_FROM should not default. In fact, it
> should error out if it's not set.
>
> You should have to set it to whomever is running the tests. Anything else
> is totally bogus.
Agreed.  Updated diffs attached.

Simon

cpanreport.cpan_port_mk.diff (1K) Download Attachment
cpanreport.bsd_port_mk_5.diff (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: cpan.port.mk: let make regress write test reports

Simon Bertrang
On Sat, Oct 06, 2007 at 06:02:59PM +0200, Simon Bertrang wrote:

> On Sat, Oct 06, 2007 at 05:36:25PM +0200, Marc Espie wrote:
> > On Sat, Oct 06, 2007 at 02:01:18PM +0200, Simon Bertrang wrote:
> > > This hasn't changed but i added a new variable CPAN_REPORT_FROM to set
> > > the report sender address.  Defaults to ${MAINTAINER}.
> > > Further i changed the report file name from ${DISTNAME} to ${PKGNAME}.
> >
> > I disagree about this. CPAN_REPORT_FROM should not default. In fact, it
> > should error out if it's not set.
> >
> > You should have to set it to whomever is running the tests. Anything else
> > is totally bogus.
>
> Agreed.  Updated diffs attached.
>

With feedback from steven@...

After i sent out the collected reports from the last months [0] i found
a few false positives caused by the fact that not all tests end with
'All tests successful'.
Seems like 'FAILED' is a better indicator as most (all?) tests seem to
provide that if something went wrong.

Another thing that annoyed me pretty much was the exit code from
build/cpanreport leading to the creation of ${_REGRESS_COOKIE}.
Now there's simply an additional 'exit 1;' for the failure case.

Please test and comment.

Regards,
Simon

[0] http://www.mail-archive.com/search?l=cpan-testers%40perl.org&q=simon+bertrang


Index: build/cpanreport
===================================================================
RCS file: build/cpanreport
diff -N build/cpanreport
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ build/cpanreport 9 Jan 2008 18:45:04 -0000
@@ -0,0 +1,81 @@
+#!/usr/bin/perl
+# $OpenBSD$
+# Copyright (c) 2007, 2008 Simon Bertrang <[hidden email]>
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Neither the name of OpenBSD nor the names of its contributors
+#    may be used to endorse or promote products derived from this software
+#    without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY ITS AUTHOR AND THE OpenBSD project ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+
+use strict;
+use Getopt::Std qw(getopts);
+use Test::Reporter;
+
+my $distname;
+my $log;
+my %opts = (
+ 'f' => $ENV{'REGRESS_LOGFILE'} || '-',
+ 'g' => '',
+ 's' => $ENV{'CPAN_REPORT_FROM'} || '',
+);
+my $reporter;
+
+sub usage {
+ die("usage: $0 [-f regress.log] -s address" .
+    " -g fail|pass|na|unknown distname\n");
+}
+
+unless (getopts('f:g:s:', \%opts)) {
+ usage();
+}
+
+unless ($opts{'g'} && $opts{'g'} =~ m/^(?:pass|fail|na|unknown)$/o) {
+ usage();
+}
+
+unless ($distname = shift(@ARGV)) {
+ usage();
+}
+
+unless ($opts{'g'} eq 'pass') {
+ my $fh;
+
+ unless (open($fh, $opts{'f'})) {
+ die("$0: $!: $opts{'f'}\n");
+ }
+
+ {
+ local($/) = undef;
+ $log = <$fh>;
+ }
+
+ close($fh);
+}
+
+$reporter = Test::Reporter->new();
+
+$reporter->from($opts{'s'});
+$reporter->grade($opts{'g'});
+$reporter->distribution($distname);
+
+if ($log) {
+ $reporter->comments($log);
+}
+
+$reporter->write(\*STDOUT);
+
Index: mk/cpan.port.mk
===================================================================
RCS file: /cvs/ports/infrastructure/mk/cpan.port.mk,v
retrieving revision 1.4
diff -u -p -r1.4 cpan.port.mk
--- mk/cpan.port.mk 25 Nov 2006 13:14:40 -0000 1.4
+++ mk/cpan.port.mk 9 Jan 2008 18:45:04 -0000
@@ -21,3 +21,29 @@ PKG_ARCH?= *
 REGRESS_DEPENDS+=::devel/p5-Test-Pod \
  ::devel/p5-Test-Pod-Coverage
 .endif
+
+CPAN_REPORT?= No
+
+.if ${CPAN_REPORT:L} == "yes"
+REGRESS_DEPENDS+=::devel/p5-Test-Reporter
+REGRESS_FLAGS+= TEST_VERBOSE=1
+.  if !defined(CPAN_REPORT_DB) || !exists(${CPAN_REPORT_DB})
+ERRORS+= "Fatal: CPAN_REPORT_DB must point to a directory"
+.  endif
+.  if !defined(CPAN_REPORT_FROM) || empty(CPAN_REPORT_FROM)
+ERRORS+= "Fatal: CPAN_REPORT_FROM needs an email address"
+.  endif
+
+CPANTEST= ${PORTSDIR}/infrastructure/build/cpanreport
+CPANTEST_FLAGS= -f ${REGRESS_LOGFILE} -s ${CPAN_REPORT_FROM:Q} ${DISTNAME} \
+ > ${CPAN_REPORT_DB}/${PKGNAME}
+CPANTEST_PASS= -g pass ${CPANTEST_FLAGS}
+CPANTEST_FAIL= -g fail ${CPANTEST_FLAGS}
+
+post-regress:
+ @if grep -q 'FAILED' ${REGRESS_LOGFILE}; then \
+ ${CPANTEST} ${CPANTEST_FAIL}; \
+ exit 1; \
+ else ${CPANTEST} ${CPANTEST_PASS}; fi
+
+.endif

Reply | Threaded
Open this post in threaded view
|

Re: cpan.port.mk: let make regress write test reports

Simon Bertrang
On Wed, Jan 09, 2008 at 08:04:38PM +0100, Simon Bertrang wrote:

> On Sat, Oct 06, 2007 at 06:02:59PM +0200, Simon Bertrang wrote:
> > On Sat, Oct 06, 2007 at 05:36:25PM +0200, Marc Espie wrote:
> > > On Sat, Oct 06, 2007 at 02:01:18PM +0200, Simon Bertrang wrote:
> > > > This hasn't changed but i added a new variable CPAN_REPORT_FROM to set
> > > > the report sender address.  Defaults to ${MAINTAINER}.
> > > > Further i changed the report file name from ${DISTNAME} to ${PKGNAME}.
> > >
> > > I disagree about this. CPAN_REPORT_FROM should not default. In fact, it
> > > should error out if it's not set.
> > >
> > > You should have to set it to whomever is running the tests. Anything else
> > > is totally bogus.
> >
> > Agreed.  Updated diffs attached.
> >
>
> With feedback from steven@...
>

Here's a new diff incorporating some feedback from merdely@ who pointed
out to me that we create PLIST_DB already in a similar way.
I like it as it saves another bit of time.

More feedback and/or can i commit it like this?

Regards,
Simon


Index: build/cpanreport
===================================================================
RCS file: build/cpanreport
diff -N build/cpanreport
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ build/cpanreport 15 Jan 2008 21:35:41 -0000
@@ -0,0 +1,81 @@
+#!/usr/bin/perl
+# $OpenBSD$
+# Copyright (c) 2007, 2008 Simon Bertrang <[hidden email]>
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Neither the name of OpenBSD nor the names of its contributors
+#    may be used to endorse or promote products derived from this software
+#    without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY ITS AUTHOR AND THE OpenBSD project ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+
+use strict;
+use Getopt::Std qw(getopts);
+use Test::Reporter;
+
+my $distname;
+my $log;
+my %opts = (
+ 'f' => $ENV{'REGRESS_LOGFILE'} || '-',
+ 'g' => '',
+ 's' => $ENV{'CPAN_REPORT_FROM'} || '',
+);
+my $reporter;
+
+sub usage {
+ die("usage: $0 [-f regress.log] -s address" .
+    " -g fail|pass|na|unknown distname\n");
+}
+
+unless (getopts('f:g:s:', \%opts)) {
+ usage();
+}
+
+unless ($opts{'g'} && $opts{'g'} =~ m/^(?:pass|fail|na|unknown)$/o) {
+ usage();
+}
+
+unless ($distname = shift(@ARGV)) {
+ usage();
+}
+
+unless ($opts{'g'} eq 'pass') {
+ my $fh;
+
+ unless (open($fh, $opts{'f'})) {
+ die("$0: $!: $opts{'f'}\n");
+ }
+
+ {
+ local($/) = undef;
+ $log = <$fh>;
+ }
+
+ close($fh);
+}
+
+$reporter = Test::Reporter->new();
+
+$reporter->from($opts{'s'});
+$reporter->grade($opts{'g'});
+$reporter->distribution($distname);
+
+if ($log) {
+ $reporter->comments($log);
+}
+
+$reporter->write(\*STDOUT);
+
Index: mk/cpan.port.mk
===================================================================
RCS file: /cvs/ports/infrastructure/mk/cpan.port.mk,v
retrieving revision 1.4
diff -u -p -r1.4 cpan.port.mk
--- mk/cpan.port.mk 25 Nov 2006 13:14:40 -0000 1.4
+++ mk/cpan.port.mk 15 Jan 2008 21:35:41 -0000
@@ -21,3 +21,30 @@ PKG_ARCH?= *
 REGRESS_DEPENDS+=::devel/p5-Test-Pod \
  ::devel/p5-Test-Pod-Coverage
 .endif
+
+CPAN_REPORT?= No
+
+.if ${CPAN_REPORT:L} == "yes"
+REGRESS_DEPENDS+=::devel/p5-Test-Reporter
+REGRESS_FLAGS+= TEST_VERBOSE=1
+.  if !defined(CPAN_REPORT_DB)
+ERRORS+= "Fatal: CPAN_REPORT_DB must point to a directory"
+.  endif
+.  if !defined(CPAN_REPORT_FROM) || empty(CPAN_REPORT_FROM)
+ERRORS+= "Fatal: CPAN_REPORT_FROM needs an email address"
+.  endif
+
+CPANTEST= ${PORTSDIR}/infrastructure/build/cpanreport
+CPANTEST_FLAGS= -f ${REGRESS_LOGFILE} -s ${CPAN_REPORT_FROM:Q} ${DISTNAME} \
+ > ${CPAN_REPORT_DB}/${PKGNAME}
+CPANTEST_PASS= -g pass ${CPANTEST_FLAGS}
+CPANTEST_FAIL= -g fail ${CPANTEST_FLAGS}
+
+post-regress:
+ @mkdir -p ${CPAN_REPORT_DB}
+ @if grep -q FAILED ${REGRESS_LOGFILE}; then \
+ ${CPANTEST} ${CPANTEST_FAIL}; \
+ exit 1; \
+ else ${CPANTEST} ${CPANTEST_PASS}; fi
+
+.endif