use v6-alpha; use Test; plan 3; use Test::Builder::Output; my $output = open('output', :w); my $error_output = open('error_output', :w); my $tbo = Test::Builder::Output.new( output => $output, error_output => $error_output, ); is( $tbo.WHAT, ::Test::Builder::Output, 'new() should return a Test::Builder::Output instance' ); $tbo.write('ok 1'); $tbo.write('ok 2'); $tbo.write("ok 3\ntesting"); $output.close(); my $output_output = slurp('output'); is( $output_output, "ok 1\nok 2\nok 3\n# testing\n", 'write() should write to normal output, escaping newlines' ); $tbo.diag('this is error output'); $tbo.diag("this is error output\nover two lines"); $error_output.close(); my $error_output_output = slurp('error_output'); is($error_output_output, "# this is error output # this is error output # over two lines\n", 'diag() should write to error output, escaping all output' ); END { unlink( 'output' ); unlink( 'error_output' ); }