This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Test-Simple to CPAN version 1.302168
authorChad Granum <exodist7@gmail.com>
Fri, 13 Sep 2019 17:27:41 +0000 (13:27 -0400)
committerJames E Keenan <jkeenan@cpan.org>
Fri, 13 Sep 2019 17:28:57 +0000 (13:28 -0400)
1.302168  2019-09-06 07:40:18-07:00 America/Los_Angeles

    - Fix Typo in a Test2::API::Breakage warning (Thanks E. Choroba)
    - Delay loading of Term::Table until needed (Thanks Graham Knop)

1.302167  2019-08-23 14:07:58-07:00 America/Los_Angeles

    - add test2_is_testing_done api method
    - Fix string compare warning

68 files changed:
Porting/Maintainers.pl
cpan/Test-Simple/lib/Test/Builder.pm
cpan/Test-Simple/lib/Test/Builder/Formatter.pm
cpan/Test-Simple/lib/Test/Builder/Module.pm
cpan/Test-Simple/lib/Test/Builder/Tester.pm
cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm
cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm
cpan/Test-Simple/lib/Test/More.pm
cpan/Test-Simple/lib/Test/Simple.pm
cpan/Test-Simple/lib/Test/Tester.pm
cpan/Test-Simple/lib/Test/Tester/Capture.pm
cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm
cpan/Test-Simple/lib/Test/Tester/Delegate.pm
cpan/Test-Simple/lib/Test/use/ok.pm
cpan/Test-Simple/lib/Test2.pm
cpan/Test-Simple/lib/Test2/API.pm
cpan/Test-Simple/lib/Test2/API/Breakage.pm
cpan/Test-Simple/lib/Test2/API/Context.pm
cpan/Test-Simple/lib/Test2/API/Instance.pm
cpan/Test-Simple/lib/Test2/API/Stack.pm
cpan/Test-Simple/lib/Test2/Event.pm
cpan/Test-Simple/lib/Test2/Event/Bail.pm
cpan/Test-Simple/lib/Test2/Event/Diag.pm
cpan/Test-Simple/lib/Test2/Event/Encoding.pm
cpan/Test-Simple/lib/Test2/Event/Exception.pm
cpan/Test-Simple/lib/Test2/Event/Fail.pm
cpan/Test-Simple/lib/Test2/Event/Generic.pm
cpan/Test-Simple/lib/Test2/Event/Note.pm
cpan/Test-Simple/lib/Test2/Event/Ok.pm
cpan/Test-Simple/lib/Test2/Event/Pass.pm
cpan/Test-Simple/lib/Test2/Event/Plan.pm
cpan/Test-Simple/lib/Test2/Event/Skip.pm
cpan/Test-Simple/lib/Test2/Event/Subtest.pm
cpan/Test-Simple/lib/Test2/Event/TAP/Version.pm
cpan/Test-Simple/lib/Test2/Event/V2.pm
cpan/Test-Simple/lib/Test2/Event/Waiting.pm
cpan/Test-Simple/lib/Test2/EventFacet.pm
cpan/Test-Simple/lib/Test2/EventFacet/About.pm
cpan/Test-Simple/lib/Test2/EventFacet/Amnesty.pm
cpan/Test-Simple/lib/Test2/EventFacet/Assert.pm
cpan/Test-Simple/lib/Test2/EventFacet/Control.pm
cpan/Test-Simple/lib/Test2/EventFacet/Error.pm
cpan/Test-Simple/lib/Test2/EventFacet/Hub.pm
cpan/Test-Simple/lib/Test2/EventFacet/Info.pm
cpan/Test-Simple/lib/Test2/EventFacet/Info/Table.pm
cpan/Test-Simple/lib/Test2/EventFacet/Meta.pm
cpan/Test-Simple/lib/Test2/EventFacet/Parent.pm
cpan/Test-Simple/lib/Test2/EventFacet/Plan.pm
cpan/Test-Simple/lib/Test2/EventFacet/Render.pm
cpan/Test-Simple/lib/Test2/EventFacet/Trace.pm
cpan/Test-Simple/lib/Test2/Formatter.pm
cpan/Test-Simple/lib/Test2/Formatter/TAP.pm
cpan/Test-Simple/lib/Test2/Hub.pm
cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm
cpan/Test-Simple/lib/Test2/Hub/Interceptor/Terminator.pm
cpan/Test-Simple/lib/Test2/Hub/Subtest.pm
cpan/Test-Simple/lib/Test2/IPC.pm
cpan/Test-Simple/lib/Test2/IPC/Driver.pm
cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm
cpan/Test-Simple/lib/Test2/Tools/Tiny.pm
cpan/Test-Simple/lib/Test2/Util.pm
cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm
cpan/Test-Simple/lib/Test2/Util/Facets2Legacy.pm
cpan/Test-Simple/lib/Test2/Util/HashBase.pm
cpan/Test-Simple/lib/Test2/Util/Trace.pm
cpan/Test-Simple/lib/ok.pm
cpan/Test-Simple/t/Test2/modules/API.t
cpan/Test-Simple/t/Test2/modules/API/Breakage.t

index 80274c2..46d82e2 100755 (executable)
@@ -1046,7 +1046,7 @@ use File::Glob qw(:case);
     },
 
     'Test::Simple' => {
-        'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302166.tar.gz',
+        'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302168.tar.gz',
         'FILES'        => q[cpan/Test-Simple],
         'EXCLUDED'     => [
             qr{^examples/},
index b758c4a..5abbb3e 100644 (file)
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 BEGIN {
     if( $] < 5.008 ) {
index 2f88c83..42f7d0d 100644 (file)
@@ -2,7 +2,7 @@ package Test::Builder::Formatter;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 BEGIN { require Test2::Formatter::TAP; our @ISA = qw(Test2::Formatter::TAP) }
 
index 968fe98..ea9ac45 100644 (file)
@@ -7,7 +7,7 @@ use Test::Builder;
 require Exporter;
 our @ISA = qw(Exporter);
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 =head1 NAME
index e905061..0548bcf 100644 (file)
@@ -1,7 +1,7 @@
 package Test::Builder::Tester;
 
 use strict;
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use Test::Builder;
 use Symbol;
index be36ecd..a4ef21c 100644 (file)
@@ -1,7 +1,7 @@
 package Test::Builder::Tester::Color;
 
 use strict;
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 require Test::Builder::Tester;
 
index fafc67d..7dda794 100644 (file)
@@ -2,7 +2,7 @@ package Test::Builder::TodoDiag;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 BEGIN { require Test2::Event::Diag; our @ISA = qw(Test2::Event::Diag) }
 
index 5088441..31a93df 100644 (file)
@@ -17,7 +17,7 @@ sub _carp {
     return warn @_, " at $file line $line\n";
 }
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use Test::Builder::Module;
 our @ISA    = qw(Test::Builder::Module);
index 0e94c5f..7f695f9 100644 (file)
@@ -4,7 +4,7 @@ use 5.006;
 
 use strict;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use Test::Builder::Module;
 our @ISA    = qw(Test::Builder::Module);
index aebf1b4..e24a3e5 100644 (file)
@@ -18,7 +18,7 @@ require Exporter;
 
 use vars qw( @ISA @EXPORT );
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 @EXPORT = qw( run_tests check_tests check_test cmp_results show_space );
 @ISA = qw( Exporter );
index af6bac0..3785218 100644 (file)
@@ -2,7 +2,7 @@ use strict;
 
 package Test::Tester::Capture;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 use Test::Builder;
index 0bcb9e2..947e480 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 
 package Test::Tester::CaptureRunner;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 use Test::Tester::Capture;
index 03ee047..684c527 100644 (file)
@@ -3,7 +3,7 @@ use warnings;
 
 package Test::Tester::Delegate;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use Scalar::Util();
 
index 2f7f503..0c80f0c 100644 (file)
@@ -1,7 +1,7 @@
 package Test::use::ok;
 use 5.005;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 __END__
index 26efa43..8bdfc36 100644 (file)
@@ -2,7 +2,7 @@ package Test2;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 1;
index dc76659..b98c795 100644 (file)
@@ -9,7 +9,7 @@ BEGIN {
     $ENV{TEST2_ACTIVE} = 1;
 }
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 my $INST;
@@ -113,6 +113,7 @@ our @EXPORT_OK = qw{
     test2_start_preload
     test2_stop_preload
     test2_in_preload
+    test2_is_testing_done
 
     test2_set_is_end
     test2_unset_is_end
@@ -205,6 +206,27 @@ sub test2_ipc_wait_enable  { $INST->set_no_wait(0) }
 sub test2_ipc_wait_disable { $INST->set_no_wait(1) }
 sub test2_ipc_wait_enabled { !$INST->no_wait }
 
+sub test2_is_testing_done {
+    # No instance? VERY DONE!
+    return 1 unless $INST;
+
+    # No stack? tests must be done, it is created pretty early
+    my $stack = $INST->stack or return 1;
+
+    # Nothing on the stack, no root hub yet, likely have not started testing
+    return 0 unless @$stack;
+
+    # Stack has a slot for the root hub (see above) but it is undefined, likely
+    # garbage collected, test is done
+    my $root_hub = $stack->[0] or return 1;
+
+    # If the root hub is ended than testing is done.
+    return 1 if $root_hub->ended;
+
+    # Looks like we are still testing!
+    return 0;
+}
+
 sub test2_no_wait {
     $INST->set_no_wait(@_) if @_;
     $INST->no_wait;
@@ -860,6 +882,7 @@ C<intercept { ... }> which only lets you see events as the main hub sees them.
         test2_ipc
         test2_formatter_set
         test2_formatter
+        test2_is_testing_done
     };
 
     my $init  = test2_init_done();
@@ -1303,6 +1326,26 @@ Check if Test2 believes it is the END phase.
 This will return the global L<Test2::API::Stack> instance. If this has not
 yet been initialized it will be initialized now.
 
+=item $bool = test2_is_testing_done()
+
+This will return true if testing is complete and no other events should be
+sent. This is useful in things like warning handlers where you might want to
+turn warnings into events, but need them to start acting like normal warnings
+when testing is done.
+
+    $SIG{__WARN__} = sub {
+        my ($warning) = @_;
+
+        if (test2_is_testing_done()) {
+            warn @_;
+        }
+        else {
+            my $ctx = context();
+            ...
+            $ctx->release
+        }
+    }
+
 =item test2_ipc_disable
 
 Disable IPC.
index 106748a..0a40e37 100644 (file)
@@ -2,7 +2,7 @@ package Test2::API::Breakage;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 use Test2::Util qw/pkg_to_file/;
@@ -73,7 +73,7 @@ sub report {
         next unless $INC{$file} || ($require && eval { require $file; 1 });
         my $want = $suggest{$mod};
         next if eval { $mod->VERSION($want); 1 };
-        push @warn => " * Module '$mod' is outdated, we recommed updating above $want.";
+        push @warn => " * Module '$mod' is outdated, we recommend updating above $want.";
     }
 
     for my $mod (keys %required) {
index f1a6237..b223f8f 100644 (file)
@@ -2,7 +2,7 @@ package Test2::API::Context;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 use Carp qw/confess croak/;
index 4ee5512..5d95147 100644 (file)
@@ -2,7 +2,7 @@ package Test2::API::Instance;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 our @CARP_NOT = qw/Test2::API Test2::API::Instance Test2::IPC::Driver Test2::Formatter/;
 use Carp qw/confess carp/;
index 5326e33..7791f0c 100644 (file)
@@ -2,7 +2,7 @@ package Test2::API::Stack;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 use Test2::Hub();
index 7ff8052..b312179 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Event;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use Scalar::Util qw/blessed reftype/;
 use Carp qw/croak/;
index 6862884..f332d73 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Event::Bail;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
index 24a5693..d5d38d3 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Event::Diag;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
index b5213dd..364a71a 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Event::Encoding;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use Carp qw/croak/;
 
index 7a35e0e..65ce726 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Event::Exception;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
index ad71cdc..bf45fe7 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Event::Fail;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use Test2::EventFacet::Info;
 
index 3f2b5fd..c337d61 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 use Carp qw/croak/;
 use Scalar::Util qw/reftype/;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
 use Test2::Util::HashBase;
index fc2299d..d7a7b5f 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Event::Note;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
index 3b92623..ea7f6bf 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Event::Ok;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
index bc42820..6eaf266 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Event::Pass;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use Test2::EventFacet::Info;
 
index e470980..1c12db4 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Event::Plan;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
index 2f01bf8..9518a59 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Event::Skip;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 BEGIN { require Test2::Event::Ok; our @ISA = qw(Test2::Event::Ok) }
index 9f39997..2ff0e5c 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Event::Subtest;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 BEGIN { require Test2::Event::Ok; our @ISA = qw(Test2::Event::Ok) }
 use Test2::Util::HashBase qw{subevents buffered subtest_id subtest_uuid};
index 0a22f97..cb15d22 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Event::TAP::Version;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use Carp qw/croak/;
 
index cfe6eba..f0fcc60 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Event::V2;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use Scalar::Util qw/reftype/;
 use Carp qw/croak/;
@@ -60,8 +60,8 @@ sub facet_data {
     for my $k (keys %$f) {
         next if substr($k, 0, 1) eq '_';
 
-        my $data = $f->{$k};
-        my $is_list = reftype($data) eq 'ARRAY';
+        my $data = $f->{$k} or next; # Key is there, but no facet
+        my $is_list = 'ARRAY' eq (reftype($data) || '');
         $out{$k} = $is_list ? [ map { {%{$_}} } @$data ] : {%$data};
     }
 
index 5d3c378..fd6a03d 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Event::Waiting;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
index 657ca1f..4e79a7a 100644 (file)
@@ -2,7 +2,7 @@ package Test2::EventFacet;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use Test2::Util::HashBase qw/-details/;
 use Carp qw/croak/;
index 4121ce1..83a8813 100644 (file)
@@ -2,7 +2,7 @@ package Test2::EventFacet::About;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 use Test2::Util::HashBase qw{ -package -no_display -uuid -eid };
index cc43608..baf31b5 100644 (file)
@@ -2,7 +2,7 @@ package Test2::EventFacet::Amnesty;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 sub is_list { 1 }
 
index 2ec49c1..bd1f417 100644 (file)
@@ -2,7 +2,7 @@ package Test2::EventFacet::Assert;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 use Test2::Util::HashBase qw{ -pass -no_debug -number };
index ac7d7e9..d87fd41 100644 (file)
@@ -2,7 +2,7 @@ package Test2::EventFacet::Control;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 use Test2::Util::HashBase qw{ -global -terminate -halt -has_callback -encoding -phase };
index 2949814..4bca62c 100644 (file)
@@ -2,7 +2,7 @@ package Test2::EventFacet::Error;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 sub facet_key { 'errors' }
 sub is_list { 1 }
index b36d57d..d26f363 100644 (file)
@@ -2,7 +2,7 @@ package Test2::EventFacet::Hub;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 sub is_list { 1 }
 sub facet_key { 'hubs' }
index 0eaa66d..33c7094 100644 (file)
@@ -2,7 +2,7 @@ package Test2::EventFacet::Info;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 sub is_list { 1 }
 
index c7c2179..4e49a30 100644 (file)
@@ -2,7 +2,7 @@ package Test2::EventFacet::Info::Table;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use Carp qw/confess/;
 
index 80635c8..686ab74 100644 (file)
@@ -2,7 +2,7 @@ package Test2::EventFacet::Meta;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 use vars qw/$AUTOLOAD/;
index c05113a..444b1f5 100644 (file)
@@ -2,7 +2,7 @@ package Test2::EventFacet::Parent;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use Carp qw/confess/;
 
index 9afcb4e..6b9fb04 100644 (file)
@@ -2,7 +2,7 @@ package Test2::EventFacet::Plan;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 use Test2::Util::HashBase qw{ -count -skip -none };
index cee1729..283435c 100644 (file)
@@ -2,7 +2,7 @@ package Test2::EventFacet::Render;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 sub is_list { 1 }
 
index 0ff6274..26728da 100644 (file)
@@ -2,7 +2,7 @@ package Test2::EventFacet::Trace;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 
index f88ea97..6997dba 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Formatter;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 my %ADDED;
index 59e2a6f..cbfa311 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Formatter::TAP;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use Test2::Util qw/clone_io/;
 
@@ -16,16 +16,17 @@ sub OUT_ERR() { 1 }
 
 BEGIN { require Test2::Formatter; our @ISA = qw(Test2::Formatter) }
 
-# Not constants because this is a method, and can be overriden
-BEGIN {
-    local $SIG{__DIE__} = 'DEFAULT';
-    local $@;
-    if (($INC{'Term/Table.pm'} && $INC{'Term/Table/Util.pm'}) || eval { require Term::Table; require Term::Table::Util; 1 }) {
-        *supports_tables = sub { 1 };
-    }
-    else {
-        *supports_tables = sub { 0 };
+my $supports_tables;
+sub supports_tables {
+    if (!defined $supports_tables) {
+        local $SIG{__DIE__} = 'DEFAULT';
+        local $@;
+        $supports_tables
+            = ($INC{'Term/Table.pm'} && $INC{'Term/Table/Util.pm'})
+            || eval { require Term::Table; require Term::Table::Util; 1 }
+            || 0;
     }
+    return $supports_tables;
 }
 
 sub _autoflush {
index 82d3192..5f48a12 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Hub;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 use Carp qw/carp croak confess/;
index 441a55e..362f49b 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Hub::Interceptor;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 use Test2::Hub::Interceptor::Terminator();
index 650b413..7ab5e0e 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Hub::Interceptor::Terminator;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 1;
index 8d29b1e..3fa6bb1 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Hub::Subtest;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 BEGIN { require Test2::Hub; our @ISA = qw(Test2::Hub) }
 use Test2::Util::HashBase qw/nested exit_code manual_skip_all/;
index c3ad748..b04d67f 100644 (file)
@@ -2,7 +2,7 @@ package Test2::IPC;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 use Test2::API::Instance;
index 373f41a..5c365c2 100644 (file)
@@ -2,7 +2,7 @@ package Test2::IPC::Driver;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 use Carp qw/confess/;
index 784faca..00eb275 100644 (file)
@@ -2,7 +2,7 @@ package Test2::IPC::Driver::Files;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 BEGIN { require Test2::IPC::Driver; our @ISA = qw(Test2::IPC::Driver) }
 
index 2d5eda4..92ea7b1 100644 (file)
@@ -16,7 +16,7 @@ use Test2::API qw/context run_subtest test2_stack/;
 use Test2::Hub::Interceptor();
 use Test2::Hub::Interceptor::Terminator();
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 BEGIN { require Exporter; our @ISA = qw(Exporter) }
 our @EXPORT = qw{
index 8574033..645444d 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Util;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use POSIX();
 use Config qw/%Config/;
index e262b6a..82a2c20 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Util::ExternalMeta;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 
 use Carp qw/croak/;
index a2c25f4..6a191be 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Util::Facets2Legacy;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use Carp qw/croak confess/;
 use Scalar::Util qw/blessed/;
index 654b768..3c2e990 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Util::HashBase;
 use strict;
 use warnings;
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 #################################################################
 #                                                               #
index dffe5fa..83a1c48 100644 (file)
@@ -2,7 +2,7 @@ package Test2::Util::Trace;
 require Test2::EventFacet::Trace;
 @ISA = ('Test2::EventFacet::Trace');
 
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 1;
 
index 4552d9a..9c37324 100644 (file)
@@ -1,5 +1,5 @@
 package ok;
-our $VERSION = '1.302166';
+our $VERSION = '1.302168';
 
 use strict;
 use Test::More ();
index a804cac..402efee 100644 (file)
@@ -1,6 +1,8 @@
 use strict;
 use warnings;
 
+BEGIN { $main::cleanup1 = bless {}, 'My::Cleanup' }
+
 use Test2::API qw/context/;
 
 my ($LOADED, $INIT);
@@ -26,6 +28,7 @@ ok(Test2::API->can($_), "$_ method is present") for qw{
     test2_tid
     test2_stack
     test2_no_wait
+    test2_is_testing_done
 
     test2_add_callback_context_init
     test2_add_callback_context_release
@@ -285,5 +288,23 @@ is((grep { $_ == $sub } Test2::API::test2_list_context_release_callbacks()), 2,
 is((grep { $_ == $sub } Test2::API::test2_list_exit_callbacks()),            2, "got the two instances of the hook");
 is((grep { $_ == $sub } Test2::API::test2_list_post_load_callbacks()),       2, "got the two instances of the hook");
 
+ok(!Test2::API::test2_is_testing_done(), "Testing is not done");
+
 done_testing;
 
+die "Testing should be done, but it is not!" unless Test2::API::test2_is_testing_done();
+
+{
+    package My::Cleanup;
+
+    sub DESTROY {
+        return if Test2::API::test2_is_testing_done();
+        print "not ok - Testing should be done, but it is not!\n";
+        warn "Testing should be done, but it is not!";
+        eval "END { $? = 255 }; 1" or die $@;
+        exit 255;
+    }
+}
+
+# This should destroy the thing
+END { $main::cleanup2 = bless {}, 'My::Cleanup' }
index e293246..f5af6c5 100644 (file)
@@ -53,7 +53,7 @@ for my $meth (qw/upgrade_suggested upgrade_required known_broken/) {
             [sort @report],
             [
                 sort
-                " * Module 'T2Test::UG1' is outdated, we recommed updating above 1.0.",
+                " * Module 'T2Test::UG1' is outdated, we recommend updating above 1.0.",
                 " * Module 'T2Test::UR1' is outdated and known to be broken, please update to 1.0 or higher.",
                 " * Module 'T2Test::KB1' is known to be broken in version 1.0 and below, newer versions have not been tested. You have: 0.9",
                 " * Module 'T2Test::KB2' is known to be broken in version 0.5 and below, newer versions have not been tested. You have: 0.9",