In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/38660758eac8adeb295dc909fd99ee5a859cf108?hp=c61e1036def76421218ced7bf9b9d7aab44775b7>

- Log -----------------------------------------------------------------
commit 38660758eac8adeb295dc909fd99ee5a859cf108
Author: Steve Hay <[email protected]>
Date:   Tue Jun 28 14:18:30 2016 +0100

    Upgrade version from version 0.9916 to 0.9917

M       Porting/Maintainers.pl
M       cpan/version/lib/version.pm
M       cpan/version/lib/version/regex.pm
M       cpan/version/t/01base.t
M       cpan/version/t/02derived.t
M       cpan/version/t/03require.t
M       cpan/version/t/04strict_lax.t
M       cpan/version/t/05sigdie.t
M       cpan/version/t/06noop.t
M       cpan/version/t/07locale.t
M       cpan/version/t/08_corelist.t
M       cpan/version/t/09_list_util.t
M       t/porting/customized.dat

commit 35014935159564940825397b43157b99208639f4
Author: Steve Hay <[email protected]>
Date:   Tue Jun 28 14:01:47 2016 +0100

    Upgrade Test::Simple from version 1.302026 to 1.302035

M       MANIFEST
M       Porting/Maintainers.pl
M       cpan/Test-Simple/lib/Test/Builder.pm
M       cpan/Test-Simple/lib/Test/Builder/Formatter.pm
M       cpan/Test-Simple/lib/Test/Builder/Module.pm
M       cpan/Test-Simple/lib/Test/Builder/Tester.pm
M       cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm
M       cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm
M       cpan/Test-Simple/lib/Test/More.pm
M       cpan/Test-Simple/lib/Test/Simple.pm
M       cpan/Test-Simple/lib/Test/Tester.pm
M       cpan/Test-Simple/lib/Test/Tester/Capture.pm
M       cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm
M       cpan/Test-Simple/lib/Test/Tester/Delegate.pm
M       cpan/Test-Simple/lib/Test/use/ok.pm
M       cpan/Test-Simple/lib/Test2.pm
M       cpan/Test-Simple/lib/Test2/API.pm
M       cpan/Test-Simple/lib/Test2/API/Breakage.pm
M       cpan/Test-Simple/lib/Test2/API/Context.pm
M       cpan/Test-Simple/lib/Test2/API/Instance.pm
M       cpan/Test-Simple/lib/Test2/API/Stack.pm
M       cpan/Test-Simple/lib/Test2/Event.pm
M       cpan/Test-Simple/lib/Test2/Event/Bail.pm
M       cpan/Test-Simple/lib/Test2/Event/Diag.pm
M       cpan/Test-Simple/lib/Test2/Event/Exception.pm
M       cpan/Test-Simple/lib/Test2/Event/Generic.pm
M       cpan/Test-Simple/lib/Test2/Event/Note.pm
M       cpan/Test-Simple/lib/Test2/Event/Ok.pm
M       cpan/Test-Simple/lib/Test2/Event/Plan.pm
M       cpan/Test-Simple/lib/Test2/Event/Skip.pm
M       cpan/Test-Simple/lib/Test2/Event/Subtest.pm
M       cpan/Test-Simple/lib/Test2/Event/Waiting.pm
M       cpan/Test-Simple/lib/Test2/Formatter.pm
M       cpan/Test-Simple/lib/Test2/Formatter/TAP.pm
M       cpan/Test-Simple/lib/Test2/Hub.pm
M       cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm
M       cpan/Test-Simple/lib/Test2/Hub/Interceptor/Terminator.pm
M       cpan/Test-Simple/lib/Test2/Hub/Subtest.pm
M       cpan/Test-Simple/lib/Test2/IPC.pm
M       cpan/Test-Simple/lib/Test2/IPC/Driver.pm
M       cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm
M       cpan/Test-Simple/lib/Test2/Transition.pod
M       cpan/Test-Simple/lib/Test2/Util.pm
M       cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm
M       cpan/Test-Simple/lib/Test2/Util/HashBase.pm
M       cpan/Test-Simple/lib/Test2/Util/Trace.pm
M       cpan/Test-Simple/lib/ok.pm
A       cpan/Test-Simple/t/Legacy/Regression/683_thread_todo.t
A       cpan/Test-Simple/t/Test2/behavior/run_subtest_inherit.t
A       cpan/Test-Simple/t/regression/684-nested_todo_diag.t

commit 4af080e17c75177da18080e5e66cbdb45c802731
Author: Steve Hay <[email protected]>
Date:   Tue Jun 28 13:46:07 2016 +0100

    We're in sync with CPAN version 2.14

M       Porting/Maintainers.pl

commit b47c3b41e0014f0f0fab00672567f2470b8bc65f
Author: Steve Hay <[email protected]>
Date:   Tue Jun 28 13:40:31 2016 +0100

    We're closer to being in sync with XSLoader 0.20 than with 0.16
    
    (This just drops the module off the list of modules that are "behind" the
    latest CPAN release. We're actually slightly *ahead* of CPAN.)

M       Porting/Maintainers.pl

commit ea8e5adcc27333e3b2ac81e8be234b7375ac544c
Author: Steve Hay <[email protected]>
Date:   Tue Jun 28 13:35:10 2016 +0100

    Upgrade Perl::OSType from version 1.009 to 1.010

M       Porting/Maintainers.pl
M       cpan/Perl-OSType/lib/Perl/OSType.pm
-----------------------------------------------------------------------

Summary of changes:
 MANIFEST                                           |  3 +
 Porting/Maintainers.pl                             | 17 ++---
 cpan/Perl-OSType/lib/Perl/OSType.pm                | 17 +++--
 cpan/Test-Simple/lib/Test/Builder.pm               | 15 ++--
 cpan/Test-Simple/lib/Test/Builder/Formatter.pm     |  2 +-
 cpan/Test-Simple/lib/Test/Builder/Module.pm        |  2 +-
 cpan/Test-Simple/lib/Test/Builder/Tester.pm        |  2 +-
 cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm  |  2 +-
 cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm      |  2 +-
 cpan/Test-Simple/lib/Test/More.pm                  | 17 +++--
 cpan/Test-Simple/lib/Test/Simple.pm                |  2 +-
 cpan/Test-Simple/lib/Test/Tester.pm                |  2 +-
 cpan/Test-Simple/lib/Test/Tester/Capture.pm        |  2 +-
 cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm  |  2 +-
 cpan/Test-Simple/lib/Test/Tester/Delegate.pm       |  2 +-
 cpan/Test-Simple/lib/Test/use/ok.pm                |  2 +-
 cpan/Test-Simple/lib/Test2.pm                      |  2 +-
 cpan/Test-Simple/lib/Test2/API.pm                  | 40 +++++++++--
 cpan/Test-Simple/lib/Test2/API/Breakage.pm         |  3 +-
 cpan/Test-Simple/lib/Test2/API/Context.pm          |  2 +-
 cpan/Test-Simple/lib/Test2/API/Instance.pm         |  2 +-
 cpan/Test-Simple/lib/Test2/API/Stack.pm            |  2 +-
 cpan/Test-Simple/lib/Test2/Event.pm                |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Bail.pm           |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Diag.pm           |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Exception.pm      |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Generic.pm        |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Note.pm           |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Ok.pm             |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Plan.pm           |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Skip.pm           |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Subtest.pm        |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Waiting.pm        |  2 +-
 cpan/Test-Simple/lib/Test2/Formatter.pm            |  2 +-
 cpan/Test-Simple/lib/Test2/Formatter/TAP.pm        |  4 +-
 cpan/Test-Simple/lib/Test2/Hub.pm                  |  6 +-
 cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm      |  2 +-
 .../lib/Test2/Hub/Interceptor/Terminator.pm        |  2 +-
 cpan/Test-Simple/lib/Test2/Hub/Subtest.pm          |  2 +-
 cpan/Test-Simple/lib/Test2/IPC.pm                  |  2 +-
 cpan/Test-Simple/lib/Test2/IPC/Driver.pm           |  2 +-
 cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm     |  2 +-
 cpan/Test-Simple/lib/Test2/Transition.pod          | 14 +++-
 cpan/Test-Simple/lib/Test2/Util.pm                 |  2 +-
 cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm    |  2 +-
 cpan/Test-Simple/lib/Test2/Util/HashBase.pm        |  2 +-
 cpan/Test-Simple/lib/Test2/Util/Trace.pm           |  2 +-
 cpan/Test-Simple/lib/ok.pm                         |  2 +-
 .../threads.t => Regression/683_thread_todo.t}     | 25 ++++---
 .../t/Test2/behavior/run_subtest_inherit.t         | 84 ++++++++++++++++++++++
 .../t/regression/684-nested_todo_diag.t            | 23 ++++++
 cpan/version/lib/version.pm                        |  2 +-
 cpan/version/lib/version/regex.pm                  |  6 +-
 cpan/version/t/01base.t                            |  2 +-
 cpan/version/t/02derived.t                         |  2 +-
 cpan/version/t/03require.t                         |  2 +-
 cpan/version/t/04strict_lax.t                      |  8 +++
 cpan/version/t/05sigdie.t                          |  2 +-
 cpan/version/t/06noop.t                            |  2 +-
 cpan/version/t/07locale.t                          |  2 +-
 cpan/version/t/08_corelist.t                       |  2 +-
 cpan/version/t/09_list_util.t                      |  2 +-
 t/porting/customized.dat                           |  2 +-
 63 files changed, 278 insertions(+), 100 deletions(-)
 copy cpan/Test-Simple/t/Legacy/{subtest/threads.t => 
Regression/683_thread_todo.t} (53%)
 create mode 100644 cpan/Test-Simple/t/Test2/behavior/run_subtest_inherit.t
 create mode 100644 cpan/Test-Simple/t/regression/684-nested_todo_diag.t

diff --git a/MANIFEST b/MANIFEST
index 42e85cf..91e7d6e 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -2647,6 +2647,7 @@ cpan/Test-Simple/t/Legacy/plan_no_plan.t
 cpan/Test-Simple/t/Legacy/plan_shouldnt_import.t
 cpan/Test-Simple/t/Legacy/plan_skip_all.t
 cpan/Test-Simple/t/Legacy/Regression/637.t
+cpan/Test-Simple/t/Legacy/Regression/683_thread_todo.t
 cpan/Test-Simple/t/Legacy/require_ok.t
 cpan/Test-Simple/t/Legacy/run_test.t
 cpan/Test-Simple/t/Legacy/simple.t
@@ -2718,6 +2719,7 @@ 
cpan/Test-Simple/t/lib/Test/Simple/sample_tests/two_fail.plx
 cpan/Test-Simple/t/lib/TieOut.pm
 cpan/Test-Simple/t/regression/642_persistent_end.t
 cpan/Test-Simple/t/regression/662-tbt-no-plan.t
+cpan/Test-Simple/t/regression/684-nested_todo_diag.t
 cpan/Test-Simple/t/regression/no_name_in_subtest.t
 cpan/Test-Simple/t/Test2/acceptance/try_it_done_testing.t
 cpan/Test-Simple/t/Test2/acceptance/try_it_fork.t
@@ -2730,6 +2732,7 @@ cpan/Test-Simple/t/Test2/behavior/err_var.t
 cpan/Test-Simple/t/Test2/behavior/init_croak.t
 cpan/Test-Simple/t/Test2/behavior/nested_context_exception.t
 cpan/Test-Simple/t/Test2/behavior/no_load_api.t
+cpan/Test-Simple/t/Test2/behavior/run_subtest_inherit.t
 cpan/Test-Simple/t/Test2/behavior/Subtest_buffer_formatter.t
 cpan/Test-Simple/t/Test2/behavior/Subtest_events.t
 cpan/Test-Simple/t/Test2/behavior/Taint.t
diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl
index 206f340..f97cec1 100755
--- a/Porting/Maintainers.pl
+++ b/Porting/Maintainers.pl
@@ -248,7 +248,7 @@ use File::Glob qw(:case);
     },
 
     'CPAN' => {
-        'DISTRIBUTION' => 'ANDK/CPAN-2.14-TRIAL.tar.gz',
+        'DISTRIBUTION' => 'ANDK/CPAN-2.14.tar.gz',
         'FILES'        => q[cpan/CPAN],
         'EXCLUDED'     => [
             qr{^distroprefs/},
@@ -860,7 +860,7 @@ use File::Glob qw(:case);
     },
 
     'Perl::OSType' => {
-        'DISTRIBUTION' => 'DAGOLDEN/Perl-OSType-1.009.tar.gz',
+        'DISTRIBUTION' => 'DAGOLDEN/Perl-OSType-1.010.tar.gz',
         'FILES'        => q[cpan/Perl-OSType],
         'EXCLUDED'     => [qw(tidyall.ini), qr/^xt/, qr{^t/00-}],
     },
@@ -1058,21 +1058,16 @@ use File::Glob qw(:case);
     },
 
     'Test::Simple' => {
-        'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302026.tar.gz',
+        'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302035.tar.gz',
         'FILES'        => q[cpan/Test-Simple],
         'EXCLUDED'     => [
-            qr{^t/xt},
             qr{^xt},
-            qw( .perlcriticrc
-                .perltidyrc
-                perltidyrc
-                dist.ini
+            qw( perltidyrc
                 examples/indent.pl
                 examples/subtest.t
                 examples/tools.pl
                 examples/tools.t
                 t/00compile.t
-                t/xxx-changes_updated.t
                 t/00-report.t
                 t/zzz-check-breaks.t
                 ),
@@ -1222,7 +1217,7 @@ use File::Glob qw(:case);
     },
 
     'version' => {
-        'DISTRIBUTION' => 'JPEACOCK/version-0.9916.tar.gz',
+        'DISTRIBUTION' => 'JPEACOCK/version-0.9917.tar.gz',
         'FILES'        => q[cpan/version vutil.c vutil.h vxs.inc],
         'EXCLUDED' => [
             qr{^vutil/lib/},
@@ -1271,7 +1266,7 @@ use File::Glob qw(:case);
     },
 
     'XSLoader' => {
-        'DISTRIBUTION' => 'SAPER/XSLoader-0.16.tar.gz',
+        'DISTRIBUTION' => 'SAPER/XSLoader-0.20.tar.gz',
         'FILES'        => q[dist/XSLoader],
         'EXCLUDED'     => [
             qr{^eg/},
diff --git a/cpan/Perl-OSType/lib/Perl/OSType.pm 
b/cpan/Perl-OSType/lib/Perl/OSType.pm
index 8a91577..a72dd02 100644
--- a/cpan/Perl-OSType/lib/Perl/OSType.pm
+++ b/cpan/Perl-OSType/lib/Perl/OSType.pm
@@ -4,7 +4,7 @@ use warnings;
 package Perl::OSType;
 # ABSTRACT: Map Perl operating system names to generic types
 
-our $VERSION = '1.009';
+our $VERSION = '1.010';
 
 require Exporter;
 our @ISA = qw(Exporter);
@@ -47,6 +47,7 @@ my %OSTYPES = qw(
   solaris     Unix
   sunos       Unix
   cygwin      Unix
+  msys        Unix
   os2         Unix
   interix     Unix
   gnu         Unix
@@ -96,7 +97,7 @@ Perl::OSType - Map Perl operating system names to generic 
types
 
 =head1 VERSION
 
-version 1.009
+version 1.010
 
 =head1 SYNOPSIS
 
@@ -175,7 +176,7 @@ David Golden <[email protected]>
 
 =head1 CONTRIBUTORS
 
-=for stopwords Chris 'BinGOs' Williams Jonas B. Nielsen Owain G. Ainsworth 
Paul Green Piotr Roszatycki
+=for stopwords Chris 'BinGOs' Williams David Golden Graham Ollis Jonas B. 
Nielsen Owain G. Ainsworth Paul Green Piotr Roszatycki
 
 =over 4
 
@@ -185,6 +186,14 @@ Chris 'BinGOs' Williams <[email protected]>
 
 =item *
 
+David Golden <[email protected]>
+
+=item *
+
+Graham Ollis <[email protected]>
+
+=item *
+
 Jonas B. Nielsen <[email protected]>
 
 =item *
@@ -203,7 +212,7 @@ Piotr Roszatycki <[email protected]>
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2015 by David Golden.
+This software is copyright (c) 2016 by David Golden.
 
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
diff --git a/cpan/Test-Simple/lib/Test/Builder.pm 
b/cpan/Test-Simple/lib/Test/Builder.pm
index 6e0c88e..e04dd39 100644
--- a/cpan/Test-Simple/lib/Test/Builder.pm
+++ b/cpan/Test-Simple/lib/Test/Builder.pm
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 BEGIN {
     if( $] < 5.008 ) {
@@ -51,7 +51,7 @@ sub _add_ts_hooks {
 
     #$hub->add_context_aquire(sub {$_[0]->{level} += $Level - 1});
 
-    $hub->filter(sub {
+    $hub->pre_filter(sub {
         my ($active_hub, $e) = @_;
 
         my $epkg = $$epkgr;
@@ -65,7 +65,6 @@ sub _add_ts_hooks {
 
         return $e unless $todo;
 
-
         # Turn a diag into a todo diag
         return Test::Builder::TodoDiag->new(%$e) if ref($e) eq 
'Test2::Event::Diag';
 
@@ -82,7 +81,7 @@ sub _add_ts_hooks {
         }
 
         return $e;
-    });
+    }, inherit => 1);
 }
 
 sub new {
@@ -177,14 +176,14 @@ sub child {
         class => 'Test2::Hub::Subtest',
     );
 
-    $hub->filter(sub {
+    $hub->pre_filter(sub {
         my ($active_hub, $e) = @_;
 
         # Turn a diag into a todo diag
         return Test::Builder::TodoDiag->new(%$e) if ref($e) eq 
'Test2::Event::Diag';
 
         return $e;
-    }) if $orig_TODO;
+    }, inherit => 1) if $orig_TODO;
 
     $hub->listen(sub { push @$subevents => $_[1] });
 
@@ -1456,7 +1455,7 @@ sub todo_start {
     my $ctx = $self->ctx;
 
     my $hub = $ctx->hub;
-    my $filter = $hub->filter(sub {
+    my $filter = $hub->pre_filter(sub {
         my ($active_hub, $e) = @_;
 
         # Turn a diag into a todo diag
@@ -1493,7 +1492,7 @@ sub todo_end {
 
     $ctx->throw('todo_end() called without todo_start()') unless $set;
 
-    $ctx->hub->unfilter($set->[0]);
+    $ctx->hub->pre_unfilter($set->[0]);
 
     $ctx->release;
 
diff --git a/cpan/Test-Simple/lib/Test/Builder/Formatter.pm 
b/cpan/Test-Simple/lib/Test/Builder/Formatter.pm
index bfa429a..9b70d58 100644
--- a/cpan/Test-Simple/lib/Test/Builder/Formatter.pm
+++ b/cpan/Test-Simple/lib/Test/Builder/Formatter.pm
@@ -2,7 +2,7 @@ package Test::Builder::Formatter;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 BEGIN { require Test2::Formatter::TAP; our @ISA = qw(Test2::Formatter::TAP) }
 
diff --git a/cpan/Test-Simple/lib/Test/Builder/Module.pm 
b/cpan/Test-Simple/lib/Test/Builder/Module.pm
index fbdcdc2..72d7bea 100644
--- a/cpan/Test-Simple/lib/Test/Builder/Module.pm
+++ b/cpan/Test-Simple/lib/Test/Builder/Module.pm
@@ -7,7 +7,7 @@ use Test::Builder;
 require Exporter;
 our @ISA = qw(Exporter);
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 =head1 NAME
diff --git a/cpan/Test-Simple/lib/Test/Builder/Tester.pm 
b/cpan/Test-Simple/lib/Test/Builder/Tester.pm
index 3fcf665..1d93568 100644
--- a/cpan/Test-Simple/lib/Test/Builder/Tester.pm
+++ b/cpan/Test-Simple/lib/Test/Builder/Tester.pm
@@ -1,7 +1,7 @@
 package Test::Builder::Tester;
 
 use strict;
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 use Test::Builder;
 use Symbol;
diff --git a/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm 
b/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm
index 8ed6c50..43d833c 100644
--- a/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm
+++ b/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm
@@ -1,7 +1,7 @@
 package Test::Builder::Tester::Color;
 
 use strict;
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 require Test::Builder::Tester;
 
diff --git a/cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm 
b/cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm
index 379ec3b..b319377 100644
--- a/cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm
+++ b/cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm
@@ -2,7 +2,7 @@ package Test::Builder::TodoDiag;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 BEGIN { require Test2::Event::Diag; our @ISA = qw(Test2::Event::Diag) }
 
diff --git a/cpan/Test-Simple/lib/Test/More.pm 
b/cpan/Test-Simple/lib/Test/More.pm
index 275de7a..e0c2f84 100644
--- a/cpan/Test-Simple/lib/Test/More.pm
+++ b/cpan/Test-Simple/lib/Test/More.pm
@@ -17,7 +17,7 @@ sub _carp {
     return warn @_, " at $file line $line\n";
 }
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 use Test::Builder::Module;
 our @ISA    = qw(Test::Builder::Module);
@@ -724,7 +724,7 @@ sub new_ok {
 
 =item B<subtest>
 
-    subtest $name => \&code;
+    subtest $name => \&code, @args;
 
 C<subtest()> runs the &code as its own little test with its own plan and
 its own result.  The main test counts this as a single test using the
@@ -783,11 +783,20 @@ subtests are equivalent:
       done_testing();
   };
 
+Extra arguments given to C<subtest> are passed to the callback. For example:
+
+    sub my_subtest {
+        my $range = shift;
+        ...
+    }
+
+    for my $range (1, 10, 100, 1000) {
+        subtest "testing range $range", \&my_subtest, $range;
+    }
+
 =cut
 
 sub subtest {
-    my ($name, $subtests) = @_;
-
     my $tb = Test::More->builder;
     return $tb->subtest(@_);
 }
diff --git a/cpan/Test-Simple/lib/Test/Simple.pm 
b/cpan/Test-Simple/lib/Test/Simple.pm
index d42f401..d0f9f06 100644
--- a/cpan/Test-Simple/lib/Test/Simple.pm
+++ b/cpan/Test-Simple/lib/Test/Simple.pm
@@ -4,7 +4,7 @@ use 5.006;
 
 use strict;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 use Test::Builder::Module;
 our @ISA    = qw(Test::Builder::Module);
diff --git a/cpan/Test-Simple/lib/Test/Tester.pm 
b/cpan/Test-Simple/lib/Test/Tester.pm
index 28a3acb..88323f5 100644
--- a/cpan/Test-Simple/lib/Test/Tester.pm
+++ b/cpan/Test-Simple/lib/Test/Tester.pm
@@ -18,7 +18,7 @@ require Exporter;
 
 use vars qw( @ISA @EXPORT );
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 @EXPORT = qw( run_tests check_tests check_test cmp_results show_space );
 @ISA = qw( Exporter );
diff --git a/cpan/Test-Simple/lib/Test/Tester/Capture.pm 
b/cpan/Test-Simple/lib/Test/Tester/Capture.pm
index d486dca..3eb945f 100644
--- a/cpan/Test-Simple/lib/Test/Tester/Capture.pm
+++ b/cpan/Test-Simple/lib/Test/Tester/Capture.pm
@@ -2,7 +2,7 @@ use strict;
 
 package Test::Tester::Capture;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 use Test::Builder;
diff --git a/cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm 
b/cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm
index 3b0d688..03714fe 100644
--- a/cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm
+++ b/cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm
@@ -3,7 +3,7 @@ use strict;
 
 package Test::Tester::CaptureRunner;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 use Test::Tester::Capture;
diff --git a/cpan/Test-Simple/lib/Test/Tester/Delegate.pm 
b/cpan/Test-Simple/lib/Test/Tester/Delegate.pm
index 8b1f167..7659d6b 100644
--- a/cpan/Test-Simple/lib/Test/Tester/Delegate.pm
+++ b/cpan/Test-Simple/lib/Test/Tester/Delegate.pm
@@ -3,7 +3,7 @@ use warnings;
 
 package Test::Tester::Delegate;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 use vars '$AUTOLOAD';
diff --git a/cpan/Test-Simple/lib/Test/use/ok.pm 
b/cpan/Test-Simple/lib/Test/use/ok.pm
index 769b30f..eca1f1c 100644
--- a/cpan/Test-Simple/lib/Test/use/ok.pm
+++ b/cpan/Test-Simple/lib/Test/use/ok.pm
@@ -1,7 +1,7 @@
 package Test::use::ok;
 use 5.005;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 __END__
diff --git a/cpan/Test-Simple/lib/Test2.pm b/cpan/Test-Simple/lib/Test2.pm
index 3f4c819..0ec3ddb 100644
--- a/cpan/Test-Simple/lib/Test2.pm
+++ b/cpan/Test-Simple/lib/Test2.pm
@@ -2,7 +2,7 @@ package Test2;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 1;
diff --git a/cpan/Test-Simple/lib/Test2/API.pm 
b/cpan/Test-Simple/lib/Test2/API.pm
index 55e359a..27c17b3 100644
--- a/cpan/Test-Simple/lib/Test2/API.pm
+++ b/cpan/Test-Simple/lib/Test2/API.pm
@@ -2,7 +2,7 @@ package Test2::API;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 my $INST;
@@ -416,8 +416,9 @@ sub intercept(&) {
 sub run_subtest {
     my ($name, $code, $params, @args) = @_;
 
-    $params = { buffered => $params } unless ref $params;
-    my $buffered = delete $params->{buffered};
+    $params = {buffered => $params} unless ref $params;
+    my $buffered      = delete $params->{buffered};
+    my $inherit_trace = delete $params->{inherit_trace};
 
     my $ctx = context();
 
@@ -442,6 +443,17 @@ sub run_subtest {
         }
     }
 
+    if ($inherit_trace) {
+        my $orig = $code;
+        $code = sub {
+            my $st_ctx = Test2::API::Context->new(
+                trace => $ctx->trace,
+                hub   => $hub,
+            );
+            $st_ctx->do_in_context($orig, @args);
+        };
+    }
+
     my ($ok, $err, $finished);
     T2_SUBTEST_WRAPPER: {
         # Do not use 'try' cause it localizes __DIE__
@@ -909,10 +921,26 @@ The code to run inside the subtest.
 If this is a simple scalar then it will be treated as a boolean for the
 'buffered' setting. If this is a hash reference then it will be used as a
 parameters hash. The param hash will be used for hub construction (with the
-'buffered' key removed).
+specified keys removed).
+
+Keys that are removed and used by run_subtest:
+
+=over 4
 
-If this is true, or a hashref with a true value for the 'buffered' key, then
-the subtest will be buffered.
+=item 'buffered' => $bool
+
+Toggle buffered status.
+
+=item 'inherit_trace' => $bool
+
+Normally the subtest hub is pushed and the sub is allowed to generate its own
+root context for the hub. When this setting is turned on a root context will be
+created for the hub that shares the same trace as the current context.
+
+Set this to true if your tool is producing subtests without user-specified
+subs.
+
+=back
 
 =item @ARGS
 
diff --git a/cpan/Test-Simple/lib/Test2/API/Breakage.pm 
b/cpan/Test-Simple/lib/Test2/API/Breakage.pm
index 7f99fa4..75e9faa 100644
--- a/cpan/Test-Simple/lib/Test2/API/Breakage.pm
+++ b/cpan/Test-Simple/lib/Test2/API/Breakage.pm
@@ -2,7 +2,7 @@ package Test2::API::Breakage;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 use Test2::Util qw/pkg_to_file/;
@@ -30,6 +30,7 @@ sub upgrade_required {
         'Test::Modern'            => '0.012',
         'Test::SharedFork'        => '0.34',
         'Test::Alien'             => '0.04',
+        'Test::UseAllModules'     => '0.14',
 
         'Test::Clustericious::Cluster' => '0.30',
     );
diff --git a/cpan/Test-Simple/lib/Test2/API/Context.pm 
b/cpan/Test-Simple/lib/Test2/API/Context.pm
index a7939e3..64bc254 100644
--- a/cpan/Test-Simple/lib/Test2/API/Context.pm
+++ b/cpan/Test-Simple/lib/Test2/API/Context.pm
@@ -2,7 +2,7 @@ package Test2::API::Context;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 use Carp qw/confess croak longmess/;
diff --git a/cpan/Test-Simple/lib/Test2/API/Instance.pm 
b/cpan/Test-Simple/lib/Test2/API/Instance.pm
index 8938040..ca50fb9 100644
--- a/cpan/Test-Simple/lib/Test2/API/Instance.pm
+++ b/cpan/Test-Simple/lib/Test2/API/Instance.pm
@@ -2,7 +2,7 @@ package Test2::API::Instance;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 our @CARP_NOT = qw/Test2::API Test2::API::Instance Test2::IPC::Driver 
Test2::Formatter/;
diff --git a/cpan/Test-Simple/lib/Test2/API/Stack.pm 
b/cpan/Test-Simple/lib/Test2/API/Stack.pm
index c6478d1..e699f03 100644
--- a/cpan/Test-Simple/lib/Test2/API/Stack.pm
+++ b/cpan/Test-Simple/lib/Test2/API/Stack.pm
@@ -2,7 +2,7 @@ package Test2::API::Stack;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 use Test2::Hub();
diff --git a/cpan/Test-Simple/lib/Test2/Event.pm 
b/cpan/Test-Simple/lib/Test2/Event.pm
index d350210..db4f4df 100644
--- a/cpan/Test-Simple/lib/Test2/Event.pm
+++ b/cpan/Test-Simple/lib/Test2/Event.pm
@@ -2,7 +2,7 @@ package Test2::Event;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 use Test2::Util::HashBase qw/trace nested in_subtest subtest_id/;
diff --git a/cpan/Test-Simple/lib/Test2/Event/Bail.pm 
b/cpan/Test-Simple/lib/Test2/Event/Bail.pm
index 4f8ae0f..47d05a1 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Bail.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Bail.pm
@@ -2,7 +2,7 @@ package Test2::Event::Bail;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/cpan/Test-Simple/lib/Test2/Event/Diag.pm 
b/cpan/Test-Simple/lib/Test2/Event/Diag.pm
index c50e9a9..5b3f685 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Diag.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Diag.pm
@@ -2,7 +2,7 @@ package Test2::Event::Diag;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/cpan/Test-Simple/lib/Test2/Event/Exception.pm 
b/cpan/Test-Simple/lib/Test2/Event/Exception.pm
index 1280ada..a5f3071 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Exception.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Exception.pm
@@ -2,7 +2,7 @@ package Test2::Event::Exception;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/cpan/Test-Simple/lib/Test2/Event/Generic.pm 
b/cpan/Test-Simple/lib/Test2/Event/Generic.pm
index 92b04fb..91cd9f3 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Generic.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Generic.pm
@@ -5,7 +5,7 @@ use warnings;
 use Carp qw/croak/;
 use Scalar::Util qw/reftype/;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
 use Test2::Util::HashBase;
diff --git a/cpan/Test-Simple/lib/Test2/Event/Note.pm 
b/cpan/Test-Simple/lib/Test2/Event/Note.pm
index b35a29a..a0395fe 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Note.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Note.pm
@@ -2,7 +2,7 @@ package Test2::Event::Note;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/cpan/Test-Simple/lib/Test2/Event/Ok.pm 
b/cpan/Test-Simple/lib/Test2/Event/Ok.pm
index a3ea262..386a86b 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Ok.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Ok.pm
@@ -2,7 +2,7 @@ package Test2::Event::Ok;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/cpan/Test-Simple/lib/Test2/Event/Plan.pm 
b/cpan/Test-Simple/lib/Test2/Event/Plan.pm
index 599df67..a0bee2f 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Plan.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Plan.pm
@@ -2,7 +2,7 @@ package Test2::Event::Plan;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/cpan/Test-Simple/lib/Test2/Event/Skip.pm 
b/cpan/Test-Simple/lib/Test2/Event/Skip.pm
index ef08022..5b446ef 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Skip.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Skip.pm
@@ -2,7 +2,7 @@ package Test2::Event::Skip;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 BEGIN { require Test2::Event::Ok; our @ISA = qw(Test2::Event::Ok) }
diff --git a/cpan/Test-Simple/lib/Test2/Event/Subtest.pm 
b/cpan/Test-Simple/lib/Test2/Event/Subtest.pm
index 0d95424..49b827f 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Subtest.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Subtest.pm
@@ -2,7 +2,7 @@ package Test2::Event::Subtest;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 BEGIN { require Test2::Event::Ok; our @ISA = qw(Test2::Event::Ok) }
diff --git a/cpan/Test-Simple/lib/Test2/Event/Waiting.pm 
b/cpan/Test-Simple/lib/Test2/Event/Waiting.pm
index 15d0b0a61..ee526bb 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Waiting.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Waiting.pm
@@ -2,7 +2,7 @@ package Test2::Event::Waiting;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/cpan/Test-Simple/lib/Test2/Formatter.pm 
b/cpan/Test-Simple/lib/Test2/Formatter.pm
index 7e1313a..c4b0682 100644
--- a/cpan/Test-Simple/lib/Test2/Formatter.pm
+++ b/cpan/Test-Simple/lib/Test2/Formatter.pm
@@ -2,7 +2,7 @@ package Test2::Formatter;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 my %ADDED;
diff --git a/cpan/Test-Simple/lib/Test2/Formatter/TAP.pm 
b/cpan/Test-Simple/lib/Test2/Formatter/TAP.pm
index 20086e1..900dae0 100644
--- a/cpan/Test-Simple/lib/Test2/Formatter/TAP.pm
+++ b/cpan/Test-Simple/lib/Test2/Formatter/TAP.pm
@@ -2,7 +2,7 @@ package Test2::Formatter::TAP;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 use Test2::Util::HashBase qw{
@@ -381,7 +381,7 @@ order to do this you use the C<register_event()> class 
method.
     use Test2::Formatter::TAP;
 
     use base 'Test2::Event';
-    use Test2::Util::HashBase accessors => [qw/pass name diag note/];
+    use Test2::Util::HashBase qw/pass name diag note/;
 
     Test2::Formatter::TAP->register_event(
         __PACKAGE__,
diff --git a/cpan/Test-Simple/lib/Test2/Hub.pm 
b/cpan/Test-Simple/lib/Test2/Hub.pm
index 0b0d33b..40b6c19 100644
--- a/cpan/Test-Simple/lib/Test2/Hub.pm
+++ b/cpan/Test-Simple/lib/Test2/Hub.pm
@@ -2,7 +2,7 @@ package Test2::Hub;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 use Carp qw/carp croak confess/;
@@ -83,6 +83,10 @@ sub inherit {
         push @{$self->{+_LISTENERS}} => grep { $_->{inherit} } @$ls;
     }
 
+    if (my $pfs = $from->{+_PRE_FILTERS}) {
+        push @{$self->{+_PRE_FILTERS}} => grep { $_->{inherit} } @$pfs;
+    }
+
     if (my $fs = $from->{+_FILTERS}) {
         push @{$self->{+_FILTERS}} => grep { $_->{inherit} } @$fs;
     }
diff --git a/cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm 
b/cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm
index 006e3b6..1b223dd 100644
--- a/cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm
+++ b/cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm
@@ -2,7 +2,7 @@ package Test2::Hub::Interceptor;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 use Test2::Hub::Interceptor::Terminator();
diff --git a/cpan/Test-Simple/lib/Test2/Hub/Interceptor/Terminator.pm 
b/cpan/Test-Simple/lib/Test2/Hub/Interceptor/Terminator.pm
index 98a1209..44a220a 100644
--- a/cpan/Test-Simple/lib/Test2/Hub/Interceptor/Terminator.pm
+++ b/cpan/Test-Simple/lib/Test2/Hub/Interceptor/Terminator.pm
@@ -2,7 +2,7 @@ package Test2::Hub::Interceptor::Terminator;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 1;
diff --git a/cpan/Test-Simple/lib/Test2/Hub/Subtest.pm 
b/cpan/Test-Simple/lib/Test2/Hub/Subtest.pm
index 4e3a8bc..a11fc91 100644
--- a/cpan/Test-Simple/lib/Test2/Hub/Subtest.pm
+++ b/cpan/Test-Simple/lib/Test2/Hub/Subtest.pm
@@ -2,7 +2,7 @@ package Test2::Hub::Subtest;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 BEGIN { require Test2::Hub; our @ISA = qw(Test2::Hub) }
diff --git a/cpan/Test-Simple/lib/Test2/IPC.pm 
b/cpan/Test-Simple/lib/Test2/IPC.pm
index d2626d9..01d3cd8 100644
--- a/cpan/Test-Simple/lib/Test2/IPC.pm
+++ b/cpan/Test-Simple/lib/Test2/IPC.pm
@@ -2,7 +2,7 @@ package Test2::IPC;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 use Test2::API::Instance;
diff --git a/cpan/Test-Simple/lib/Test2/IPC/Driver.pm 
b/cpan/Test-Simple/lib/Test2/IPC/Driver.pm
index 4c29e42..5878d75 100644
--- a/cpan/Test-Simple/lib/Test2/IPC/Driver.pm
+++ b/cpan/Test-Simple/lib/Test2/IPC/Driver.pm
@@ -2,7 +2,7 @@ package Test2::IPC::Driver;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 use Carp qw/confess longmess/;
diff --git a/cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm 
b/cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm
index 53530d7..acf0342 100644
--- a/cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm
+++ b/cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm
@@ -2,7 +2,7 @@ package Test2::IPC::Driver::Files;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 BEGIN { require Test2::IPC::Driver; our @ISA = qw(Test2::IPC::Driver) }
diff --git a/cpan/Test-Simple/lib/Test2/Transition.pod 
b/cpan/Test-Simple/lib/Test2/Transition.pod
index a14f22e..95f9d77 100644
--- a/cpan/Test-Simple/lib/Test2/Transition.pod
+++ b/cpan/Test-Simple/lib/Test2/Transition.pod
@@ -248,6 +248,14 @@ tool.
 
 Fixed in version: 0.012
 
+=item Test::UseAllModules
+
+Version 0.14 relied on C<< Test::Builder->history >> which was available in
+Test::Builder 1.5. Versions 0.12 and 0.13 relied on other Test::Builder
+internals.
+
+Fixed in version: 0.15
+
 =back
 
 =head2 STILL BROKEN
@@ -258,14 +266,14 @@ Fixed in version: 0.012
 
 This distribution directly accesses the hash keys in the L<Test::Builder>
 singleton. It also approaches the problem from the wrong angle, please consider
-using L<Test2::Harness> (not yet released) or L<App::ForkProve> which both
-solve the same problem at the harness level.
+using L<Test2::Harness> or L<App::ForkProve> which both solve the same problem
+at the harness level.
 
 Still broken as of version: 0.373
 
 =item Test::Wrapper
 
-This module directly uses hash keys in the L<Test::BuildeR> singleton. This
+This module directly uses hash keys in the L<Test::Builder> singleton. This
 module is also obsolete thanks to the benefits of L<Test2>. Use C<intercept()>
 from L<Test2::API> to achieve a similar result.
 
diff --git a/cpan/Test-Simple/lib/Test2/Util.pm 
b/cpan/Test-Simple/lib/Test2/Util.pm
index a903b6c..b991727 100644
--- a/cpan/Test-Simple/lib/Test2/Util.pm
+++ b/cpan/Test-Simple/lib/Test2/Util.pm
@@ -2,7 +2,7 @@ package Test2::Util;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 use Config qw/%Config/;
diff --git a/cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm 
b/cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm
index 1083ace..c55196f 100644
--- a/cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm
+++ b/cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm
@@ -2,7 +2,7 @@ package Test2::Util::ExternalMeta;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 use Carp qw/croak/;
diff --git a/cpan/Test-Simple/lib/Test2/Util/HashBase.pm 
b/cpan/Test-Simple/lib/Test2/Util/HashBase.pm
index d3583a4..be76393 100644
--- a/cpan/Test-Simple/lib/Test2/Util/HashBase.pm
+++ b/cpan/Test-Simple/lib/Test2/Util/HashBase.pm
@@ -2,7 +2,7 @@ package Test2::Util::HashBase;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 require Carp;
diff --git a/cpan/Test-Simple/lib/Test2/Util/Trace.pm 
b/cpan/Test-Simple/lib/Test2/Util/Trace.pm
index 5afeccf..c5c7bec 100644
--- a/cpan/Test-Simple/lib/Test2/Util/Trace.pm
+++ b/cpan/Test-Simple/lib/Test2/Util/Trace.pm
@@ -2,7 +2,7 @@ package Test2::Util::Trace;
 use strict;
 use warnings;
 
-our $VERSION = '1.302026';
+our $VERSION = '1.302035';
 
 
 use Test2::Util qw/get_tid/;
diff --git a/cpan/Test-Simple/lib/ok.pm b/cpan/Test-Simple/lib/ok.pm
index 8670163..d05feaf 100644
--- a/cpan/Test-Simple/lib/ok.pm
+++ b/cpan/Test-Simple/lib/ok.pm
@@ -1,5 +1,5 @@
 package ok;
-$ok::VERSION = '1.302026';
+$ok::VERSION = '1.302035';
 
 use strict;
 use Test::More ();
diff --git a/cpan/Test-Simple/t/Legacy/subtest/threads.t 
b/cpan/Test-Simple/t/Legacy/Regression/683_thread_todo.t
similarity index 53%
copy from cpan/Test-Simple/t/Legacy/subtest/threads.t
copy to cpan/Test-Simple/t/Legacy/Regression/683_thread_todo.t
index b1ac199..c5eb7cb 100644
--- a/cpan/Test-Simple/t/Legacy/subtest/threads.t
+++ b/cpan/Test-Simple/t/Legacy/Regression/683_thread_todo.t
@@ -1,5 +1,3 @@
-#!/usr/bin/perl -w
-
 use strict;
 use warnings;
 
@@ -10,15 +8,24 @@ BEGIN {
         Test::More->import(skip_all => "threads are not supported");
     }
 }
-use threads;
 
+use threads;
 use Test::More;
 
-subtest 'simple test with threads on' => sub {
-    is( 1+1, 2,   "simple test" );
-    is( "a", "a", "another simple test" );
-};
+my $t = threads->create(
+    sub {
+        local $TODO = "Some good reason";
+
+        fail "Crap";
+
+        42;
+    }
+);
 
-pass("Parent retains sharedness");
+is(
+    $t->join,
+    42,
+    "Thread exitted successfully"
+);
 
-done_testing(2);
+done_testing;
diff --git a/cpan/Test-Simple/t/Test2/behavior/run_subtest_inherit.t 
b/cpan/Test-Simple/t/Test2/behavior/run_subtest_inherit.t
new file mode 100644
index 0000000..3f15bc8
--- /dev/null
+++ b/cpan/Test-Simple/t/Test2/behavior/run_subtest_inherit.t
@@ -0,0 +1,84 @@
+use strict;
+use warnings;
+
+BEGIN { require "t/tools.pl" };
+
+use Test2::API qw/run_subtest intercept context/;
+
+# Test a subtest that should inherit the trace from the tool that calls it
+my ($file, $line) = (__FILE__, __LINE__ + 1);
+my $events = intercept { my_tool_inherit() };
+
+is(@$events, 1, "got 1 event");
+my $e = shift @$events;
+ok($e->isa('Test2::Event::Subtest'), "got a subtest event");
+is($e->trace->file, $file, "subtest is at correct file");
+is($e->trace->line, $line, "subtest is at correct line");
+my $plan = pop @{$e->subevents};
+ok($plan->isa('Test2::Event::Plan'), "Removed plan");
+for my $se (@{$e->subevents}) {
+    is($se->trace->file, $file, "subtest event ($se->{name}) is at correct 
file");
+    is($se->trace->line, $line, "subtest event ($se->{name}) is at correct 
line");
+    ok($se->pass, "subtest event ($se->{name}) passed");
+}
+
+
+
+
+# Test a subtest that should NOT inherit the trace from the tool that calls it
+($file, $line) = (__FILE__, __LINE__ + 1);
+$events = intercept { my_tool_no_inherit() };
+
+is(@$events, 1, "got 1 event");
+$e = shift @$events;
+ok($e->isa('Test2::Event::Subtest'), "got a subtest event");
+is($e->trace->file, $file, "subtest is at correct file");
+is($e->trace->line, $line, "subtest is at correct line");
+$plan = pop @{$e->subevents};
+ok($plan->isa('Test2::Event::Plan'), "Removed plan");
+for my $se (@{$e->subevents}) {
+    ok($se->trace->file ne $file, "subtest event ($se->{name}) is not in our 
file");
+    ok($se->trace->line ne $line, "subtest event ($se->{name}) is not on our 
line");
+    ok($se->pass, "subtest event ($se->{name}) passed");
+}
+
+done_testing;
+
+# Make these tools appear to be in a different file/line
+#line 100 'fake.pm'
+
+sub my_tool_inherit {
+    my $ctx = context();
+
+    run_subtest(
+        'foo',
+        sub {
+            ok(1, 'a');
+            ok(2, 'b');
+            is_deeply(\@_, [qw/arg1 arg2/], "got args");
+        },
+        {buffered => 1, inherit_trace => 1},
+        'arg1', 'arg2'
+    );
+
+    $ctx->release;
+}
+
+sub my_tool_no_inherit {
+    my $ctx = context();
+
+    run_subtest(
+        'foo',
+        sub {
+            ok(1, 'a');
+            ok(2, 'b');
+            is_deeply(\@_, [qw/arg1 arg2/], "got args");
+        },
+        {buffered => 1, inherit_trace => 0},
+        'arg1', 'arg2'
+    );
+
+    $ctx->release;
+}
+
+
diff --git a/cpan/Test-Simple/t/regression/684-nested_todo_diag.t 
b/cpan/Test-Simple/t/regression/684-nested_todo_diag.t
new file mode 100644
index 0000000..cccd27e
--- /dev/null
+++ b/cpan/Test-Simple/t/regression/684-nested_todo_diag.t
@@ -0,0 +1,23 @@
+use Test::More;
+use strict;
+use warnings;
+
+use Test2::API qw/intercept/;
+my @events;
+
+intercept {
+    local $TODO = "broken";
+
+    Test2::API::test2_stack->top->listen(sub { push @events => $_[1] }, 
inherit => 1);
+
+    subtest foo => sub {
+        subtest bar => sub {
+            ok(0, 'oops');
+        };
+    };
+};
+
+my ($event) = grep { $_->trace->line == 16 && ref($_) eq 
'Test::Builder::TodoDiag'} @events;
+ok($event, "nested todo diag on line 16 was changed to TodoDiag (STDOUT 
instead of STDERR)");
+
+done_testing;
diff --git a/cpan/version/lib/version.pm b/cpan/version/lib/version.pm
index 2015618..36d130f 100644
--- a/cpan/version/lib/version.pm
+++ b/cpan/version/lib/version.pm
@@ -10,7 +10,7 @@ if ($] >= 5.015) {
 
 use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);
 
-$VERSION = 0.9916;
+$VERSION = 0.9917;
 $CLASS = 'version';
 
 # avoid using Exporter
diff --git a/cpan/version/lib/version/regex.pm 
b/cpan/version/lib/version/regex.pm
index 62c1f22..d635c38 100644
--- a/cpan/version/lib/version/regex.pm
+++ b/cpan/version/lib/version/regex.pm
@@ -4,7 +4,7 @@ use strict;
 
 use vars qw($VERSION $CLASS $STRICT $LAX);
 
-$VERSION = 0.9916;
+$VERSION = 0.9917;
 
 #--------------------------------------------------------------------------#
 # Version regexp components
@@ -81,7 +81,7 @@ $STRICT =
 # decimal-point
 
 my $LAX_DECIMAL_VERSION =
-    qr/ $LAX_INTEGER_PART (?: \. | $FRACTION_PART $LAX_ALPHA_PART? )?
+    qr/ $LAX_INTEGER_PART (?: $FRACTION_PART | \. )? $LAX_ALPHA_PART?
        |
        $FRACTION_PART $LAX_ALPHA_PART?
     /x;
@@ -106,7 +106,7 @@ my $LAX_DOTTED_DECIMAL_VERSION =
 # of return values from ExtUtils::MM->parse_version
 
 $LAX =
-    qr/ undef | $LAX_DECIMAL_VERSION | $LAX_DOTTED_DECIMAL_VERSION /x;
+    qr/ undef | $LAX_DOTTED_DECIMAL_VERSION | $LAX_DECIMAL_VERSION /x;
 
 #--------------------------------------------------------------------------#
 
diff --git a/cpan/version/t/01base.t b/cpan/version/t/01base.t
index 08e7ad1..8e5ab71 100644
--- a/cpan/version/t/01base.t
+++ b/cpan/version/t/01base.t
@@ -12,7 +12,7 @@ BEGIN {
         (File::Spec->splitpath($0))[0,1], 'coretests.pm'
     );
     require $coretests;
-    use_ok('version', 0.9916);
+    use_ok('version', 0.9917);
 }
 
 BaseTests("version","new","qv");
diff --git a/cpan/version/t/02derived.t b/cpan/version/t/02derived.t
index b2678e8..fb77270 100644
--- a/cpan/version/t/02derived.t
+++ b/cpan/version/t/02derived.t
@@ -13,7 +13,7 @@ BEGIN {
         (File::Spec->splitpath($0))[0,1], 'coretests.pm'
     );
     require $coretests;
-    use_ok("version", 0.9916);
+    use_ok("version", 0.9917);
     # If we made it this far, we are ok.
 }
 
diff --git a/cpan/version/t/03require.t b/cpan/version/t/03require.t
index da1f02e..6a968a5 100644
--- a/cpan/version/t/03require.t
+++ b/cpan/version/t/03require.t
@@ -17,7 +17,7 @@ BEGIN {
 # Don't want to use, because we need to make sure that the import doesn't
 # fire just yet (some code does this to avoid importing qv() and delare()).
 require_ok("version");
-is $version::VERSION, 0.9916, "Make sure we have the correct class";
+is $version::VERSION, 0.9917, "Make sure we have the correct class";
 ok(!"main"->can("qv"), "We don't have the imported qv()");
 ok(!"main"->can("declare"), "We don't have the imported declare()");
 
diff --git a/cpan/version/t/04strict_lax.t b/cpan/version/t/04strict_lax.t
index 25c1dde..298fcf7 100644
--- a/cpan/version/t/04strict_lax.t
+++ b/cpan/version/t/04strict_lax.t
@@ -13,6 +13,14 @@ SKIP: {
     strict_lax_tests();
     is ref($version::LAX), 'Regexp', 'Can see $version::LAX '.$version::LAX ;
     is ref($version::STRICT), 'Regexp', 'Can see $version::STRICT 
'.$version::STRICT;
+    { # https://rt.cpan.org/Ticket/Display.html?id=114712
+        my ($v) = ( "snapshot-1.2.3ga-001-432" =~ /($version::LAX)/ );
+        is $v, '1.2.3', "Extract just the version: $v";
+        ($v) = ( "snapshot-1.2ga-001-432" =~ /($version::LAX)/ );
+        is $v, '1.2', "Extract just the version: $v";
+        ($v) = ( "snapshot-v1.2.3ga-001-432" =~ /($version::STRICT)/ );
+        is $v, 'v1.2.3', "Extract just the version: $v";
+    }
 }
 
 
diff --git a/cpan/version/t/05sigdie.t b/cpan/version/t/05sigdie.t
index 330ab1a..6776adc 100644
--- a/cpan/version/t/05sigdie.t
+++ b/cpan/version/t/05sigdie.t
@@ -14,7 +14,7 @@ BEGIN {
 }
 
 BEGIN {
-    use version 0.9916;
+    use version 0.9917;
 }
 
 pass "Didn't get caught by the wrong DIE handler, which is a good thing";
diff --git a/cpan/version/t/06noop.t b/cpan/version/t/06noop.t
index 4d5a7fb..f118786 100644
--- a/cpan/version/t/06noop.t
+++ b/cpan/version/t/06noop.t
@@ -7,7 +7,7 @@
 use Test::More qw/no_plan/;
 
 BEGIN {
-    use_ok('version', 0.9916);
+    use_ok('version', 0.9917);
 }
 
 my $v1 = version->new('1.2');
diff --git a/cpan/version/t/07locale.t b/cpan/version/t/07locale.t
index 1a4dadf..1dcc6db 100644
--- a/cpan/version/t/07locale.t
+++ b/cpan/version/t/07locale.t
@@ -11,7 +11,7 @@ use Test::More tests => 8;
 use Config;
 
 BEGIN {
-    use_ok('version', 0.9916);
+    use_ok('version', 0.9917);
 }
 
 SKIP: {
diff --git a/cpan/version/t/08_corelist.t b/cpan/version/t/08_corelist.t
index 3cc8889..4678c14 100644
--- a/cpan/version/t/08_corelist.t
+++ b/cpan/version/t/08_corelist.t
@@ -5,7 +5,7 @@
 #########################
 
 use Test::More tests => 3;
-use_ok("version", 0.9916);
+use_ok("version", 0.9917);
 
 # do strict lax tests in a sub to isolate a package to test importing
 SKIP: {
diff --git a/cpan/version/t/09_list_util.t b/cpan/version/t/09_list_util.t
index 232a9c0..6e94839 100644
--- a/cpan/version/t/09_list_util.t
+++ b/cpan/version/t/09_list_util.t
@@ -4,7 +4,7 @@
 #########################
 
 use strict;
-use_ok("version", 0.9916);
+use_ok("version", 0.9917);
 use Test::More;
 
 BEGIN {
diff --git a/t/porting/customized.dat b/t/porting/customized.dat
index 69fa62d..6dcb150 100644
--- a/t/porting/customized.dat
+++ b/t/porting/customized.dat
@@ -19,4 +19,4 @@ Scalar-List-Utils cpan/Scalar-List-Utils/ListUtil.xs 
362a247c65878265fd8acae607b
 Socket cpan/Socket/Socket.pm 98e38176d745c38282907f391c077298f5a3d0ba
 Socket cpan/Socket/Socket.xs edd4fed212785f11c5c2095a75941dad27d586d9
 autodie cpan/autodie/t/mkdir.t 9e70d2282a3cc7d76a78bf8144fccba20fb37dac
-version cpan/version/lib/version.pm ff75e2076be10bd4c05133cd979fda0b38ca8653
+version cpan/version/lib/version.pm a032a751524bdd07a93c945d2a1703abe7ad8ef0

--
Perl5 Master Repository

Reply via email to