mirror of
https://git.busybox.net/busybox
synced 2026-01-31 16:43:21 +00:00
hexdump: add tests for %x, handle little/big endian properly
Signed-off-by: Radoslav Kolev <radoslav.kolev@suse.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
b8ce2084cd
commit
e6317e72dd
1 changed files with 69 additions and 22 deletions
|
|
@ -5,6 +5,17 @@
|
|||
|
||||
. ./testing.sh
|
||||
|
||||
input=\
|
||||
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"\
|
||||
"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"\
|
||||
"\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"\
|
||||
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"\
|
||||
"\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"
|
||||
|
||||
little_endian=false
|
||||
{ printf '\0\1' | hexdump -d | grep -q 256; } && little_endian=true
|
||||
readonly little_endian
|
||||
|
||||
# testing "description" "command" "result" "infile" "stdin"
|
||||
testing 'hexdump -C with four NULs' \
|
||||
'hexdump -C' \
|
||||
|
|
@ -43,12 +54,7 @@ testing "hexdump -e %3_u" \
|
|||
80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f
|
||||
f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff
|
||||
" \
|
||||
"" \
|
||||
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"\
|
||||
"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"\
|
||||
"\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"\
|
||||
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"\
|
||||
"\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"\
|
||||
"" "$input"
|
||||
|
||||
testing "hexdump -e /1 %d" \
|
||||
"hexdump -e '16/1 \" %4d\" \"\n\"'" \
|
||||
|
|
@ -59,33 +65,74 @@ testing "hexdump -e /1 %d" \
|
|||
-128 -127 -126 -125 -124 -123 -122 -121 -120 -119 -118 -117 -116 -115 -114 -113
|
||||
-16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
|
||||
" \
|
||||
"" \
|
||||
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"\
|
||||
"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"\
|
||||
"\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"\
|
||||
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"\
|
||||
"\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"\
|
||||
"" "$input"
|
||||
|
||||
testing "hexdump -e /2 %d" \
|
||||
"hexdump -e '8/2 \" %6d\" \"\n\"'" \
|
||||
"\
|
||||
$little_endian || SKIP=1
|
||||
testing "hexdump -e /2 %d (little endian)" \
|
||||
"hexdump -e '8/2 \" %6d\" \"\n\"'" \
|
||||
"\
|
||||
256 770 1284 1798 2312 2826 3340 3854
|
||||
4368 4882 5396 5910 6424 6938 7452 7966
|
||||
29040 29554 30068 30582 31096 31610 32124 32638
|
||||
-32384 -31870 -31356 -30842 -30328 -29814 -29300 -28786
|
||||
-3600 -3086 -2572 -2058 -1544 -1030 -516 -2
|
||||
" \
|
||||
"" \
|
||||
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"\
|
||||
"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"\
|
||||
"\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"\
|
||||
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"\
|
||||
"\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"\
|
||||
"" "$input"
|
||||
SKIP=
|
||||
|
||||
testing "hexdump -n4 -e '\"%u\"'" \
|
||||
$little_endian && SKIP=1
|
||||
testing "hexdump -e /2 %d (big endian)" \
|
||||
"hexdump -e '8/2 \" %6d\" \"\n\"'" \
|
||||
"\
|
||||
1 515 1029 1543 2057 2571 3085 3599
|
||||
4113 4627 5141 5655 6169 6683 7197 7711
|
||||
28785 29299 29813 30327 30841 31355 31869 32383
|
||||
-32639 -32125 -31611 -31097 -30583 -30069 -29555 -29041
|
||||
-3855 -3341 -2827 -2313 -1799 -1285 -771 -257
|
||||
" \
|
||||
"" "$input"
|
||||
SKIP=
|
||||
|
||||
$little_endian || SKIP=1
|
||||
testing "hexdump -e /2 %x (little endian)" \
|
||||
"hexdump -e '8/2 \" %6x\" \"\n\"'" \
|
||||
"\
|
||||
100 302 504 706 908 b0a d0c f0e
|
||||
1110 1312 1514 1716 1918 1b1a 1d1c 1f1e
|
||||
7170 7372 7574 7776 7978 7b7a 7d7c 7f7e
|
||||
8180 8382 8584 8786 8988 8b8a 8d8c 8f8e
|
||||
f1f0 f3f2 f5f4 f7f6 f9f8 fbfa fdfc fffe
|
||||
" \
|
||||
"" "$input"
|
||||
SKIP=
|
||||
|
||||
$little_endian && SKIP=1
|
||||
testing "hexdump -e /2 %x (big endian)" \
|
||||
"hexdump -e '8/2 \" %6x\" \"\n\"'" \
|
||||
"\
|
||||
1 203 405 607 809 a0b c0d e0f
|
||||
1011 1213 1415 1617 1819 1a1b 1c1d 1e1f
|
||||
7071 7273 7475 7677 7879 7a7b 7c7d 7e7f
|
||||
8081 8283 8485 8687 8889 8a8b 8c8d 8e8f
|
||||
f0f1 f2f3 f4f5 f6f7 f8f9 fafb fcfd feff
|
||||
" \
|
||||
"" "$input"
|
||||
SKIP=
|
||||
|
||||
$little_endian || SKIP=1
|
||||
testing "hexdump -n4 -e '\"%u\"' (little endian)" \
|
||||
"hexdump -n4 -e '\"%u\"'" \
|
||||
"12345678" \
|
||||
"" \
|
||||
"\x4e\x61\xbc\x00AAAA"
|
||||
SKIP=
|
||||
|
||||
$little_endian && SKIP=1
|
||||
testing "hexdump -n4 -e '\"%u\"' (big endian)" \
|
||||
"hexdump -n4 -e '\"%u\"'" \
|
||||
"1315027968" \
|
||||
"" \
|
||||
"\x4e\x61\xbc\x00AAAA"
|
||||
SKIP=
|
||||
|
||||
exit $FAILCOUNT
|
||||
|
|
|
|||
Loading…
Reference in a new issue