summaryrefslogtreecommitdiff
path: root/cpan/Test-Simple/t/harness_active.t
diff options
context:
space:
mode:
Diffstat (limited to 'cpan/Test-Simple/t/harness_active.t')
-rw-r--r--cpan/Test-Simple/t/harness_active.t88
1 files changed, 88 insertions, 0 deletions
diff --git a/cpan/Test-Simple/t/harness_active.t b/cpan/Test-Simple/t/harness_active.t
new file mode 100644
index 0000000000..7b027a7b40
--- /dev/null
+++ b/cpan/Test-Simple/t/harness_active.t
@@ -0,0 +1,88 @@
+#!perl -w
+
+BEGIN {
+ if( $ENV{PERL_CORE} ) {
+ chdir 't';
+ @INC = ('../lib', 'lib');
+ }
+ else {
+ unshift @INC, 't/lib';
+ }
+}
+
+use strict;
+
+use Test::Simple::Catch;
+my($out, $err) = Test::Simple::Catch::caught();
+
+
+# Can't use Test.pm, that's a 5.005 thing.
+package My::Test;
+
+# This has to be a require or else the END block below runs before
+# Test::Builder's own and the ending diagnostics don't come out right.
+require Test::Builder;
+my $TB = Test::Builder->create;
+$TB->plan(tests => 4);
+
+# Utility testing functions.
+sub ok ($;$) {
+ return $TB->ok(@_);
+}
+
+
+sub main::err_ok ($) {
+ my($expect) = @_;
+ my $got = $err->read;
+
+ return $TB->is_eq( $got, $expect );
+}
+
+
+package main;
+
+require Test::More;
+Test::More->import(tests => 4);
+Test::More->builder->no_ending(1);
+
+{
+ local $ENV{HARNESS_ACTIVE} = 0;
+
+#line 62
+ fail( "this fails" );
+ err_ok( <<ERR );
+# Failed test 'this fails'
+# at $0 line 62.
+ERR
+
+#line 72
+ is( 1, 0 );
+ err_ok( <<ERR );
+# Failed test at $0 line 72.
+# got: '1'
+# expected: '0'
+ERR
+}
+
+{
+ local $ENV{HARNESS_ACTIVE} = 1;
+
+#line 71
+ fail( "this fails" );
+ err_ok( <<ERR );
+
+# Failed test 'this fails'
+# at $0 line 71.
+ERR
+
+
+#line 84
+ is( 1, 0 );
+ err_ok( <<ERR );
+
+# Failed test at $0 line 84.
+# got: '1'
+# expected: '0'
+ERR
+
+}