NAME

Test::HexDifferences - Test binary as hexadecimal string

VERSION

0.002

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 the same like eq_or_diff of Test::Differences.

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

Test::Differences

Test::HexDifferences::HexDump

Perl6::Export::Attrs

INCOMPATIBILITIES

none

BUGS AND LIMITATIONS

none

SEE ALSO

Test::Differences

Test::HexDifferences::HexDump

AUTHOR

Steffen Winkler

LICENSE AND COPYRIGHT

Copyright (c) 2012, 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.