]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
tests: fix fdisk/bsd for the two possible sectors/offsets
authorAurelien Jarno <aurelien@aurel32.net>
Thu, 14 Aug 2014 22:26:24 +0000 (00:26 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 20 Aug 2014 08:47:11 +0000 (10:47 +0200)
BSD disklabels depend on the endianess, but also on the architecture as
one can see in include/pt-bsd.h with the BSD_LABELSECTOR and
BSD_LABELOFFSET #define. This cause the testsuite to fail on the
affected architectures as the disk image is not the same as the expected
result.

Commit 180b3a7e tried to fix the endianess, but the special PowerPC case
has been chosen as a reference, so it still fails for example on MIPS BE
or S/390.

This patch fixes the testsuite by converting the md5sums to the expected
values, still depending on the endianess, but also for the two possible
sectors/offsets. This has been tested on Alpha, MIPS, PowerPC and x86-64,
so this should cover all 4 cases.

Cc: Andreas Henriksson <andreas@fatal.se>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
tests/ts/fdisk/bsd

index be44b6370df8cab8665a06a7dcaa8bcafc8d6950..d5ec215a4e600c7ae80af6b8ac9222c8ebbe53a8 100755 (executable)
@@ -39,15 +39,32 @@ FDISK_CMD_BSD_LIST_TYPES="b\nl\nq\n"         # list supported PT types and quit
 
 #set -x
 
-# BSD disklabel depends on endianess
+# BSD disklabel depends on sector/offset and endianess. We convert the md5sums
+# into the most common values (little endian, BSD_LABELSECTOR = 1, 
+# BSD_LABELOFFSET = 0) so that they can be easily compared to the expected
+# ones.
 BYTE_ORDER=$($TS_HELPER_SYSINFO byte-order)
-function fdisk_bsd_byte_order_clean
+function fdisk_bsd_offset_and_byte_order_clean
 {
-       [ $BYTE_ORDER = "BE" ] || return
-       sed -i \
-       -e "s/c2273b52976351db75596c47c10b0725/2e1cee529cb59c9341afef0443f196a1/" \
-       -e "s/9a234a5b99e37d2ce0d92b65437b93cd/b5c121c2091b2ff26b880551feac7112/" \
-       "$TS_OUTPUT"
+        if [ $BYTE_ORDER = "BE" ] ; then
+               # BSD_LABELSECTOR = 0, BSD_LABELOFFSET = 64
+               sed -i \
+               -e "s/c2273b52976351db75596c47c10b0725/2e1cee529cb59c9341afef0443f196a1/" \
+               -e "s/9a234a5b99e37d2ce0d92b65437b93cd/b5c121c2091b2ff26b880551feac7112/" \
+               "$TS_OUTPUT"
+
+               # BSD_LABELSECTOR = 1, BSD_LABELOFFSET = 0
+               sed -i \
+               -e "s/e990c8a1c2106a4cd4b008f16d71aaa6/2e1cee529cb59c9341afef0443f196a1/" \
+               -e "s/187a48c26e83d146b866868addc93702/b5c121c2091b2ff26b880551feac7112/" \
+               "$TS_OUTPUT"
+       else
+               # BSD_LABELSECTOR = 0, BSD_LABELOFFSET = 64
+               sed -i \
+               -e "s/78a922a80361cb73049bced72e0f8f1d/2e1cee529cb59c9341afef0443f196a1/" \
+               -e "s/fc2803672a0643ffe46da325629616fc/b5c121c2091b2ff26b880551feac7112/" \
+               "$TS_OUTPUT"
+       fi
 }
 
 function print_layout {
@@ -113,6 +130,6 @@ echo -e "${FDISK_CMD_BSD_LIST_TYPES}" | \
        $TS_CMD_FDISK ${TEST_IMAGE_NAME} | \
        sed 's/Reading .*//g; s/Welcome to fdisk .*//' >> $TS_OUTPUT 2>&1
 
-fdisk_bsd_byte_order_clean
+fdisk_bsd_offset_and_byte_order_clean
 ts_fdisk_clean ${TEST_IMAGE_NAME}
 ts_finalize