1#!/usr/bin/perl -w 2 3# Test Test::Builder->reset; 4 5BEGIN { 6 if( $ENV{PERL_CORE} ) { 7 chdir 't'; 8 @INC = ('../lib', 'lib'); 9 } 10 else { 11 unshift @INC, 't/lib'; 12 } 13} 14chdir 't'; 15 16 17use Test::Builder; 18my $Test = Test::Builder->new; 19my $tb = Test::Builder->create; 20 21# We'll need this later to know the outputs were reset 22my %Original_Output; 23$Original_Output{$_} = $tb->$_ for qw(output failure_output todo_output); 24 25# Alter the state of Test::Builder as much as possible. 26my $output = ''; 27$tb->output(\$output); 28$tb->failure_output(\$output); 29$tb->todo_output(\$output); 30 31$tb->plan(tests => 14); 32$tb->level(0); 33 34$tb->ok(1, "Running a test to alter TB's state"); 35 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 51 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); 69$tb->level(0); 70$tb->ok(1, 'final test to make sure output was reset'); 71 72$Test->current_test(13); 73$Test->done_testing(13); 74