Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^2: How can I enable utf8 layer on Test::More diag output

by mje (Curate)
on Jul 22, 2008 at 14:57 UTC ( [id://699332]=note: print w/replies, xml ) Need Help??


in reply to Re: How can I enable utf8 layer on Test::More diag output
in thread How can I enable utf8 layer on Test::More diag output

This does in deed work and I've found out why. The problem is that Test::Builder duplicates STDOUT and STDERR (comments say so you can change them without affecting Test::More) but it does NOT duplicate the IO layers. The funny thing is has code to do it but it is commented out:
sub _open_testhandles { my $self = shift; return if $Opened_Testhandles; # We dup STDOUT and STDERR so people can change them in their # test suites while still getting normal test output. open( $Testout, ">&STDOUT") or die "Can't dup STDOUT: $!"; open( $Testerr, ">&STDERR") or die "Can't dup STDERR: $!"; # $self->_copy_io_layers( \*STDOUT, $Testout ); # $self->_copy_io_layers( \*STDERR, $Testerr ); $Opened_Testhandles = 1; } sub _copy_io_layers { my($self, $src, $dst) = @_; $self->_try(sub { require PerlIO; my @src_layers = PerlIO::get_layers($src); binmode $dst, join " ", map ":$_", @src_layers if @src_layers; }); }
I've no idea why this is commented out. However, setting utf8 io layer on STDOUT and then calling failure_output to reset Test::More's idea of failure output works - just seems a bit of a hack.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://699332]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (3)
As of 2024-04-26 04:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found