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

openSUSE Build Service is sponsored by