1#!perl -w
2
3use strict;
4use warnings;
5
6use Test::More tests => 7;
7
8use Data::Hexdumper qw(hexdump);
9
10eval { hexdump(data => '0123456789ABCDEF', number_format => 'C', output_format => '%C'); };
11ok($@, "number_format with output_format is fatal");
12
13is(
14  hexdump(data => 'abcdefghijklmno', output_format => '%4a %C %S %L< %Q> %d'),
15  Data::Hexdumper::LITTLEENDIAN ?
16    "0x0000 61 6362 67666564 68696A6B6C6D6E6F abcdefghijklmno\n" :
17    "0x0000 61 6263 67666564 68696A6B6C6D6E6F abcdefghijklmno\n",
18  "mixed formats work"
19);
20
21is(
22  hexdump(data => 'abcdefghijklmno', output_format => '%4a %%C % < > %C %S%> %L%< %Q%% %d'),
23  Data::Hexdumper::LITTLEENDIAN ?
24    "0x0000 %C % < > 61 6362> 67666564< 6F6E6D6C6B6A6968% abcdefghijklmno\n" :
25    "0x0000 %C % < > 61 6263> 64656667< 68696A6B6C6D6E6F% abcdefghijklmno\n",
26  "%{%,<,>} work"
27);
28
29is(
30  hexdump(data => 'abcdefgh', output_format => '%4a %L< %L<'),
31  hexdump(data => 'abcdefgh', output_format => '%a %L< %L<'),
32  '%4a == %a'
33);
34
35is(
36  hexdump(data => 'abcdefgh', output_format => '%8a %L< %L<'),
37  "0x00000000 64636261 68676665\n",
38  '%8a works'
39);
40is(
41  hexdump(data => 'abcdefghabcdefgh', output_format => '%11a %L< %L<'),
42  "0x00000000000 64636261 68676665\n0x00000000008 64636261 68676665\n",
43  '%11a works'
44);
45
46is(
47  hexdump(data => 'abcdefgh', suppress_warnings => 1, output_format => '%a %2Q %3C %4S< %1L'),
48  hexdump(data => 'abcdefgh', suppress_warnings => 1, output_format => '%a %Q %Q %C %C %C %S< %S< %S< %S< %L'),
49  '%2Q %3C %4S< %1L == %Q %Q %C %C %C %S< %S< %S< %S< %L'
50);
51
52