# New Ticket Created by Andy Dougherty # Please include the string: [perl #45019] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=45019 >
Today I got some new failures in the t/configure suite of tests. The first looks like this: t/configure/033_step..............................Can't locate Tie/Filehandle/Preempt/Stdin.pm in @INC (@INC contains: . lib ../lib ../../lib /opt/perl/lib/5.8.8/sun4-solaris /opt/perl/lib/5.8.8 /opt/perl/lib/site_perl/5.8.8/sun4-solaris /opt/perl/lib/site_perl/5.8.8 /opt/perl/lib/site_perl/5.8.7/sun4-solaris /opt/perl/lib/site_perl/5.8.7 /opt/perl/lib/site_perl/5.8.6/sun4-solaris /opt/perl/lib/site_perl/5.8.6 /opt/perl/lib/site_perl/5.8.5/sun4-solaris /opt/perl/lib/site_perl/5.8.5 /opt/perl/lib/site_perl/5.8.4/sun4-solaris /opt/perl/lib/site_perl/5.8.4 /opt/perl/lib/site_perl/5.8.3/sun4-solaris /opt/perl/lib/site_perl/5.8.3 /opt/perl/lib/site_perl/5.8.2/sun4-solaris /opt/perl/lib/site_perl/5.8.2 /opt/perl/lib/site_perl) at t/configure/033_step.t line 16. BEGIN failed--compilation aborted at t/configure/033_step.t line 16. # Looks like your test died before it could output anything. dubious Test returned status 255 (wstat 65280, 0xff00) DIED. FAILED tests 1-32 Failed 32/32 tests, 0.00% okay The problem is twofold. The first is that @INC is missing t/configure/testlib. Adding that allows perl to find the correct module. The second is more subtle. Note that @INC includes ../lib and ../../lib. Since 'make test' is run from the root of the parrot directory, these are libraries *OUTSIDE* of the parrot directory. We definitely shouldn't be looking over in other random directories outside the parrot source tree. The only directories needed to be added are ./lib and ./t/configure/testlib. The following patch fixes these in 033_step.t, 107-interp_progs.01.t, and 107-inter_progs.02.t (the later two are failing in an apparently unrelated way.) While fixing 107-interp_progs.0?.t, I also discovered that lib/Parrot/Configure/Test.pm makes the same mistake. So I fixed that too. --- parrot-current/t/configure/033_step.t 2007-08-28 09:41:57.000000000 -0400 +++ parrot-andy/t/configure/033_step.t 2007-08-28 11:15:41.000000000 -0400 @@ -11,7 +11,7 @@ use File::Basename qw(basename dirname); use File::Temp 0.13 qw/ tempfile /; use File::Spec; -use lib qw( . lib ../lib ../../lib ); +use lib qw(lib t/configure/testlib); use Parrot::IO::Capture::Mini; use Tie::Filehandle::Preempt::Stdin; --- parrot-current/t/configure/107-inter_progs.01.t 2007-08-28 09:41:57.000000000 -0400 +++ parrot-andy/t/configure/107-inter_progs.01.t 2007-08-28 11:16:47.000000000 -0400 @@ -8,7 +8,7 @@ use Test::More tests => 24; use Carp; use Data::Dumper; -use lib qw( . lib ../lib ../../lib t/configure/testlib ); +use lib qw( lib t/configure/testlib ); use_ok('config::init::defaults'); use_ok('config::init::install'); use_ok('config::init::hints'); --- parrot-current/t/configure/107-inter_progs.02.t 2007-08-28 09:41:57.000000000 -0400 +++ parrot-andy/t/configure/107-inter_progs.02.t 2007-08-28 11:17:00.000000000 -0400 @@ -8,7 +8,7 @@ use Test::More tests => 24; use Carp; use Data::Dumper; -use lib qw( . lib ../lib ../../lib t/configure/testlib ); +use lib qw( lib t/configure/testlib ); use_ok('config::init::defaults'); use_ok('config::init::install'); use_ok('config::init::hints'); --- parrot-current/lib/Parrot/Configure/Test.pm Tue Aug 14 16:06:33 2007 +++ parrot-andy/lib/Parrot/Configure/Test.pm Tue Aug 28 11:44:44 2007 @@ -11,7 +11,7 @@ use Carp; *ok = *Test::More::ok; *isa_ok = *Test::More::isa_ok; -use lib qw( . lib ../lib ../../lib ); +use lib qw( lib ); use Parrot::Configure; my $stepnum = -1; After this patch, the following 44 test files seem to still have the wrong @INC, but I ran out of time and didn't patch them all. parrot-andy/t/configure/002-messages.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/003-steplist.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/004-configure.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/005-run_one_step.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/006-bad_step.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/007-verbose_two.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/008-verbose_step_number.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/009-verbose_step_regex.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/010-verbose_step_number_not_called.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/011-no_description.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/012-verbose.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/013-die.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/014-params.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/015-no_return.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/016-no_return_but_result.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/017-revision_no_DEVELOPING.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/018-revision.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/019-version.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/020-version.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/021-version.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/022-version.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/023-version.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/024-version.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/025-options_test.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/026-options_test.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/027-option_or_data.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/028-option_or_data.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/029-option_or_data.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/030-option_or_data.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/031_base.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/032_data.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/034_step.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/035_step.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/036_config_steps.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/101-init_manifest.01.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/101-init_manifest.02.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/102-init_defaults.01.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/102-init_defaults.02.t:use lib qw( . lib ../lib ../../lib ); parrot-andy/t/configure/103-init_install.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/104-init_miniparrot.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/105-init_hints.01.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/105-init_hints.02.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/105-init_hints.03.t:use lib qw( . lib ../lib ../../lib t/configure/testlib ); parrot-andy/t/configure/106-init_headers.t:use lib qw( . lib ../lib ../../lib ); -- Andy Dougherty [EMAIL PROTECTED]