Cosimo Streppone wrote:
# New Ticket Created by Cosimo Streppone # Please include the string: [perl #47127] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=47127 >


Hi,

I'm trying to get my feet wet with parrot.

Welcome!

Just found out this test failure.
After some research, I think this is caused by the
different configurations of my system's underlying /usr/bin/perl,
where $Config{libs} includes '-lgdbm', and parrot Configure.pl result,
which correctly finds that `has_gdbm=0', so no '-lgdbm' should be used.


This is interesting because the other day chromatic reported a failure in one file testing auto::msvc that was associated with a problem connected to the presence/absence of libgdbm.


The problem in `t/configure/111-auto_gcc-01.t' seems to be that it
loads and tests `init::defaults',

... as do most of the tests in t/configure/1??-*.t. That's because later configuration steps depend on values stashed in the Parrot::Configure object by earlier configuration steps -- in particular, by init::defaults. So to be able to write meaningful tests of later config steps, I almost always had to run step init::defaults within each test file. Instances of running init::defaults as part of tests in t/configure/ have been in trunk for several months now, so I'm surprised to see this failure being reported now.

Which version of Perl are you using? Which OS? Can you post more complete test failure reports?


which in turn does:

  $conf->data->set(libs => $Config{libs});

where $Config{libs} is read from /usr/bin/perl's Config.pm,
which has `-lgdbm'.

In the attached patch I tried to find a workaround for this problem,
but I have no idea of the correct way to proceed.


I will try to look at this over the weekend.

Also noticed the recent change on t/configure/117_inter-shlibs-01.t
that seems to relate to this problem.

Only tangentially. Originally, in that test file I was running auto::gcc in addition to init::defaults as preparation for running tests of inter::shlibs. chromatic led me to recognize that auto::gcc was superfluous in this instance.


I would appreciate a feedback on this, since I'm trying to
find a way through parrot test suite and source code.


You should note that the tests in t/configure/ are not tests of Parrot *per se*. They are tests of the Perl 5 code used in Parrot configuration: they test the scaffolding for the building rather than the building itself. They test whether the Perl 5 code in lib/Parrot/Configure/*.pm and config/*/*.pm is as good as it possibly can be -- but they don't say anything directly about the degree to which Parrot's compilation correctly analyzes your OS environment or makes the best choices for entries in the Makefile.

That being said, I have learned a tremendous amount about compilation -- if not about Parrot -- from writing tests for the configuration tools written in Perl 5.


kid51

Reply via email to