File busybox-1.37.0-hexdump-add-tests-for-x-handle-little-big-endian-pro.patch of Package busybox
From 49cd4bfb4046db783074b08bcfac22fed2a0bbe3 Mon Sep 17 00:00:00 2001
From: Radoslav Kolev <radoslav.kolev@suse.com>
Date: Wed, 23 Apr 2025 22:30:56 +0300
Subject: [PATCH 3/3] hexdump: add tests for %x, handle little/big endian
properly
Signed-off-by: Radoslav Kolev <radoslav.kolev@suse.com>
---
testsuite/hexdump.tests | 91 +++++++++++++++++++++++++++++++----------
1 file changed, 69 insertions(+), 22 deletions(-)
diff --git a/testsuite/hexdump.tests b/testsuite/hexdump.tests
index 517ec508b..b2f6a2201 100755
--- a/testsuite/hexdump.tests
+++ b/testsuite/hexdump.tests
@@ -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=
+
+$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=
-testing "hexdump -n4 -e '\"%u\"'" \
+$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
--
2.47.1