perlquestion
ig
<p>I am writing a test using [mod://Test::More] and <c>is_deeply</c> where the expected result has a string with control characters, as in the following example:</p>
<c>
use Test::More;
use Data::Dumper;
$Data::Dumper::Useqq = 1;
my $expect = "\a";
my $got = "\b";
is_deeply($got, $expect, "example test") or
diag "got: " . Dumper($got) .
" expected: " . Dumper($expect);
</c>
<p>When the test fails, <c>is_deeply</c> prints the values. As they are not human readable, it is difficult to see the difference. In this case the impact on the terminal is minimal but with arbitrary data it can be quite disruptive.</p>
<p>While I can add diagnostics using [mod://Data::Dumper] or other serialization, as in the example above, this doesn't stop <c>is_deeply</c> printing the binary data and potentially corrupting the terminal display.</p>
<p>There does not appear to be a provision in [mod://Test::More] to have <c>is_deeply</c> serialize the values to human readable form.</p>
<p>I tried searching, but was overwhelmed with irrelevant results and was unsuccessful trying to narrow the search, so pointers or suggestions would be much appreciated.</p>