http://qs321.pair.com?node_id=1061783

ig has asked for the wisdom of the Perl Monks concerning the following question:

I am writing a test using Test::More and is_deeply where the expected result has a string with control characters, as in the following example:

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);

When the test fails, is_deeply 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.

While I can add diagnostics using Data::Dumper or other serialization, as in the example above, this doesn't stop is_deeply printing the binary data and potentially corrupting the terminal display.

There does not appear to be a provision in Test::More to have is_deeply serialize the values to human readable form.

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.