This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Test-Simple Version Bump, 1.301001_096 (RC16)
authorChad Granum <exodist7@gmail.com>
Sat, 3 Jan 2015 21:04:16 +0000 (13:04 -0800)
committerJames E Keenan <jkeenan@cpan.org>
Sat, 3 Jan 2015 21:17:25 +0000 (16:17 -0500)
Mainly fixes for older perls. Still important to bring this in line with
what is on cpan.

15 files changed:
cpan/Test-Simple/lib/Test/Builder.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/CanThread.pm
cpan/Test-Simple/lib/Test/More.pm
cpan/Test-Simple/lib/Test/Simple.pm
cpan/Test-Simple/lib/Test/Stream.pm
cpan/Test-Simple/lib/Test/Stream/Block.pm
cpan/Test-Simple/lib/Test/Stream/PackageUtil.pm
cpan/Test-Simple/lib/Test/Tester.pm
cpan/Test-Simple/lib/Test/use/ok.pm
cpan/Test-Simple/lib/ok.pm
cpan/Test-Simple/t/Test-Stream-Exporter.t
cpan/Test-Simple/t/Test-Stream-PackageUtil.t

index 1528248..03da6e2 100644 (file)
@@ -4,7 +4,7 @@ use 5.008001;
 use strict;
 use warnings;
 
-our $VERSION = '1.301001_093';
+our $VERSION = '1.301001_096';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 
index e31eded..fc37bf2 100644 (file)
@@ -8,7 +8,7 @@ use Test::Builder 0.99;
 require Exporter;
 our @ISA = qw(Exporter);
 
-our $VERSION = '1.301001_093';
+our $VERSION = '1.301001_096';
 $VERSION = eval $VERSION;      ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 
index 367608f..d8b5836 100644 (file)
@@ -1,7 +1,7 @@
 package Test::Builder::Tester;
 
 use strict;
-our $VERSION = '1.301001_093';
+our $VERSION = '1.301001_096';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 use Test::Stream 1.301001 '-internal';
index e5d91a1..441e4ba 100644 (file)
@@ -1,7 +1,7 @@
 package Test::Builder::Tester::Color;
 
 use strict;
-our $VERSION = '1.301001_093';
+our $VERSION = '1.301001_096';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 use Test::Stream 1.301001 '-internal';
index 58ac8da..0e022f0 100644 (file)
@@ -12,11 +12,6 @@ $works &&= eval { require threads; 'threads'->import; 1 };
 sub import {
     my $class = shift;
 
-    if ($] == 5.010000) {
-        require Test::More;
-        Test::More::plan(skip_all => "Threads are broken on 5.10.0");
-    }
-
     unless ($works) {
         require Test::More;
         Test::More::plan(skip_all => "Skip no working threads");
@@ -34,6 +29,30 @@ sub import {
         Test::More::plan(skip_all => "This threaded test will only run when the '$var' environment variable is set.");
     }
 
+    if ($] == 5.010000) {
+        require File::Temp;
+        require File::Spec;
+
+        my $perl = File::Spec->rel2abs($^X);
+        my ($fh, $fn) = File::Temp::tempfile();
+        print $fh <<'        EOT';
+            BEGIN { print STDERR "# Checking for thread segfaults\n# " }
+            use threads;
+            my $t = threads->create(sub { 1 });
+            $t->join;
+            print STDERR "Threads appear to work\n";
+            exit 0;
+        EOT
+        close($fh);
+
+        my $exit = system(qq{"$perl" "$fn"});
+
+        if ($exit) {
+            require Test::More;
+            Test::More::plan(skip_all => "Threads segfault on this perl");
+        }
+    }
+
     my $caller = caller;
     eval "package $caller; use threads; 1" || die $@;
 }
index c0d958e..39e65d4 100644 (file)
@@ -4,7 +4,7 @@ use 5.008001;
 use strict;
 use warnings;
 
-our $VERSION = '1.301001_093';
+our $VERSION = '1.301001_096';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 use Test::Stream 1.301001 '-internal';
index ac30ea4..500abb1 100644 (file)
@@ -5,10 +5,10 @@ use 5.008001;
 use strict;
 use warnings;
 
-our $VERSION = '1.301001_093';
+our $VERSION = '1.301001_096';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
-use Test::Stream 1.301001_093 '-internal';
+use Test::Stream 1.301001_096 '-internal';
 use Test::Stream::Toolset;
 
 use Test::Stream::Exporter;
index 0690625..8ddab7e 100644 (file)
@@ -2,7 +2,7 @@ package Test::Stream;
 use strict;
 use warnings;
 
-our $VERSION = '1.301001_093';
+our $VERSION = '1.301001_096';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 use Test::Stream::Context qw/context/;
index 9acb851..7f6bd68 100644 (file)
@@ -28,7 +28,16 @@ sub init {
     confess "coderef must be a code reference"
         unless ref($self->[CODEREF]) && reftype($self->[CODEREF]) eq 'CODE';
 
-    require B;
+    $self->deduce;
+
+    $self->[PARAMS] ||= {};
+}
+
+sub deduce {
+    my $self = shift;
+
+    eval { require B; 1 } || return;
+
     my $code    = $self->[CODEREF];
     my $cobj    = B::svref_2object($code);
     my $pkg     = $cobj->GV->STASH->NAME;
@@ -38,9 +47,8 @@ sub init {
 
     $SUB_MAPS{$file}->{$line} = $self->[NAME];
 
-    $self->[DEDUCED]  = [$pkg, $file, $line, $subname];
-    $self->[NAME]   ||= $subname;
-    $self->[PARAMS] ||= {};
+    $self->[DEDUCED] = [$pkg, $file, $line, $subname];
+    $self->[NAME] ||= $subname;
 }
 
 sub merge_params {
index 6b871df..f2a2a8c 100644 (file)
@@ -60,7 +60,8 @@ sub package_purge_sym {
 
         no strict 'refs';
         local *GLOBCLONE = *{"$pkg\::$name"};
-        undef *{"$pkg\::$name"};
+        my $stash = \%{"${pkg}\::"};
+        delete $stash->{$name};
         for my $slot (@SLOTS) {
             next if $slot eq $purge;
             *{"$pkg\::$name"} = *GLOBCLONE{$slot} if defined *GLOBCLONE{$slot};
index deb192c..6f0a44e 100644 (file)
@@ -16,7 +16,7 @@ require Exporter;
 
 use vars qw( @ISA @EXPORT $VERSION );
 
-our $VERSION = '1.301001_093';
+our $VERSION = '1.301001_096';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 @EXPORT  = qw( run_tests check_tests check_test cmp_results show_space );
index d241554..144d289 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 use warnings;
 use 5.005;
 
-our $VERSION = '1.301001_093';
+our $VERSION = '1.301001_096';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 use Test::Stream 1.301001 '-internal';
index d1b2341..d96d65e 100644 (file)
@@ -6,7 +6,7 @@ use Test::Stream 1.301001 '-internal';
 use Test::More 1.301001 ();
 use Test::Stream::Carp qw/croak/;
 
-our $VERSION = '1.301001_093';
+our $VERSION = '1.301001_096';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 sub import {
index 1477867..6d9097c 100644 (file)
@@ -27,14 +27,6 @@ use Test::More;
     is($main::export::xxx, 'here', "still have an \$export::* var");
 
     ok(!__PACKAGE__->can($_), "removed $_\()") for qw/export default_export exports default_exports/;
-
-    my $ok = eval {
-        export no => sub { 'no' };
-        1;
-    };
-    my $error = $@;
-    ok(!$ok, "Cannot add exports after cleanup");
-    like($error, qr/Undefined subroutine &My::Exporter::export called/, "Sub was removed");
 }
 
 My::Exporter->import( '!x' );
index e55c0f9..76d80d8 100644 (file)
@@ -29,10 +29,10 @@ package_purge_sym(__PACKAGE__, CODE => 'foo');
 is($foo, 'foo', '$foo is still defined');
 is_deeply(\@foo, [ 'f', 'o', 'o' ], '@foo is still defined');
 is_deeply(\%foo, { f => 'oo' }, '%foo is still defined');
-my $r = eval { foo() };
+my $r = eval { __PACKAGE__->foo() };
 my $e = $@;
 ok(!$r, "Failed to call foo()");
-like($e, qr/Undefined subroutine &main::foo called/, "foo() is not defined anymore");
+like($e, qr/Can't locate object method "foo" via package "main"/, "foo() is not defined anymore");
 ok(!__PACKAGE__->can('foo'), "can() no longer thinks we can do foo()");
 
 done_testing;