#!perl -w
BEGIN {
if
(
$ENV
{PERL_CORE} ) {
chdir
't'
;
@INC
= (
'../lib'
,
'lib'
);
}
else
{
unshift
@INC
,
't/lib'
;
}
}
chdir
't'
;
my
$Test
= Test::Builder->new;
$Test
->plan(
tests
=> 6 );
my
$tb
= Test::Builder->create();
my
$tmpfile
=
'foo.tmp'
;
END { 1
while
unlink
(
$tmpfile
) }
{
my
$out
=
$tb
->output(
$tmpfile
);
$Test
->ok(
defined
$out
);
print
$out
"hi!\n"
;
close
*$out
;
undef
$out
;
open
(IN,
$tmpfile
) or
die
$!;
chomp
(
my
$line
= <IN>);
close
IN;
$Test
->is_eq(
$line
,
'hi!'
);
}
{
open
(FOO,
">>$tmpfile"
) or
die
$!;
my
$out
=
$tb
->output(\
*FOO
);
my
$old
=
select
*$out
;
print
"Hello!\n"
;
close
*$out
;
undef
$out
;
select
$old
;
open
(IN,
$tmpfile
) or
die
$!;
my
@lines
= <IN>;
close
IN;
$Test
->like(
$lines
[1],
qr/Hello!/
);
}
{
my
$scalar
=
''
;
my
$out
=
$tb
->output(\
$scalar
);
print
$out
"Hey hey hey!\n"
;
$Test
->is_eq(
$scalar
,
"Hey hey hey!\n"
);
}
{
my
$scalar
=
''
;
my
$out
=
$tb
->output(\
$scalar
);
my
$err
=
$tb
->failure_output(\
$scalar
);
print
$out
"To output "
;
print
$err
"and beyond!"
;
$Test
->is_eq(
$scalar
,
"To output and beyond!"
,
"One scalar, two filehandles"
);
}
{
my
$fakeout
=
''
;
my
$out
=
$tb
->output(\
$fakeout
);
$tb
->exported_to(__PACKAGE__);
$tb
->no_ending(1);
$tb
->plan(
tests
=> 5);
$tb
->ok(1,
"ok"
);
$tb
->ok(1,
"ok\n"
);
$tb
->ok(1,
"ok, like\nok"
);
$tb
->skip(
"wibble\nmoof"
);
$tb
->todo_skip(
"todo\nskip\n"
);
$Test
->is_eq(
$fakeout
,
<<OUTPUT ) || print STDERR $fakeout;
1..5
ok 1 - ok
ok 2 - ok
#
ok 3 - ok, like
# ok
ok 4 # skip wibble
# moof
not ok 5 # TODO & SKIP todo
# skip
#
OUTPUT
}