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.