Update ExtUtils-MakeMaker to CPAN version 7.22
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Mon, 8 Aug 2016 11:12:30 +0000 (12:12 +0100)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Mon, 8 Aug 2016 11:12:30 +0000 (12:12 +0100)
  [DELTA]

7.22  Mon Aug  8 09:29:02 BST 2016

    No changes since 7.21_01

7.21_01 Sun Aug  7 10:37:53 BST 2016

    Bug fixes:
    - CVE-2016-1238: instmodsh sanitise @INC

7.20  Fri Aug  5 09:39:56 BST 2016

    No changes since 7.19_08

7.19_08 Thu Jul 28 12:31:13 BST 2016

    Bug fixes:
    - CVE-2016-1238: avoid loading VMS::Feature from the default .

7.19_07 Sun Jul  3 15:11:40 BST 2016

    Bug fixes:
    - Restore ordering issue involving OTHERLDFLAGS

7.19_06 Mon Jun 27 12:32:06 BST 2016

    Test fixes:
    - Skip subdirscomplex test on VMS

7.19_05 Mon Jun 20 15:21:52 BST 2016

    Doc fixes:
    - fix typos and add subdirs text to MakeMaker.pm

7.19_04 Tue Jun 14 11:16:19 BST 2016

    Bug fixes:
    - prevent EUMM::Locale from warning with old Win32.pm

    Doc fixes:
    - added examples for running tests in subdirs

7.19_03 Mon Jun 13 14:22:46 BST 2016

    Bug fixes:
    - Fix test warnings in MM_Unix.pm when in core

7.19_02 Mon Jun 13 09:57:37 BST 2016

    Bug fixes:
    - Check for ascii locale using normalized name

7.19_01 Thu Jun  2 14:26:20 BST 2016

    Bug fixes:
    - Cygwin: avoid libperl.dll.dll.a
    - Fix basic.t tests on Win32 in core

34 files changed:
Porting/Maintainers.pl
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
t/porting/customized.dat

index 080c3c5..4e682d9 100755 (executable)
@@ -505,7 +505,7 @@ use File::Glob qw(:case);
     },
 
     'ExtUtils::MakeMaker' => {
-        'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.18.tar.gz',
+        'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.22.tar.gz',
         'FILES'        => q[cpan/ExtUtils-MakeMaker],
         'EXCLUDED'     => [
             qr{^t/lib/Test/},
@@ -517,30 +517,6 @@ use File::Glob qw(:case);
             'README.packaging',
             'lib/ExtUtils/MakeMaker/version/vpp.pm',
         ],
-        'CUSTOMIZED' => [ qw( t/basic.t t/lib/MakeMaker/Test/Setup/XS.pm ),
-            # CVE-2016-1238
-            qw(
-               bin/instmodsh lib/ExtUtils/Command.pm
-               lib/ExtUtils/Command/MM.pm
-               lib/ExtUtils/Liblist.pm
-               lib/ExtUtils/Liblist/Kid.pm lib/ExtUtils/MM.pm
-               lib/ExtUtils/MM_AIX.pm lib/ExtUtils/MM_Any.pm
-               lib/ExtUtils/MM_BeOS.pm lib/ExtUtils/MM_Cygwin.pm
-               lib/ExtUtils/MM_DOS.pm lib/ExtUtils/MM_Darwin.pm
-               lib/ExtUtils/MM_MacOS.pm lib/ExtUtils/MM_NW5.pm
-               lib/ExtUtils/MM_OS2.pm lib/ExtUtils/MM_QNX.pm
-               lib/ExtUtils/MM_UWIN.pm lib/ExtUtils/MM_Unix.pm
-               lib/ExtUtils/MM_VMS.pm lib/ExtUtils/MM_VOS.pm
-               lib/ExtUtils/MM_Win32.pm lib/ExtUtils/MM_Win95.pm
-               lib/ExtUtils/MY.pm lib/ExtUtils/MakeMaker.pm
-               lib/ExtUtils/MakeMaker/Config.pm
-               lib/ExtUtils/MakeMaker/version.pm
-               lib/ExtUtils/MakeMaker/version/regex.pm
-               lib/ExtUtils/Mkbootstrap.pm
-               lib/ExtUtils/Mksymlists.pm
-               lib/ExtUtils/testlib.pm
-            ),
-        ],
     },
 
     'ExtUtils::Manifest' => {
index c214970..ab66f5a 100644 (file)
@@ -7,7 +7,7 @@ use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
 @ISA       = qw(Exporter);
 @EXPORT    = qw(cp rm_f rm_rf mv cat eqtime mkpath touch test_f test_d chmod
                 dos2unix);
-$VERSION = '7.18_01';
+$VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 my $Is_VMS   = $^O eq 'VMS';
index 4cb9855..f20fc0d 100644 (file)
@@ -10,7 +10,7 @@ our @ISA = qw(Exporter);
 
 our @EXPORT  = qw(test_harness pod2man perllocal_install uninstall
                   warn_if_old_packlist test_s cp_nonempty);
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 my $Is_VMS = $^O eq 'VMS';
index 687f2d8..eb9893a 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::Liblist;
 
 use strict;
 
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 use File::Spec;
index acdffcf..31cd212 100644 (file)
@@ -11,7 +11,7 @@ use 5.006;
 
 use strict;
 use warnings;
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 use ExtUtils::MakeMaker::Config;
index ab2e4e0..eff7d47 100644 (file)
@@ -3,7 +3,7 @@ package ExtUtils::MM;
 use strict;
 use ExtUtils::MakeMaker::Config;
 
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 require ExtUtils::Liblist;
index 770937d..a920948 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_AIX;
 
 use strict;
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Unix;
index c0fca75..40016a5 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_Any;
 
 use strict;
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 use Carp;
index 6edcc74..96d0f23 100644 (file)
@@ -26,7 +26,7 @@ require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
 
 our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 
index b4dfcff..59f14bd 100644 (file)
@@ -9,7 +9,7 @@ require ExtUtils::MM_Unix;
 require ExtUtils::MM_Win32;
 our @ISA = qw( ExtUtils::MM_Unix );
 
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 
@@ -87,7 +87,7 @@ sub init_linker {
     if ($Config{useshrplib} eq 'true') {
         my $libperl = '$(PERL_INC)' .'/'. "$Config{libperl}";
         if( $] >= 5.006002 ) {
-            $libperl =~ s/a$/dll.a/;
+            $libperl =~ s/(dll\.)?a$/dll.a/;
         }
         $self->{PERL_ARCHIVE} = $libperl;
     } else {
index 338fbe3..21f5846 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::MM_DOS;
 
 use strict;
 
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Any;
index ad8bb4f..95cd183 100644 (file)
@@ -7,7 +7,7 @@ BEGIN {
     our @ISA = qw( ExtUtils::MM_Unix );
 }
 
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 
index 48b0938..cd0feac 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::MM_MacOS;
 
 use strict;
 
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 sub new {
index 24fdaa3..bc4ffb7 100644 (file)
@@ -22,7 +22,7 @@ use strict;
 use ExtUtils::MakeMaker::Config;
 use File::Basename;
 
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Win32;
index 4325f96..60f19d0 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 use ExtUtils::MakeMaker qw(neatvalue);
 use File::Spec;
 
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Any;
index a0a02fd..ad2915c 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_QNX;
 
 use strict;
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Unix;
index d4d4c12..e2effbf 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_UWIN;
 
 use strict;
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Unix;
index 6763e57..3fc9514 100644 (file)
@@ -14,7 +14,7 @@ use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562);
 
 # If we make $VERSION an our variable parse_version() breaks
 use vars qw($VERSION);
-$VERSION = '7.18_01';
+$VERSION = '7.22';
 $VERSION = eval $VERSION;  ## no critic [BuiltinFunctions::ProhibitStringyEval]
 
 require ExtUtils::MM_Any;
@@ -1043,7 +1043,7 @@ sub xs_make_dynamic_lib {
         $ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" ';
     }
 
-    push @m, sprintf <<'MAKE', $ld_run_path_shell, $ldrun, $self->xs_obj_opt('$@'), $ldfrom, $libs, $exportlist;
+    push @m, sprintf <<'MAKE', $ld_run_path_shell, $ldrun, $ldfrom, $self->xs_obj_opt('$@'), $libs, $exportlist;
        %s$(LD) %s $(LDDLFLAGS) %s $(OTHERLDFLAGS) %s $(MYEXTLIB) \
          $(PERL_ARCHIVE) %s $(PERL_ARCHIVE_AFTER) %s \
          $(INST_DYNAMIC_FIX)
@@ -2065,7 +2065,7 @@ sub init_PERL {
 
     # Make sure perl can find itself before it's installed.
     my $lib_paths = $self->{UNINSTALLED_PERL} || $self->{PERL_CORE}
-        ? $self->{PERL_ARCHLIB} ne $self->{PERL_LIB} ?
+        ? ( $self->{PERL_ARCHLIB} && $self->{PERL_LIB} && $self->{PERL_ARCHLIB} ne $self->{PERL_LIB} ) ?
             q{ "-I$(PERL_LIB)" "-I$(PERL_ARCHLIB)"} : q{ "-I$(PERL_LIB)"}
         : undef;
     my $inst_lib_paths = $self->{INST_ARCHLIB} ne $self->{INST_LIB}
@@ -2658,7 +2658,7 @@ $(INST_ARCHAUTODIR)/extralibs.all : $(INST_ARCHAUTODIR)$(DFSEP).exists '.join("
 
     my $ldfrom = $self->{XSMULTI} ? '' : '$(LDFROM)';
     #                             1     2                        3        4
-    push @m, _sprintf562 <<'EOF', $tmp, $self->xs_obj_opt('$@'), $ldfrom, $makefilename;
+    push @m, _sprintf562 <<'EOF', $tmp, $ldfrom, $self->xs_obj_opt('$@'), $makefilename;
 $(MAP_TARGET) :: %1$s/perlmain$(OBJ_EXT) $(MAP_LIBPERLDEP) $(MAP_STATICDEP) $(INST_ARCHAUTODIR)/extralibs.all
        $(MAP_LINKCMD) %2$s $(OPTIMIZE) %1$s/perlmain$(OBJ_EXT) %3$s $(MAP_STATIC) "$(LLIBPERL)" `cat $(INST_ARCHAUTODIR)/extralibs.all` $(MAP_PRELIBS)
        $(NOECHO) $(ECHO) "To install the new '$(MAP_TARGET)' binary, call"
index 4f19689..74f5e6f 100644 (file)
@@ -15,7 +15,7 @@ BEGIN {
 
 use File::Basename;
 
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Any;
index e342fd3..0a45271 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_VOS;
 
 use strict;
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Unix;
index ee2a7e3..1c0b0ae 100644 (file)
@@ -27,7 +27,7 @@ use ExtUtils::MakeMaker qw(neatvalue _sprintf562);
 require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
 our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 $ENV{EMXSHELL} = 'sh'; # to run `commands`
index 8b345c2..d357b3f 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::MM_Win95;
 
 use strict;
 
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Win32;
index 95532d7..13ee82a 100644 (file)
@@ -3,7 +3,7 @@ package ExtUtils::MY;
 use strict;
 require ExtUtils::MM;
 
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 our @ISA = qw(ExtUtils::MM);
 
index 6e8e4ad..b2253c8 100644 (file)
@@ -12,7 +12,7 @@ use Carp;
 use File::Path;
 my $CAN_DECODE = eval { require ExtUtils::MakeMaker::Locale; }; # 2 birds, 1 stone
 eval { ExtUtils::MakeMaker::Locale::reinit('UTF-8') }
-  if $CAN_DECODE and $ExtUtils::MakeMaker::Locale::ENCODING_LOCALE eq 'US-ASCII';
+  if $CAN_DECODE and Encode::find_encoding('locale')->name eq 'ascii';
 
 our $Verbose = 0;       # exported
 our @Parent;            # needs to be localized
@@ -24,7 +24,7 @@ my %Recognized_Att_Keys;
 our %macro_fsentity; # whether a macro is a filesystem name
 our %macro_dep; # whether a macro is a dependency
 
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;  ## no critic [BuiltinFunctions::ProhibitStringyEval]
 
 # Emulate something resembling CVS $Revision$
@@ -1466,6 +1466,23 @@ MakeMaker also checks for any files matching glob("t/*.t"). It will
 execute all matching files in alphabetical order via the
 L<Test::Harness> module with the C<-I> switches set correctly.
 
+You can also organize your tests within subdirectories in the F<t/> directory.
+To do so, use the F<test> directive in your I<Makefile.PL>. For example, if you
+had tests in:
+
+    t/foo
+    t/foo/bar
+
+You could tell make to run tests in both of those directories with the
+following directives:
+
+    test => {TESTS => 't/*/*.t t/*/*/*.t'}
+    test => {TESTS => 't/foo/*.t t/foo/bar/*.t'}
+
+The first will run all test files in all first-level subdirectories and all
+subdirectories they contain. The second will run tests in only the F<t/foo>
+and F<t/foo/bar>.
+
 If you'd like to see the raw output of your tests, set the
 C<TEST_VERBOSE> variable to true.
 
index 1b92bef..5870766 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::MakeMaker::Config;
 
 use strict;
 
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 use Config ();
index 6f59192..e965f33 100644 (file)
@@ -1,6 +1,6 @@
 package ExtUtils::MakeMaker::FAQ;
 
-our $VERSION = '7.18';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 1;
@@ -120,6 +120,29 @@ have multiple modules to work with.  It also ensures that the module
 goes through its full installation process which may modify it.
 Again, L<local::lib> may assist you here.
 
+=item How can I organize tests into subdirectories and have them run?
+
+Let's take the following test directory structure:
+
+    t/foo/sometest.t
+    t/bar/othertest.t
+    t/bar/baz/anothertest.t
+
+Now, inside of the C<WriteMakeFile()> function in your F<Makefile.PL>, specify
+where your tests are located with the C<test> directive:
+
+    test => {TESTS => 't/*.t t/*/*.t t/*/*/*.t'}
+
+The first entry in the string will run all tests in the top-level F<t/> 
+directory. The second will run all test files located in any subdirectory under
+F<t/>. The third, runs all test files within any subdirectory within any other
+subdirectory located under F<t/>.
+
+Note that you do not have to use wildcards. You can specify explicitly which
+subdirectories to run tests in:
+
+    test => {TESTS => 't/*.t t/foo/*.t t/bar/baz/*.t'}
+
 =item PREFIX vs INSTALL_BASE from Module::Build::Cookbook
 
 The behavior of PREFIX is complicated and depends closely on how your
index 21f5974..11b0987 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MakeMaker::Locale;
 
 use strict;
-our $VERSION = "7.18";
+our $VERSION = "7.22";
 $VERSION = eval $VERSION;
 
 use base 'Exporter';
@@ -28,11 +28,8 @@ sub _init {
            eval {
                unless (defined &GetConsoleCP) {
                    require Win32;
-                    # no point falling back to Win32::GetConsoleCP from this
-                    # as added same time, 0.45
-                    eval { Win32::GetConsoleCP() };
                     # manually "import" it since Win32->import refuses
-                   *GetConsoleCP = sub { &Win32::GetConsoleCP } unless $@;
+                   *GetConsoleCP = sub { &Win32::GetConsoleCP } if defined &Win32::GetConsoleCP;
                }
                unless (defined &GetConsoleCP) {
                    require Win32::API;
@@ -52,18 +49,17 @@ sub _init {
                     require Win32;
                     eval { Win32::GetConsoleCP() };
                     # manually "import" it since Win32->import refuses
-                    *GetInputCP = sub { &Win32::GetConsoleCP } unless $@;
-                    *GetOutputCP = sub { &Win32::GetConsoleOutputCP } unless $@;
+                    *GetInputCP = sub { &Win32::GetConsoleCP } if defined &Win32::GetConsoleCP;
+                    *GetOutputCP = sub { &Win32::GetConsoleOutputCP } if defined &Win32::GetConsoleOutputCP;
                 };
                 unless (defined &GetInputCP) {
                     eval {
                         # try Win32::Console module for codepage to use
                         require Win32::Console;
-                        eval { Win32::Console::InputCP() };
                         *GetInputCP = sub { &Win32::Console::InputCP }
-                            unless $@;
+                            if defined &Win32::Console::InputCP;
                         *GetOutputCP = sub { &Win32::Console::OutputCP }
-                            unless $@;
+                            if defined &Win32::Console::OutputCP;
                     };
                 }
                 unless (defined &GetInputCP) {
index 976345f..4130ded 100644 (file)
@@ -1,6 +1,6 @@
 package ExtUtils::MakeMaker::Tutorial;
 
-our $VERSION = '7.18';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 
@@ -104,8 +104,39 @@ is F<lib/Foo/Bar.pm>.
 =item t/
 
 Tests for your modules go here.  Each test filename ends with a .t.
-So F<t/foo.t>/  'make test' will run these tests.  The directory is flat,
-you cannot, for example, have t/foo/bar.t run by 'make test'.
+So F<t/foo.t>  'make test' will run these tests.
+
+Typically, the F<t/> test directory is flat, with all test files located
+directly within it. However, you can nest tests within subdirectories, for
+example:
+
+    t/foo/subdir_test.t
+
+To do this, you need to inform C<WriteMakeFile()> in your I<Makefile.PL> file
+in the following fashion:
+
+    test => {TESTS => 't/*.t t/*/*.t'}
+
+That will run all tests in F<t/>, as well as all tests in all subdirectories
+that reside under F<t/>. You can nest as deeply as makes sense for your project. 
+Simply add another entry in the test location string. For example, to test:
+
+    t/foo/bar/subdir_test.t
+
+You would use the following C<test> directive:
+
+    test => {TESTS => 't/*.t t/*/*/*.t}
+
+Note that in the above example, tests in the first subdirectory will not be
+run. To run all tests in the intermediary subdirectory preceeding the one
+the test files are in, you need to explicitly note it:
+
+    test => {TESTS => 't/*.t t/*/*.t t/*/*/*.t'}
+
+You don't need to specify wildcards if you only want to test within specific
+subdirectories. The following example will only run tests in F<t/foo>:
+
+    test => {TESTS => 't/foo/*.t'}
 
 Tests are run from the top level of your distribution.  So inside a test
 you would refer to ./lib to enter the lib directory, for example.
index 6073163..e80d1b0 100644 (file)
@@ -15,7 +15,7 @@ use strict;
 
 use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);
 
-$VERSION = '7.18_01';
+$VERSION = '7.22';
 $VERSION = eval $VERSION;
 $CLASS = 'version';
 
index 8188fac..59be0ad 100644 (file)
@@ -10,7 +10,7 @@ use strict;
 
 use vars qw($VERSION $CLASS $STRICT $LAX);
 
-$VERSION = '7.18_01';
+$VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 #--------------------------------------------------------------------------#
index 3c329b3..1ac9fd0 100644 (file)
@@ -3,7 +3,7 @@ package ExtUtils::Mkbootstrap;
 # There's just too much Dynaloader incest here to turn on strict vars.
 use strict 'refs';
 
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 require Exporter;
index 1553fa7..f6b40e9 100644 (file)
@@ -10,7 +10,7 @@ use Config;
 
 our @ISA = qw(Exporter);
 our @EXPORT = qw(&Mksymlists);
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 sub Mksymlists {
index 669944b..15cc069 100644 (file)
@@ -3,7 +3,7 @@ package ExtUtils::testlib;
 use strict;
 use warnings;
 
-our $VERSION = '7.18_01';
+our $VERSION = '7.22';
 $VERSION = eval $VERSION;
 
 use Cwd;
index b070d47..5e884d3 100644 (file)
@@ -17,38 +17,6 @@ Encode cpan/Encode/bin/ucmlint 495862125269a60536b78fd0a7910d024c4d21fe
 Encode cpan/Encode/bin/unidump 715f47c2fcc661268f3c6cd3de0d27c72b745cd2
 Encode cpan/Encode/Encode.pm 8c876d97ab6b8539254b707a00fae2be47464225
 ExtUtils::Constant cpan/ExtUtils-Constant/t/Constant.t a0369c919e216fb02767a637666bb4577ad79b02
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/bin/instmodsh 5bc04a0173b8b787f465271b6186220326ae8eef
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm 98c19c801e63b13ed9adc997266d636452f665ce
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm e2d82b6b0055bc53232acf5d534b595ea08655c7
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm 96df851ef75abaf6ea025a1d4c320c971cd384c1
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm 11bd480b181898f67ab12531374c7e45fe4866f0
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm cab04dfa062f89517fe2f43197bb799c4af02ec4
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm 5a1f556b8c1236e46c8f80a86452858168183ec8
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm 2cd314cd1ce27c91be13463be11c638ad854d79b
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm 312822d06d5d2435b1cd9e7505c3a70d9d8ba27f
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm bad698567f4a27706fe6c6f653ec1cc2ad7487b1
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm ed2f726eaed3f4c9353c444cd031a1a0da106263
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm a6c9b7ff946a87638a508c80396612776419f7d6
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm 0e26d258f50e34c0638e97962a9a4c26a130d836
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm 56aa847736bbc0ae3bc0656be1b331b40e338050
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm d0c51b23bd5a53948636317e28b7f34eb8a5805a
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm afc99adc2815e016da8b086fbb2fb67e80f2a945
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm 67b59d460239edecf9c484cb1bbe9103aa812a8e
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm 353a9406eb80dc808bfeb1c991051df0b0974958
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm a2d0cc32d66182da646230c3557d936f44d89c9f
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm 9f4c376d2e3be0101c235d551abf4ace2bb946a3
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm caefb41b35f8fb802d50e783a80c3841e37dd89c
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm 468ea0c1c553b97aef37949e3d0276462339a14c
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 81a2c0d316a9fd8da5daacf2a5d2789a00d77c56
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm af17f5605d16d900b24b1e3c298ef20734bd08ed
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm 258b917fce8db401786c524ef537370b80bd61a4
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm 05352d7a3da96d069403f405eafe36db90c7d39c
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm 2f30851b20f6fd8a54e370e2cb8d8b45dda7fe02
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm 36af15cd65e3ba8bb750cdcef02b511871cddeb9
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm 995cf2cf0e6685b4ade7703572982dd3da856163
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm ba719a18c65c2773ec8177c2065134bef44ffdc3
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/basic.t b7ee8691baf37197bf4249534f429fcf28f5cedf
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm 27aaa6acefd4223b57de74299314c19891ed17bc
 File::Fetch cpan/File-Fetch/lib/File/Fetch.pm bd0b64a1d8ee2ffac39e017f9fa9f78f95514b4d
 File::Path cpan/File-Path/lib/File/Path.pm fd8ce4420a0c113d3f47dd3223859743655c1da8
 File::Path cpan/File-Path/t/Path_win32.t 94b9276557ce7f80b91f6fd9bfa7a0cd9bf9683e