Test::HexDifferences(3p)

NAME
Test::HexDifferences - Test binary as hexadecimal string

VERSION
1.001

SYNOPSIS
    use Test::HexDifferences;

    eq_or_dump_diff(
        $got,
        $expected,
    );

    eq_or_dump_diff(
        $got,
        $expected,
        $test_name,
    );

    eq_or_dump_diff(
        $got,
        $expected,
        {
            address => $start_address,
            format  => "%a : %4C : %d\n",
        }
        $test_name,
    );

If $got or $expected is "undef" or a reference, the hexadecimal formatter is off. Then "eq_or_dump_diff" is a text compare.

    dumped_eq_dump_or_diff(
        $got_value,
        $expected_dump,
    );

    dumped_eq_dump_or_diff(
        $got_value,
        $expected_dump,
        $test_name,
    );

    dumped_eq_dump_or_diff(
        $got_value,
        $expected_dump,
        {
            address => $start_address,
            format  => "%a : %4C : %d\n",
        }
        $test_name,
    );

See Test::HexDifferences::HexDump for the format description.

EXAMPLE
Inside of this Distribution is a directory named example. Run this *.t files.

DESCRIPTION
The are some special cases for testing binary data.

•   The ascii format is not good for e.g. a length byte 0x41 displayed as A.

•   Multibyte values are better shown as 1 value.

•   Structured binary e.g. 2 byte length followed by bytes better are shown as it is.

•   Compare 2 binary or 1 binary and a dump.

SUBROUTINES/METHODS

  subroutine eq_or_dump_diff
    eq_or_dump_diff(
        $got_value,
        $expected_value,
        {                                      # optional hash reference
            address => $display_start_address, # optional
            format  => $format_string,         # optional
        }
        $test_name,                            # optional
    );

  subroutine dumped_eq_dump_or_diff
    dumped_eq_dump_or_diff(
        $got_value,
        $expected_dump,
        {                                      # optional hash reference
            address => $display_start_address, # optional
            format  => $format_string,         # optional
        }
        $test_name,                            # optional
    );

DIAGNOSTICS
nothing

CONFIGURATION AND ENVIRONMENT
nothing

DEPENDENCIES
Sub::Exporter

Test::Builder::Module

Test::HexDifferences::HexDump

Text::Diff

INCOMPATIBILITIES
none

BUGS AND LIMITATIONS
none

SEE ALSO
Test::HexDifferences::HexDump

AUTHOR
Steffen Winkler

LICENSE AND COPYRIGHT
Copyright (c) 2012 - 2015, Steffen Winkler "<steffenw at cpan.org>". All rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.