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.


In reply to Test::More is_deeply and binary data by ig

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.