You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@spamassassin.apache.org by bu...@bugzilla.spamassassin.org on 2007/10/28 15:16:55 UTC
[Bug 5705] New: t/meta.t has a prototype problem which seems to be ignored
http://issues.apache.org/SpamAssassin/show_bug.cgi?id=5705
Summary: t/meta.t has a prototype problem which seems to be
ignored
Product: Spamassassin
Version: 3.2.3
Platform: Other
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P5
Component: Regression Tests
AssignedTo: dev@spamassassin.apache.org
ReportedBy: andreas.koenig.7os6VVqR@franz.ak.mind.de
When I run the 3.2.3 test suite against current development version of perl
which is due to come out as 5.10 soonish, all tests pass. But I see the
following output:
t/meta..........................Illegal character in prototype for bytes::length
: _ at
/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/5.10.0/bytes.pm
line 22.
Illegal character in prototype for bytes::chr : _ at
/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/5.10.0/bytes.pm
line 23.
Illegal character in prototype for bytes::ord : _ at
/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/5.10.0/bytes.pm
line 24.
Can't load
'/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/5.10.0/i686-linux-64int/auto/Data/Dumper/Dumper.so'
for module Data::Dumper:
/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/5.10.0/i686-linux-64int/auto/Data/Dumper/Dumper.so:
undefined symbol: PL_unitcheckav at
/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/5.10.0/i686-linux-64int/XSLoader.pm
line 64.
at
/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/5.10.0/i686-linux-64int/Data/Dumper.pm
line 36
Compilation failed in require at ../build/parse-rules-for-masses line 37.
BEGIN failed--compilation aborted at ../build/parse-rules-for-masses line 37.
parse-rules-for-masses failed! at t/meta.t line 43.
log/rules-0.pl is unparseable: Can't locate log/rules-0.pl in @INC (@INC
contains: ../blib/lib
/home/sand/.cpan/build/Mail-SpamAssassin-3.2.3-Tqk5Pb/blib/lib
/home/sand/.cpan/build/Mail-SpamAssassin-3.2.3-Tqk5Pb/blib/arch
/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/5.10.0/i686-linux-64int
/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/5.10.0/i686-linux-64int
/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/5.10.0
/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/site_perl/5.10.0/i686-linux-64int
/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/site_perl/5.10.0/i686-linux-64int
/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/site_perl/5.10.0
.
/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/5.10.0/i686-linux-64int
/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/5.10.0
/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/site_perl/5.10.0/i686-linux-64int
/home/src/perl/repoperls/installed-perls/perl/pm5CFa8/perl-5.8.0@32198/lib/site_perl/5.10.0
.) at t/meta.t line 46.
giving up on test. at t/meta.t line 50.
ok
This indicates for me that probably somebody calls a different perl (probably
the old one that I have in the PATH) instead of the current one (which would be
in $^X). The "_" prototype has been introduced since 5.8 and specifies a code
block. Somebody who does not understand this prototype.
Let me know if you need further info.
Thanks,
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
[Bug 5705] t/meta.t has a prototype problem which seems to be ignored
Posted by bu...@bugzilla.spamassassin.org.
http://issues.apache.org/SpamAssassin/show_bug.cgi?id=5705
sidney@sidney.com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
------- Additional Comments From sidney@sidney.com 2007-12-22 13:49 -------
Andreas, please confirm that this fixes your problem amd reopen this bug if I've
made a mistake.
-----
If I understand correctly, t/basic_meta.t (or t/meta.t in the 3.2 branch), being
a lint test has a 'use strict', and that is why it has to have the use vars for
$perl_path while the other two tests that make use of $perl_path don't need the
use vars.
Ok, I've checked this in to both trunk and 3.2 branch since tests are CTR.
$ svn ci -m "bug 5705: use the correct perl binary to lint
parse-rules-for-masses in the meta tests" t/basic_meta.t
Sending t/basic_meta.t
Transmitting file data .
Committed revision 606497.
and in 3.2 branch:
$ svn ci -m "bug 5705: use the correct perl binary to lint
parse-rules-for-masses in the meta tests" t/meta.t
Sending t/meta.t
Transmitting file data .
Committed revision 606498.
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
[Bug 5705] t/meta.t has a prototype problem which seems to be ignored
Posted by bu...@bugzilla.spamassassin.org.
http://issues.apache.org/SpamAssassin/show_bug.cgi?id=5705
------- Additional Comments From sidney@sidney.com 2007-12-22 06:25 -------
Ok, if I add $perl_cmd to the use vars statement in t/base_meta.t (in trunk)
then I can use $perl_cmd in the system call and it works.
I still don't know whether that is supposed to be $perl_path or $perl_cmd, i.e.,
whetehr it is supposed to respect the TEST_PERL_TAINT and TEST_PERL_WARN options
to make test.
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
[Bug 5705] t/meta.t has a prototype problem which seems to be ignored
Posted by bu...@bugzilla.spamassassin.org.
http://issues.apache.org/SpamAssassin/show_bug.cgi?id=5705
------- Additional Comments From sidney@sidney.com 2007-12-22 04:45 -------
(in reply to comment #3)
> I think there's even a wrapper for $^X in
> SATest.pm, $PERL or $perl or something
It's $perl_path or $perl_cmd depending on whether it is supposed to respect the
taint and warning options to make test. I don't see that they are available for
use outside of SATest.pm.
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
[Bug 5705] t/meta.t has a prototype problem which seems to be ignored
Posted by bu...@bugzilla.spamassassin.org.
http://issues.apache.org/SpamAssassin/show_bug.cgi?id=5705
------- Additional Comments From sidney@sidney.com 2007-12-21 14:25 -------
It worked for me to change the line in t/meta.t in 3.2 branch or in
t/basic_mets.t in trunk that has system("$prefix/build..." ...) to instead have
with system("$^X prefix/build..." ...)
I know that tests are CTR, but I did not check this in so people with nore
sophisticated perl experience can think about it. In particular, do we have to
do anything to deal with the case that the $^X contains spaces?
Other than that, if someone will check in the change to the two test files this
bug could be closed.
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
[Bug 5705] t/meta.t has a prototype problem which seems to be ignored
Posted by bu...@bugzilla.spamassassin.org.
http://issues.apache.org/SpamAssassin/show_bug.cgi?id=5705
------- Additional Comments From jm@jmason.org 2007-12-21 14:37 -------
(In reply to comment #2)
> It worked for me to change the line in t/meta.t in 3.2 branch or in
> t/basic_mets.t in trunk that has system("$prefix/build..." ...) to instead have
> with system("$^X prefix/build..." ...)
>
> I know that tests are CTR, but I did not check this in so people with nore
> sophisticated perl experience can think about it. In particular, do we have to
> do anything to deal with the case that the $^X contains spaces?
>
> Other than that, if someone will check in the change to the two test files this
> bug could be closed.
something like that should be ok; I think there's even a wrapper for $^X in
SATest.pm, $PERL or $perl or something.
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
[Bug 5705] t/meta.t has a prototype problem which seems to be ignored
Posted by bu...@bugzilla.spamassassin.org.
http://issues.apache.org/SpamAssassin/show_bug.cgi?id=5705
------- Additional Comments From jm@jmason.org 2007-12-22 07:19 -------
(In reply to comment #6)
> Ok, if I add $perl_cmd to the use vars statement in t/base_meta.t (in trunk)
> then I can use $perl_cmd in the system call and it works.
>
> I still don't know whether that is supposed to be $perl_path or $perl_cmd, i.e.,
> whetehr it is supposed to respect the TEST_PERL_TAINT and TEST_PERL_WARN options
> to make test.
I think it can omit them; there's no need in this case.
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
[Bug 5705] t/meta.t has a prototype problem which seems to be ignored
Posted by bu...@bugzilla.spamassassin.org.
http://issues.apache.org/SpamAssassin/show_bug.cgi?id=5705
jm@jmason.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|Undefined |3.2.4
------- Additional Comments From jm@jmason.org 2007-10-30 10:53 -------
thanks for the report. we should probably use the perl binary running the
tests, to run "../build/parse-rules-for-masses" for that test...
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
[Bug 5705] t/meta.t has a prototype problem which seems to be ignored
Posted by bu...@bugzilla.spamassassin.org.
http://issues.apache.org/SpamAssassin/show_bug.cgi?id=5705
------- Additional Comments From jm@jmason.org 2007-12-22 04:59 -------
(In reply to comment #4)
> (in reply to comment #3)
> > I think there's even a wrapper for $^X in
> > SATest.pm, $PERL or $perl or something
>
> It's $perl_path or $perl_cmd depending on whether it is supposed to respect the
> taint and warning options to make test. I don't see that they are available for
> use outside of SATest.pm.
SATest.pm isn't a "real" module -- it doesn't even have its own package ;)
anyway, those vars intended for use outside of it.
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.