# 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]

Reply via email to