1#!/usr/bin/perl
2
3use Test::Builder::Tester tests => 4;
4use Test::More;
5use Symbol;
6
7# create temporary file handles that still point indirectly
8# to the right place
9
10my $orig_o = gensym; 
11my $orig_t = gensym;
12my $orig_f = gensym; 
13
14tie *$orig_o, "My::Passthru", \*STDOUT;
15tie *$orig_t, "My::Passthru", \*STDERR;
16tie *$orig_f, "My::Passthru", \*STDERR;
17
18# redirect the file handles to somewhere else for a mo
19
20use Test::Builder;
21my $t = Test::Builder->new();
22
23$t->output($orig_o);
24$t->failure_output($orig_f);
25$t->todo_output($orig_t);
26
27# run a test
28
29test_out("ok 1 - tested");
30ok(1,"tested");
31test_test("standard test okay");
32
33# now check that they were restored okay
34
35ok($orig_o == $t->output(), "output file reconnected");
36ok($orig_t == $t->todo_output(), "todo output file reconnected");
37ok($orig_f == $t->failure_output(), "failure output file reconnected");
38
39#####################################################################
40
41package My::Passthru;
42
43sub PRINT  {
44    my $self = shift;
45    my $handle = $self->[0];
46    print $handle @_;
47}
48
49sub TIEHANDLE {
50    my $class = shift;
51    my $self = [shift()];
52    return bless $self, $class;
53}
54
55sub READ {}
56sub READLINE {}
57sub GETC {}
58sub FILENO {}
59