This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Be sure to find the vmsish pragma for one-liners in exit.t.
[perl5.git] / lib / Test / Simple / t / diag.t
CommitLineData
a9153838
MS
1#!perl -w
2
3BEGIN {
4 if( $ENV{PERL_CORE} ) {
5 chdir 't';
7483b81c
RGS
6 @INC = ('../lib', 'lib');
7 }
8 else {
9 unshift @INC, 't/lib';
a9153838
MS
10 }
11}
12
30e302f8
NC
13
14# Turn on threads here, if available, since this test tends to find
15# lots of threading bugs.
16use Config;
17BEGIN {
b7f9bbeb 18 if( $] >= 5.008001 && $Config{useithreads} ) {
30e302f8
NC
19 require threads;
20 'threads'->import;
21 }
22}
23
24
a9153838 25use strict;
a9153838 26
3e887aae 27use Test::Builder::NoOutput;
82d700dc 28use Test::More tests => 7;
a9153838 29
3e887aae 30my $test = Test::Builder::NoOutput->create;
a9153838 31
82d700dc
SH
32# Test diag() goes to todo_output() in a todo test.
33{
34 $test->todo_start();
a9153838 35
82d700dc 36 $test->diag("a single line");
3e887aae 37 is( $test->read('todo'), <<'DIAG', 'diag() with todo_output set' );
7483b81c 38# a single line
82d700dc
SH
39DIAG
40
41 my $ret = $test->diag("multiple\n", "lines");
3e887aae 42 is( $test->read('todo'), <<'DIAG', ' multi line' );
7483b81c
RGS
43# multiple
44# lines
45DIAG
82d700dc 46 ok( !$ret, 'diag returns false' );
7483b81c 47
82d700dc
SH
48 $test->todo_end();
49}
a9153838 50
82d700dc
SH
51
52# Test diagnostic formatting
a9153838 53{
82d700dc 54 $test->diag("# foo");
3e887aae 55 is( $test->read('err'), "# # foo\n", "diag() adds # even if there's one already" );
82d700dc
SH
56
57 $test->diag("foo\n\nbar");
3e887aae 58 is( $test->read('err'), <<'DIAG', " blank lines get escaped" );
82d700dc
SH
59# foo
60#
61# bar
62DIAG
63
82d700dc 64 $test->diag("foo\n\nbar\n\n");
3e887aae 65 is( $test->read('err'), <<'DIAG', " even at the end" );
82d700dc
SH
66# foo
67#
68# bar
69#
70DIAG
a9153838 71}
a9153838 72
a9153838 73
3e887aae 74# [rt.cpan.org 8392] diag(@list) emulates print
7483b81c 75{
82d700dc 76 $test->diag(qw(one two));
3e887aae
DM
77
78 is( $test->read('err'), <<'DIAG' );
7483b81c
RGS
79# onetwo
80DIAG
3e887aae 81}