---
name: "Test::HexDifferences"
section: "3pm"
platform: "linux"
package: "libtest-hexdifferences-perl"
version: "1.001-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Test::HexDifferences"
---

# Test::HexDifferences(3pm)

Test binary as hexadecimal string

## 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.
