summaryrefslogtreecommitdiff
path: root/cpan/Test-Simple/lib/Test/Stream/Subtest.pm
diff options
context:
space:
mode:
Diffstat (limited to 'cpan/Test-Simple/lib/Test/Stream/Subtest.pm')
-rw-r--r--cpan/Test-Simple/lib/Test/Stream/Subtest.pm218
1 files changed, 0 insertions, 218 deletions
diff --git a/cpan/Test-Simple/lib/Test/Stream/Subtest.pm b/cpan/Test-Simple/lib/Test/Stream/Subtest.pm
deleted file mode 100644
index 97e274eaeb..0000000000
--- a/cpan/Test-Simple/lib/Test/Stream/Subtest.pm
+++ /dev/null
@@ -1,218 +0,0 @@
-package Test::Stream::Subtest;
-use strict;
-use warnings;
-
-use Test::Stream::Exporter;
-default_exports qw/subtest/;
-Test::Stream::Exporter->cleanup;
-
-use Test::Stream::Context qw/context/;
-use Scalar::Util qw/reftype blessed/;
-use Test::Stream::Util qw/try/;
-use Test::Stream::Carp qw/confess/;
-
-use Test::Stream::Block;
-
-sub subtest {
- my ($name, $code, @args) = @_;
-
- my $ctx = context();
-
- $ctx->throw("subtest()'s second argument must be a code ref")
- unless $code && 'CODE' eq reftype($code);
-
- my $block = Test::Stream::Block->new(
- $name, $code, undef, [caller(0)],
- );
-
- $ctx->note("Subtest: $name")
- if $ctx->stream->subtest_tap_instant;
-
- my $st = $ctx->subtest_start($name);
-
- my $pid = $$;
- my ($succ, $err) = try {
- TEST_STREAM_SUBTEST: {
- no warnings 'once';
- local $Test::Builder::Level = 1;
- $block->run(@args);
- }
-
- return if $st->{early_return};
-
- $ctx->set;
- my $stream = $ctx->stream;
- $ctx->done_testing unless $stream->plan || $stream->ended;
-
- require Test::Stream::ExitMagic;
- {
- local $? = 0;
- Test::Stream::ExitMagic->new->do_magic($stream, $ctx->snapshot);
- }
- };
-
- my $er = $st->{early_return};
- if (!$succ) {
- # Early return is not a *real* exception.
- if ($er && $er == $err) {
- $succ = 1;
- $err = undef;
- }
- else {
- $st->{exception} = $err;
- }
- }
-
- if ($$ != $pid) {
- warn <<" EOT" unless $ctx->stream->_use_fork;
-Subtest finished with a new PID ($$ vs $pid) while forking support was turned off!
-This is almost certainly not what you wanted. Did you fork and forget to exit?
- EOT
-
- # Did the forked process try to exit via die?
- # If a subtest forked, then threw an exception, we need to propogate that right away.
- die $err unless $succ;
- }
-
- my $st_check = $ctx->subtest_stop($name);
- confess "Subtest mismatch!" unless $st == $st_check;
-
- $ctx->bail($st->{early_return}->reason) if $er && $er->isa('Test::Stream::Event::Bail');
-
- my $e = $ctx->subtest(
- # Stuff from ok (most of this gets initialized inside)
- undef, # real_bool, gets set properly by initializer
- $st->{name}, # name
- undef, # diag
- undef, # bool
- undef, # level
-
- # Subtest specific stuff
- $st->{state},
- $st->{events},
- $st->{exception},
- $st->{early_return},
- $st->{delayed},
- $st->{instant},
- );
-
- die $err unless $succ;
-
- return $e->bool;
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 Name
-
-Test::Stream::Subtest - Encapsulate subtest start, run, and finish.
-
-=head1 Synopsys
-
- use Test::Stream::Subtest;
-
- subtest $name => sub { ... };
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration from Joshua Pritikin's Test module and lots of help from Barrie
-Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and the perl-qa
-gang.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back