Commit | Line | Data |
30e302f8 |
1 | #!/usr/bin/perl -w |
2 | |
3 | # Test Test::Builder->reset; |
4 | |
5 | BEGIN { |
6 | if( $ENV{PERL_CORE} ) { |
7 | chdir 't'; |
8 | @INC = ('../lib', 'lib'); |
9 | } |
10 | else { |
11 | unshift @INC, 't/lib'; |
12 | } |
13 | } |
14 | chdir 't'; |
15 | |
16 | |
17 | use Test::Builder; |
3e887aae |
18 | my $Test = Test::Builder->new; |
19 | my $tb = Test::Builder->create; |
04955c14 |
20 | |
3e887aae |
21 | # We'll need this later to know the outputs were reset |
04955c14 |
22 | my %Original_Output; |
23 | $Original_Output{$_} = $tb->$_ for qw(output failure_output todo_output); |
24 | |
3e887aae |
25 | # Alter the state of Test::Builder as much as possible. |
26 | my $output = ''; |
27 | $tb->output(\$output); |
28 | $tb->failure_output(\$output); |
29 | $tb->todo_output(\$output); |
04955c14 |
30 | |
30e302f8 |
31 | $tb->plan(tests => 14); |
32 | $tb->level(0); |
33 | |
30e302f8 |
34 | $tb->ok(1, "Running a test to alter TB's state"); |
35 | |
30e302f8 |
36 | # This won't print since we just sent output off to oblivion. |
37 | $tb->ok(0, "And a failure for fun"); |
38 | |
39 | $Test::Builder::Level = 3; |
40 | |
41 | $tb->exported_to('Foofer'); |
42 | |
43 | $tb->use_numbers(0); |
44 | $tb->no_header(1); |
45 | $tb->no_ending(1); |
46 | |
47 | |
48 | # Now reset it. |
49 | $tb->reset; |
50 | |
30e302f8 |
51 | |
3e887aae |
52 | $Test->ok( !defined $tb->exported_to, 'exported_to' ); |
53 | $Test->is_eq( $tb->expected_tests, 0, 'expected_tests' ); |
54 | $Test->is_eq( $tb->level, 1, 'level' ); |
55 | $Test->is_eq( $tb->use_numbers, 1, 'use_numbers' ); |
56 | $Test->is_eq( $tb->no_header, 0, 'no_header' ); |
57 | $Test->is_eq( $tb->no_ending, 0, 'no_ending' ); |
58 | $Test->is_eq( $tb->current_test, 0, 'current_test' ); |
59 | $Test->is_eq( scalar $tb->summary, 0, 'summary' ); |
60 | $Test->is_eq( scalar $tb->details, 0, 'details' ); |
61 | $Test->is_eq( fileno $tb->output, |
62 | fileno $Original_Output{output}, 'output' ); |
63 | $Test->is_eq( fileno $tb->failure_output, |
64 | fileno $Original_Output{failure_output}, 'failure_output' ); |
65 | $Test->is_eq( fileno $tb->todo_output, |
66 | fileno $Original_Output{todo_output}, 'todo_output' ); |
67 | |
68 | $tb->current_test(12); |
30e302f8 |
69 | $tb->level(0); |
70 | $tb->ok(1, 'final test to make sure output was reset'); |
3e887aae |
71 | |
72 | $Test->current_test(13); |
73 | $Test->done_testing(13); |