Ticket #822 (closed bug: fixed)

Opened 5 years ago

Last modified 5 years ago

Using wrong libparrot.

Reported by: coke Owned by:
Priority: blocker Milestone: 1.4
Component: none Version: trunk
Severity: medium Keywords:
Cc: Language:
Patch status: applied Platform:

Description

Large number of test failures in a vanilla 'make test' on feather.perl6.nl (the shared linux dev box.) (r39961)

Configure.pl is run with "--prefix=/home/coke/bird", no other options.

Here's the test harness output:

Test Summary Report
-------------------
t/pmc/packfile.t                          (Wstat: 6 Tests: 10 Failed: 0)
  Non-zero wait status: 6
  Parse errors: Bad plan.  You planned 34 tests but ran 10.
t/pmc/packfileannotations.t               (Wstat: 6 Tests: 1 Failed: 0)
  Non-zero wait status: 6
  Parse errors: Bad plan.  You planned 17 tests but ran 1.
t/pmc/packfileconstanttable.t             (Wstat: 6 Tests: 0 Failed: 0)
  Non-zero wait status: 6
  Parse errors: Bad plan.  You planned 14 tests but ran 0.
t/pmc/packfiledirectory.t                 (Wstat: 6 Tests: 4 Failed: 0)
  Non-zero wait status: 6
  Parse errors: Bad plan.  You planned 23 tests but ran 4.
t/pmc/packfilefixupentry.t                (Wstat: 6 Tests: 0 Failed: 0)
  Non-zero wait status: 6
  Parse errors: Bad plan.  You planned 3 tests but ran 0.
t/pmc/packfilefixuptable.t                (Wstat: 6 Tests: 0 Failed: 0)
  Non-zero wait status: 6
  Parse errors: Bad plan.  You planned 3 tests but ran 0.
t/pmc/packfilerawsegment.t                (Wstat: 6 Tests: 0 Failed: 0)
  Non-zero wait status: 6
  Parse errors: Bad plan.  You planned 2 tests but ran 0.
t/src/basic.t                             (Wstat: 768 Tests: 3 Failed: 3)
  Failed tests:  1-3
  Non-zero exit status: 3
t/src/atomic.t                            (Wstat: 1024 Tests: 4 Failed: 4)
  Failed tests:  1-4
  Non-zero exit status: 4
t/src/exit.t                              (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
t/src/embed.t                             (Wstat: 1280 Tests: 6 Failed: 5)
  Failed tests:  1-5
  Non-zero exit status: 5
t/src/warnings.t                          (Wstat: 512 Tests: 2 Failed: 2)
  Failed tests:  1-2
  Non-zero exit status: 2
t/src/extend.t                            (Wstat: 4096 Tests: 17 Failed: 16)
  Failed tests:  1-15, 17
  Non-zero exit status: 16
t/perl/Parrot_Test.t                      (Wstat: 0 Tests: 120 Failed: 4)
  Failed tests:  81-84

Looking at the last test, here's a representative failure:

#   Failed test 'C:  unlike hello world'
#   at t/perl/Parrot_Test.t line 453.
# STDOUT is:
# not ok 1 - C:  unlike hello world
#
# not:
# ok 1 - C:  unlike hello world
#
# as expected
# STDERR is:
# #   Failed test 'C:  unlike hello world'
# #   at t/perl/Parrot_Test.t line 448.
# # Exited with error code: 127
# # Received:
# # ./t/perl/Parrot_Test_1: error while loading shared libraries: libparrot.so.1.2.0: cannot open shared object file: No such file or directory
# #
# # Expected:
# # /foobar/
# #
#
# not:
#
# as expected

Note that we're trying to load libparrot 1.2.0, and if we check the default installation dir:

$ /usr/local/bin/parrot --version
This is Parrot version 1.2.0 built for i386-linux.
Copyright (C) 2001-2009, Parrot Foundation.

This code is distributed under the terms of the Artistic License 2.0.
For more details, see the full text of the license in the LICENSE file
included in the Parrot source tree.

We should additionally make sure we test multiply /installed/ parrots before the 1.4 release to insure that there is no undocumented conflict. (not just that parrots in build directories do not conflict with previously installed parrots.)

Attachments

tt822-libparrot.patch Download (1.5 KB) - added by doughera 5 years ago.

Change History

Changed 5 years ago by doughera

I'm pretty sure that the main build process doesn't fall prey to this problem (TT #30). This particular problem looks like a duplicate of TT #115 (though this ticket has useful specific details, so TT #115 should probably be closed as a duplicate instead.)

In any case, the t/src tests are probably due to an error in the way the sources are compiled and linked. Indeed, looking quickly at lib/Parrot/Test.pm, it seems to do two odd things: First, it puts $linkflags too early -- that likely includes -L/usr/local/lib, which is causing this problem. Second, it seems to go through great contortions to re-create the Config variable libparrot_linkflags which is supposed to be for exactly this use.

I've attached a simple patch to try to fix both problems. It is completely untested, but I think it should work. If it doesn't, I think the first attack should be to try to set libparrot_linkflags correctly over on the Configure.pl end. If that proves unworkable for some reason, then this patch should be revised. In any case, extending or embedding parrot should be easy. PConfig ought to include all the relevant variables already set up. No OS-specific contortions should be required in this part of lib/Parrot/Test.pm.

Changed 5 years ago by doughera

Changed 5 years ago by coke

With this patch, I'm left only with the failures in TT #823 so +1 from me.

Changed 5 years ago by coke

  • status changed from new to closed
  • resolution set to fixed
  • patch set to applied

Changed 5 years ago by coke

Applied in r39966, remaining issues in TT #823.

Note: See TracTickets for help on using tickets.