Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

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

by pc88mxer (Vicar)
on Jul 22, 2008 at 14:48 UTC ( #699327=note: print w/replies, xml ) Need Help??


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

Instead of calling diag($data) you probably have to do this:
my $tb = Test::More->builder; $tb->failure_output(\*STDOUT); $tb->diag($data);
Of course you can wrap it in a subroutine.

Update: Alternatively, instead of redefining failure_output, it might be better to just call binmode on it:

my $tb = Test::More->builder; binmode $tb->failure_output, ":utf8"; $tb->diag(...);

Replies are listed 'Best First'.
Re^2: How can I enable utf8 layer on Test::More diag output
by mje (Curate) on Jul 22, 2008 at 14:57 UTC
    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
Node Status?
node history
Node Type: note [id://699327]
help
Chatterbox?
[james28909]: thanks for the vid holli, i do like it. thanks for sharing :)
[holli]: gives me goosebumps every time I watch it
holli gotta grab some groceries before dawn. l8ters
[erix]: s/dawn/dusk/
[erix]: (you're welcome :P)
[james28909]: you know, i had a thought a few mnths back. what if this universe were just a puzzle, waiting for life to figure it out!
[james28909]: what if one day we are able to grab the curtain that is "spacetime" and pull it back to reveal <insert imagination here> pulling at levers and ropes xD
[holli]: like dorothy?
[james28909]: see ya later holli

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (15)
As of 2017-12-15 14:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What programming language do you hate the most?




















    Results (433 votes). Check out past polls.

    Notices?