]> git.proxmox.com Git - mirror_zfs.git/commitdiff
ZTS: Replace MD5 and SHA256 wit XXH128
authorTino Reichardt <milky-zfs@mcmilk.de>
Sat, 28 Sep 2024 16:24:05 +0000 (20:24 +0400)
committerGitHub <noreply@github.com>
Sat, 28 Sep 2024 16:24:05 +0000 (09:24 -0700)
For data integrity checks as done in ZTS, the verification for
unintended data corruption with xxhash128 should be a lot faster
and perfectly usable.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tino Reichardt <milky-zfs@mcmilk.de>
Closes #16577

35 files changed:
.github/workflows/scripts/qemu-3-deps.sh
tests/zfs-tests/include/commands.cfg
tests/zfs-tests/include/libtest.shlib
tests/zfs-tests/tests/functional/bclone/bclone_common.kshlib
tests/zfs-tests/tests/functional/bclone/bclone_corner_cases.kshlib
tests/zfs-tests/tests/functional/block_cloning/block_cloning.kshlib
tests/zfs-tests/tests/functional/block_cloning/block_cloning_cross_enc_dataset.ksh
tests/zfs-tests/tests/functional/cli_root/zdb/zdb_backup.ksh
tests/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_compressed_corrective.ksh
tests/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_corrective.ksh
tests/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_from_encrypted.ksh
tests/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_from_zstd.ksh
tests/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_large_block_corrective.ksh
tests/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_raw.ksh
tests/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_raw_incremental.ksh
tests/zfs-tests/tests/functional/cli_root/zpool_import/import_cachefile_shared_device.ksh
tests/zfs-tests/tests/functional/cli_root/zpool_import/import_devices_missing.ksh
tests/zfs-tests/tests/functional/cli_root/zpool_import/import_rewind_config_changed.ksh
tests/zfs-tests/tests/functional/cli_root/zpool_import/import_rewind_device_replaced.ksh
tests/zfs-tests/tests/functional/cli_root/zpool_import/zpool_import.cfg
tests/zfs-tests/tests/functional/cli_root/zpool_import/zpool_import.kshlib
tests/zfs-tests/tests/functional/cli_root/zpool_reopen/zpool_reopen_003_pos.ksh
tests/zfs-tests/tests/functional/cp_files/cp_files_002_pos.ksh
tests/zfs-tests/tests/functional/direct/dio_mixed.ksh
tests/zfs-tests/tests/functional/fault/suspend_resume_single.ksh
tests/zfs-tests/tests/functional/history/history_003_pos.ksh
tests/zfs-tests/tests/functional/no_space/enospc_ganging.ksh
tests/zfs-tests/tests/functional/rsend/rsend.kshlib
tests/zfs-tests/tests/functional/rsend/send-c_volume.ksh
tests/zfs-tests/tests/functional/rsend/send-wR_encrypted_zvol.ksh
tests/zfs-tests/tests/functional/rsend/send_encrypted_props.ksh
tests/zfs-tests/tests/functional/rsend/send_encrypted_truncated_files.ksh
tests/zfs-tests/tests/functional/rsend/send_hole_birth.ksh
tests/zfs-tests/tests/functional/slog/slog_replay_fs_001.ksh
tests/zfs-tests/tests/functional/slog/slog_replay_volume.ksh

index 35fa5016e9f674c4226dafe2793f6fae56fd48f5..a2fb5e38249a6ee7782e400d254040cd6498296a 100755 (executable)
@@ -16,7 +16,7 @@ function archlinux() {
   sudo pacman -Sy --noconfirm base-devel bc cpio dhclient dkms fakeroot \
     fio gdb inetutils jq less linux linux-headers lsscsi nfs-utils parted \
     pax perf python-packaging python-setuptools qemu-guest-agent ksh samba \
-    sysstat rng-tools rsync wget
+    sysstat rng-tools rsync wget xxhash
   echo "##[endgroup]"
 }
 
@@ -38,7 +38,7 @@ function debian() {
     lsscsi nfs-kernel-server pamtester parted python3 python3-all-dev \
     python3-cffi python3-dev python3-distlib python3-packaging \
     python3-setuptools python3-sphinx qemu-guest-agent rng-tools rpm2cpio \
-    rsync samba sysstat uuid-dev watchdog wget xfslibs-dev zlib1g-dev
+    rsync samba sysstat uuid-dev watchdog wget xfslibs-dev  xxhash zlib1g-dev
   echo "##[endgroup]"
 }
 
@@ -48,8 +48,7 @@ function freebsd() {
   echo "##[group]Install Development Tools"
   sudo pkg install -y autoconf automake autotools base64 checkbashisms fio \
     gdb gettext gettext-runtime git gmake gsed jq ksh93 lcov libtool lscpu \
-    pkgconf python python3 pamtester pamtester qemu-guest-agent rsync \
-    sysutils/coreutils
+    pkgconf python python3 pamtester pamtester qemu-guest-agent rsync xxhash
   sudo pkg install -xy \
     '^samba4[[:digit:]]+$' \
     '^py3[[:digit:]]+-cffi$' \
@@ -76,7 +75,7 @@ function rhel() {
     lsscsi mdadm nfs-utils openssl-devel pam-devel pamtester parted perf \
     python3 python3-cffi python3-devel python3-packaging kernel-devel \
     python3-setuptools qemu-guest-agent rng-tools rpcgen rpm-build rsync \
-    samba sysstat systemd watchdog wget xfsprogs-devel zlib-devel
+    samba sysstat systemd watchdog wget xfsprogs-devel xxhash zlib-devel
   echo "##[endgroup]"
 }
 
index 934aca6f918bd3fbbe3dd066a090cd40838351f0..be41ce5210e83fb4ade9e663eead8f1737b2dd20 100644 (file)
@@ -100,7 +100,8 @@ export SYSTEM_FILES_COMMON='awk
     uniq
     vmstat
     wc
-    xargs'
+    xargs
+    xxh128sum'
 
 export SYSTEM_FILES_FREEBSD='chflags
     compress
@@ -112,13 +113,11 @@ export SYSTEM_FILES_FREEBSD='chflags
     jexec
     jls
     lsextattr
-    md5
     mdconfig
     newfs
     pw
     rmextattr
     setextattr
-    sha256
     showmount
     swapctl
     sysctl
@@ -146,7 +145,6 @@ export SYSTEM_FILES_LINUX='attr
     lscpu
     lsmod
     lsscsi
-    md5sum
     mkswap
     modprobe
     mountpoint
@@ -156,7 +154,6 @@ export SYSTEM_FILES_LINUX='attr
     perf
     setfattr
     setpriv
-    sha256sum
     udevadm
     unshare
     useradd
index 4071018260c6833a944eb2e5ee848e0115c9e214..9cf919c3dd0f9a09ecb918d0517d5a206fd19540 100644 (file)
@@ -3455,35 +3455,26 @@ function tunable_exists
 }
 
 #
-# Compute MD5 digest for given file or stdin if no file given.
+# Compute xxh128sum for given file or stdin if no file given.
 # Note: file path must not contain spaces
 #
-function md5digest
+function xxh128digest
 {
-       openssl md5 -r $1 | awk '{print $1}'
+       xxh128sum $1 | awk '{print $1}'
 }
 
 #
-# Compare the MD5 digest of two files.
+# Compare the xxhash128 digest of two files.
 #
-function cmp_md5s {
+function cmp_xxh128 {
        typeset file1=$1
        typeset file2=$2
 
-       typeset sum1=$(md5digest $file1)
-       typeset sum2=$(md5digest $file2)
+       typeset sum1=$(xxh128digest $file1)
+       typeset sum2=$(xxh128digest $file2)
        test "$sum1" = "$sum2"
 }
 
-#
-# Compute SHA256 digest for given file or stdin if no file given.
-# Note: file path must not contain spaces
-#
-function sha256digest
-{
-       openssl sha256 -r $1 | awk '{print $1}'
-}
-
 function new_fs #<args>
 {
        case "$UNAME" in
index 84b92b4dcdc9df808f19e4e907394a9bc8bdb864..4c52bebad081b084a50301a02f7eacf3370ee967 100644 (file)
@@ -77,7 +77,7 @@ function test_file_integrity
     typeset -r clone=$2
     typeset -r filesize=$3
 
-    typeset -r clone_checksum=$(sha256digest $clone)
+    typeset -r clone_checksum=$(xxh128digest $clone)
 
     if [[ $original_checksum != $clone_checksum ]]; then
         log_fail "Clone $clone is corrupted with file size $filesize"
@@ -171,7 +171,7 @@ function bclone_test
         dsize=0
     fi
 
-    typeset -r original_checksum=$(sha256digest $original)
+    typeset -r original_checksum=$(xxh128digest $original)
 
     sync_pool $TESTPOOL
 
index aeb8efe91715031e4cdb6b83f3fa4b1b5babdaed..dbb47563bebff216dedf2dcc77287becf50429cb 100644 (file)
@@ -32,14 +32,14 @@ function first_half_checksum
 {
     typeset -r file=$1
 
-    dd if=$file bs=$HALFRECORDSIZE count=1 2>/dev/null | sha256digest
+    dd if=$file bs=$HALFRECORDSIZE count=1 2>/dev/null | xxh128digest
 }
 
 function second_half_checksum
 {
     typeset -r file=$1
 
-    dd if=$file bs=$HALFRECORDSIZE count=1 skip=1 2>/dev/null | sha256digest
+    dd if=$file bs=$HALFRECORDSIZE count=1 skip=1 2>/dev/null | xxh128digest
 }
 
 function bclone_corner_cases_init
@@ -66,7 +66,7 @@ function bclone_corner_cases_init
     export SECOND_HALF_ORIG0_CHECKSUM=$(second_half_checksum $ORIG0)
     export SECOND_HALF_ORIG1_CHECKSUM=$(second_half_checksum $ORIG1)
     export SECOND_HALF_ORIG2_CHECKSUM=$(second_half_checksum $ORIG2)
-    export ZEROS_CHECKSUM=$(dd if=/dev/zero bs=$HALFRECORDSIZE count=1 2>/dev/null | sha256digest)
+    export ZEROS_CHECKSUM=$(dd if=/dev/zero bs=$HALFRECORDSIZE count=1 2>/dev/null | xxh128digest)
     export FIRST_HALF_CHECKSUM=""
     export SECOND_HALF_CHECKSUM=""
 }
index 50f3a3d262c07a3b8b53ebd58e004ae737414e2f..d59329d8748e85ac833a3787e0cd8d04e78130d5 100644 (file)
@@ -28,8 +28,8 @@
 
 function have_same_content
 {
-       typeset hash1=$(md5digest $1)
-       typeset hash2=$(md5digest $2)
+       typeset hash1=$(xxh128digest $1)
+       typeset hash2=$(xxh128digest $2)
 
        log_must [ "$hash1" = "$hash2" ]
 }
index 702e23267f7eb3d094f4e0e976b0608de0d95bcd..f85e4f038a3e14d677407d1a3e4d917a4b275e1d 100755 (executable)
@@ -110,9 +110,9 @@ log_note "Cloning entire file with copy_file_range across different enc" \
 clone_and_check "file" "clone" $DS1 $DS2 "" true
 log_note "check if the file is still readable and the same after" \
     "unmount and key unload, shouldn't fail"
-typeset hash1=$(md5digest "/$DS1/file")
+typeset hash1=$(xxh128digest "/$DS1/file")
 log_must zfs umount $DS1 && zfs unload-key $DS1
-typeset hash2=$(md5digest "/$DS2/clone")
+typeset hash2=$(xxh128digest "/$DS2/clone")
 log_must [ "$hash1" = "$hash2" ]
 
 cleanup_enc
@@ -144,12 +144,12 @@ log_must sync_pool $TESTPOOL
 log_must rm -f "/$DS1/file" "/$DS2/file"
 log_must sync_pool $TESTPOOL
 clone_and_check "file" "clone" "$DS2" "$DS1" "" true "s1"
-typeset hash1=$(md5digest "/$DS1/.zfs/snapshot/s1/file")
+typeset hash1=$(xxh128digest "/$DS1/.zfs/snapshot/s1/file")
 log_note "destroy the snapshot and check if the file is still readable and" \
     "has the same content"
 log_must zfs destroy -r $DS2@s1
 log_must sync_pool $TESTPOOL
-typeset hash2=$(md5digest "/$DS1/file")
+typeset hash2=$(xxh128digest "/$DS1/file")
 log_must [ "$hash1" = "$hash2" ]
 
 cleanup_enc
index b591b209ab6b115c5074d7be788880f4e58013ed..bd025c925496f521032542e0ff6ddee2a7174e7f 100755 (executable)
@@ -47,8 +47,8 @@ sync_pool $TESTPOOL
 log_must eval "zfs send -ecL $snap > $tmpfile.1"
 log_must eval "zdb -B $TESTPOOL/$objsetid ecL > $tmpfile.2"
 
-typeset sum1=$(md5digest $tmpfile.1)
-typeset sum2=$(md5digest $tmpfile.2)
+typeset sum1=$(xxh128digest $tmpfile.1)
+typeset sum2=$(xxh128digest $tmpfile.2)
 
 log_must test "$sum1" = "$sum2"
 
index 7f8eb0b138ee0ab51d0171469920d8c3a2efe8f2..fec6fc041b47a5ca721fef698a8e37c95e51e587 100755 (executable)
@@ -73,7 +73,7 @@ function test_corrective_recv
        log_must zpool status -v $TESTPOOL
        log_mustnot eval "zpool status -v $TESTPOOL | \
            grep \"Permanent errors have been detected\""
-       typeset cksum=$(md5digest $file)
+       typeset cksum=$(xxh128digest $file)
        [[ "$cksum" == "$checksum" ]] || \
                log_fail "Checksums differ ($cksum != $checksum)"
 }
@@ -95,7 +95,7 @@ log_must zfs create -o primarycache=none \
 
 log_must dd if=/dev/urandom of=$file bs=1024 count=1024 oflag=sync
 log_must eval "echo 'aaaaaaaa' >> "$file
-typeset checksum=$(md5digest $file)
+typeset checksum=$(xxh128digest $file)
 
 log_must zfs snapshot $TESTPOOL/$TESTFS1@snap1
 
index 261fc5eed8cb01c50e2d79fa23391726875ff09c..44d4e2fa6dedf82d53186b40ee9b1a49a3c0c7c4 100755 (executable)
@@ -72,7 +72,7 @@ function test_corrective_recv
        log_must zpool status -v $TESTPOOL
        log_mustnot eval "zpool status -v $TESTPOOL | \
            grep \"Permanent errors have been detected\""
-       typeset cksum=$(md5digest $file)
+       typeset cksum=$(xxh128digest $file)
        [[ "$cksum" == "$checksum" ]] || \
                log_fail "Checksums differ ($cksum != $checksum)"
 }
@@ -94,7 +94,7 @@ log_must zfs create -o primarycache=none \
 
 log_must dd if=/dev/urandom of=$file bs=1024 count=1024 oflag=sync
 log_must eval "echo 'aaaaaaaa' >> "$file
-typeset checksum=$(md5digest $file)
+typeset checksum=$(xxh128digest $file)
 
 log_must zfs snapshot $TESTPOOL/$TESTFS1@snap1
 
@@ -177,7 +177,7 @@ log_must zpool scrub -w $TESTPOOL
 log_must zpool status -v $TESTPOOL
 log_mustnot eval "zpool status -v $TESTPOOL | \
     grep \"Permanent errors have been detected\""
-typeset cksum=$(md5digest $file)
+typeset cksum=$(xxh128digest $file)
 [[ "$cksum" == "$checksum" ]] || \
        log_fail "Checksums differ ($cksum != $checksum)"
 
index 8914326852879280ccbe373f108152afd09ae665..fe9c0f1803a7957c68e4a612b0149f0227c179dd 100755 (executable)
@@ -59,7 +59,7 @@ log_must eval "echo $passphrase | zfs create -o encryption=on" \
        "-o keyformat=passphrase $TESTPOOL/$TESTFS2"
 
 log_must mkfile 1M /$TESTPOOL/$TESTFS2/$TESTFILE0
-typeset checksum=$(md5digest /$TESTPOOL/$TESTFS2/$TESTFILE0)
+typeset checksum=$(xxh128digest /$TESTPOOL/$TESTFS2/$TESTFILE0)
 
 log_must zfs snapshot $snap
 
@@ -69,14 +69,14 @@ log_must eval "zfs send $snap | zfs receive $TESTPOOL/$TESTFS1/c1"
 crypt=$(get_prop encryption $TESTPOOL/$TESTFS1/c1)
 [[ "$crypt" == "off" ]] || log_fail "Received unencrypted stream as encrypted"
 
-typeset cksum1=$(md5digest /$TESTPOOL/$TESTFS1/c1/$TESTFILE0)
+typeset cksum1=$(xxh128digest /$TESTPOOL/$TESTFS1/c1/$TESTFILE0)
 [[ "$cksum1" == "$checksum" ]] || \
        log_fail "Checksums differ ($cksum1 != $checksum)"
 
 log_note "Verify ZFS can receive into an encrypted child"
 log_must eval "zfs send $snap | zfs receive $TESTPOOL/$TESTFS2/c1"
 
-typeset cksum2=$(md5digest /$TESTPOOL/$TESTFS2/c1/$TESTFILE0)
+typeset cksum2=$(xxh128digest /$TESTPOOL/$TESTFS2/c1/$TESTFILE0)
 [[ "$cksum2" == "$checksum" ]] || \
        log_fail "Checksums differ ($cksum2 != $checksum)"
 
index 05c2ece4654fcb4cbca8f003ddeb0127c1f37fc3..e078103a1be284338575a48030ee10d659aec890 100755 (executable)
@@ -60,7 +60,7 @@ log_must zfs create -o compress=zstd-$random_level $TESTPOOL/$TESTFS1
 # Make a 5kb compressible file
 log_must eval cat $src_data $src_data $src_data $src_data $src_data \
     "> /$TESTPOOL/$TESTFS1/$TESTFILE0"
-typeset checksum=$(md5digest /$TESTPOOL/$TESTFS1/$TESTFILE0)
+typeset checksum=$(xxh128digest /$TESTPOOL/$TESTFS1/$TESTFILE0)
 
 log_must zfs snapshot $snap
 
@@ -79,7 +79,7 @@ log_note "ZSTD src: size=$zstd_size1 version=$zstd_version1 level=$zstd_level1"
 log_note "Verify ZFS can receive the ZSTD compressed stream"
 log_must eval "zfs send -ec $snap | zfs receive $TESTPOOL/$TESTFS2"
 
-typeset cksum1=$(md5digest /$TESTPOOL/$TESTFS2/$TESTFILE0)
+typeset cksum1=$(xxh128digest /$TESTPOOL/$TESTFS2/$TESTFILE0)
 [[ "$cksum1" == "$checksum" ]] || \
        log_fail "Checksums differ ($cksum1 != $checksum)"
 
index fbcd33f607042935ce607d925a232485493f449f..0958b7c1bbf31f0fa74c0baf6fc3966dc587053a 100755 (executable)
@@ -73,7 +73,7 @@ function test_corrective_recv
        log_must zpool status -v $TESTPOOL
        log_mustnot eval "zpool status -v $TESTPOOL | \
            grep \"Permanent errors have been detected\""
-       typeset cksum=$(md5digest $file)
+       typeset cksum=$(xxh128digest $file)
        [[ "$cksum" == "$checksum" ]] || \
                log_fail "Checksums differ ($cksum != $checksum)"
 }
@@ -96,7 +96,7 @@ log_must zfs create -o recordsize=1m -o primarycache=none \
 
 log_must dd if=/dev/urandom of=$file bs=1024 count=1024 oflag=sync
 log_must eval "echo 'aaaaaaaa' >> "$file
-typeset checksum=$(md5digest $file)
+typeset checksum=$(xxh128digest $file)
 
 log_must zfs snapshot $TESTPOOL/$TESTFS1@snap1
 
index 32b05e527ad3e81d2c62ccac535142bacbd963c4..6b4425fd1db29e8ca754043b4eb88d3970dc96f2 100755 (executable)
@@ -61,7 +61,7 @@ log_must eval "echo $passphrase | zfs create -o encryption=on" \
        "-o keyformat=passphrase $TESTPOOL/$TESTFS1"
 
 log_must mkfile 1M /$TESTPOOL/$TESTFS1/$TESTFILE0
-typeset checksum=$(md5digest /$TESTPOOL/$TESTFS1/$TESTFILE0)
+typeset checksum=$(xxh128digest /$TESTPOOL/$TESTFS1/$TESTFILE0)
 
 log_must zfs snapshot $snap
 
@@ -74,7 +74,7 @@ keystatus=$(get_prop keystatus $TESTPOOL/$TESTFS2)
 
 log_must eval "echo $passphrase | zfs mount -l $TESTPOOL/$TESTFS2"
 
-typeset cksum1=$(md5digest /$TESTPOOL/$TESTFS2/$TESTFILE0)
+typeset cksum1=$(xxh128digest /$TESTPOOL/$TESTFS2/$TESTFILE0)
 [[ "$cksum1" == "$checksum" ]] || \
        log_fail "Checksums differ ($cksum1 != $checksum)"
 
@@ -85,7 +85,7 @@ keystatus=$(get_prop keystatus $TESTPOOL/$TESTFS1/c1)
        log_fail "Expected keystatus unavailable, got $keystatus"
 
 log_must eval "echo $passphrase | zfs mount -l $TESTPOOL/$TESTFS1/c1"
-typeset cksum2=$(md5digest /$TESTPOOL/$TESTFS1/c1/$TESTFILE0)
+typeset cksum2=$(xxh128digest /$TESTPOOL/$TESTFS1/c1/$TESTFILE0)
 [[ "$cksum2" == "$checksum" ]] || \
        log_fail "Checksums differ ($cksum2 != $checksum)"
 
index 7826ec9a4890ce9b9028ca288f5d41c6dc10d817..c33bba53291a9bcd9734b44651b57dcbdd9da189 100755 (executable)
@@ -69,7 +69,7 @@ log_must eval "echo $passphrase | zfs create -o encryption=on" \
 log_must zfs snapshot $snap1
 
 log_must mkfile 1M /$TESTPOOL/$TESTFS1/$TESTFILE0
-typeset checksum=$(md5digest /$TESTPOOL/$TESTFS1/$TESTFILE0)
+typeset checksum=$(xxh128digest /$TESTPOOL/$TESTFS1/$TESTFILE0)
 
 log_must zfs snapshot $snap2
 
@@ -89,7 +89,7 @@ log_must zfs unload-key $TESTPOOL/$TESTFS2
 log_must eval "zfs receive $TESTPOOL/$TESTFS2 < $ibackup"
 log_must eval "echo $passphrase2 | zfs mount -l $TESTPOOL/$TESTFS2"
 
-typeset cksum1=$(md5digest /$TESTPOOL/$TESTFS2/$TESTFILE0)
+typeset cksum1=$(xxh128digest /$TESTPOOL/$TESTFS2/$TESTFILE0)
 [[ "$cksum1" == "$checksum" ]] || \
        log_fail "Checksums differ ($cksum1 != $checksum)"
 
index ce9885904b0186552f7a40d4b018f944a7937988..5d0bcfc222df49481e207191c337b223b6a4aa8d 100755 (executable)
@@ -50,7 +50,7 @@ function dev_checksum
 
        log_note "Compute checksum of '$dev'"
 
-       md5digest $dev ||
+       xxh128digest $dev ||
                log_fail "Failed to compute checksum of '$dev'"
 }
 
index af6ac8d78e4e35445185e9bac7971afe6ee72623..e63b82be84bdb56942fe1466916250a934544116 100755 (executable)
@@ -79,11 +79,11 @@ function test_devices_missing
        log_must set_spa_load_verify_data 0
        log_must zpool import -o readonly=on -d $DEVICE_DIR $TESTPOOL1
 
-       log_must verify_data_md5sums $MD5FILE
+       log_must verify_data_hashsums $MD5FILE
 
        log_note "Try reading second batch of data, make sure pool doesn't" \
            "get suspended."
-       verify_data_md5sums $MD5FILE >/dev/null 2>&1
+       verify_data_hashsums $MD5FILE >/dev/null 2>&1
 
        log_must_busy zpool export $TESTPOOL1
 
@@ -95,8 +95,8 @@ function test_devices_missing
        log_must set_zfs_max_missing_tvds 0
        log_must zpool import -d $DEVICE_DIR $TESTPOOL1
 
-       log_must verify_data_md5sums $MD5FILE
-       log_must verify_data_md5sums $MD5FILE2
+       log_must verify_data_hashsums $MD5FILE
+       log_must verify_data_hashsums $MD5FILE2
 
        # Cleanup
        log_must zpool destroy $TESTPOOL1
index 4b6fcbd80af14fcc68f109594e49dfacf5d49c85..ee0403135dfcc5f7fe9d637ba160532af9f37974 100755 (executable)
@@ -23,7 +23,7 @@
 #
 # STRATEGY:
 #      1. Create a pool.
-#      2. Generate files and remember their md5sum.
+#      2. Generate files and remember their hashsum.
 #      3. Note last synced txg.
 #      4. Take a snapshot to make sure old blocks are not overwritten.
 #      5. Perform zpool add/attach/detach/remove operation.
@@ -134,7 +134,7 @@ function test_common
        log_must zpool export $TESTPOOL1
 
        if zpool import -d $DEVICE_DIR -T $txg $TESTPOOL1; then
-               verify_data_md5sums $MD5FILE && retval=0
+               verify_data_hashsums $MD5FILE && retval=0
 
                log_must check_pool_config $TESTPOOL1 "$poolcheck"
                log_must zpool destroy $TESTPOOL1
index b03b39d178ca8228398059fab156839291a1c455..6fdb9b26f26c30bf2838b5dab0cba82cf22882dd 100755 (executable)
@@ -23,7 +23,7 @@
 #
 # STRATEGY:
 #      1. Create a pool.
-#      2. Generate files and remember their md5sum.
+#      2. Generate files and remember their hashsum.
 #      3. Sync a few times and note last synced txg.
 #      4. Take a snapshot to make sure old blocks are not overwritten.
 #      5. Initiate device replacement and export the pool. Special care must
@@ -117,7 +117,7 @@ function test_replace_vdev
        log_must zpool import -d $DEVICE_DIR -o readonly=on -T $txg $TESTPOOL1
        log_must check_pool_config $TESTPOOL1 "$poolcreate"
 
-       log_must verify_data_md5sums $MD5FILE
+       log_must verify_data_hashsums $MD5FILE
 
        log_must zpool export $TESTPOOL1
 
@@ -137,7 +137,7 @@ function test_replace_vdev
        log_must zpool import -d $DEVICE_DIR -T $txg $TESTPOOL1
        log_must check_pool_config $TESTPOOL1 "$poolcreate"
 
-       log_must verify_data_md5sums $MD5FILE
+       log_must verify_data_hashsums $MD5FILE
 
        # Cleanup
        log_must zpool destroy $TESTPOOL1
index cf9c6a8499af26344aa813f5d63cdf9e31f9ac56..df951be0864e1c05a96cd0ef8727bd1f50648b57 100644 (file)
@@ -45,8 +45,8 @@ export MYTESTFILE=$STF_SUITE/include/libtest.shlib
 export CPATH=$TEST_BASE_DIR/cachefile.$$
 export CPATHBKP=$TEST_BASE_DIR/cachefile.$$.bkp
 export CPATHBKP2=$TEST_BASE_DIR/cachefile.$$.bkp2
-export MD5FILE=$TEST_BASE_DIR/md5sums.$$
-export MD5FILE2=$TEST_BASE_DIR/md5sums.$$.2
+export MD5FILE=$TEST_BASE_DIR/hashsums.$$
+export MD5FILE2=$TEST_BASE_DIR/hashsums.$$.2
 
 export GROUP_NUM=3
 typeset -i num=0
index 50157fa80578ced999e067cc326aa15499b67a6b..7f9eb43e79b1587e545eff4e7659373d20d8b530 100644 (file)
@@ -79,29 +79,29 @@ function write_some_data
 # Checksum all the files and store digests in a file.
 #
 # newdata: overwrite existing files if false.
-# md5file: file where to store md5 digests
+# hashfile: file where to store xxh128 digests
 # datasetname: base name for datasets
 #
 function _generate_data_common
 {
        typeset pool=$1
        typeset newdata=$2
-       typeset md5file=$3
+       typeset hashfile=$3
        typeset datasetname=$4
 
        typeset -i datasets=3
        typeset -i files=5
        typeset -i blocks=10
 
-       [[ -n $md5file ]] && rm -f $md5file
+       [[ -n $hashfile ]] && rm -f $hashfile
        for i in {1..$datasets}; do
                ( $newdata ) && log_must zfs create "$pool/$datasetname$i"
                for j in {1..$files}; do
                        typeset file="/$pool/$datasetname$i/file$j"
                        dd if=/dev/urandom of=$file bs=128k count=$blocks > /dev/null
-                       if [[ -n $md5file ]]; then
-                               typeset cksum=$(md5digest $file)
-                               echo $cksum $file >> $md5file
+                       if [[ -n $hashfile ]]; then
+                               typeset cksum=$(xxh128digest $file)
+                               echo $cksum $file >> $hashfile
                        fi
                done
                ( $newdata ) && sync_pool "$pool"
@@ -113,39 +113,39 @@ function _generate_data_common
 function generate_data
 {
        typeset pool=$1
-       typeset md5file="$2"
+       typeset hashfile="$2"
        typeset datasetname=${3:-ds}
 
-       _generate_data_common $pool true "$md5file" $datasetname
+       _generate_data_common $pool true "$hashfile" $datasetname
 }
 
 function overwrite_data
 {
        typeset pool=$1
-       typeset md5file="$2"
+       typeset hashfile="$2"
        typeset datasetname=${3:-ds}
 
-       _generate_data_common $1 false "$md5file" $datasetname
+       _generate_data_common $1 false "$hashfile" $datasetname
 }
 
 #
-# Verify md5sums of every file in md5sum file $1.
+# Verify hashsums of every file in hashsum file $1.
 #
-function verify_data_md5sums
+function verify_data_hashsums
 {
-       typeset md5file=$1
+       typeset hashfile=$1
 
-       if [[ ! -f $md5file ]]; then
-               log_note "md5 sums file '$md5file' doesn't exist"
+       if [[ ! -f $hashfile ]]; then
+               log_note "md5 sums file '$hashfile' doesn't exist"
                return 1
        fi
 
        while read -r digest file; do
-               typeset digest1=$(md5digest $file)
+               typeset digest1=$(xxh128digest $file)
                if [[ "$digest1" != "$digest" ]]; then
                        return 1
                fi
-       done < $md5file
+       done < $hashfile
 
        return 0
 }
index 6ce054cdb4a1bfa1f697343a6dd25b4d858ee994..3b9851d0d079514eba5a5ac9af369346ddc30259 100755 (executable)
@@ -65,7 +65,7 @@ log_must check_state $TESTPOOL "$REMOVED_DISK_ID" "unavail"
 TESTFILE=/$TESTPOOL/data
 log_must generate_random_file /$TESTPOOL/data $LARGE_FILE_SIZE
 sync_pool $TESTPOOL
-TESTFILE_MD5=$(md5digest $TESTFILE)
+TESTFILE_MD5=$(xxh128digest $TESTFILE)
 
 # 4. Execute scrub.
 # add delay to I/O requests for remaining disk in pool
@@ -89,7 +89,7 @@ log_must is_scan_restarted $TESTPOOL
 
 # 8. Put another device offline and check if the test file checksum is correct.
 log_must zpool offline $TESTPOOL $DISK2
-CHECK_MD5=$(md5digest $TESTFILE)
+CHECK_MD5=$(xxh128digest $TESTFILE)
 [[ $CHECK_MD5 == $TESTFILE_MD5 ]] || \
     log_fail "Checksums differ ($CHECK_MD5 != $TESTFILE_MD5)"
 log_must zpool online $TESTPOOL $DISK2
index 4db968ffae05af1bc38b6292281f0e24e66bb4a6..418c41fe659aa546b5dbef4790b33f1d4d23468c 100755 (executable)
@@ -61,8 +61,8 @@ function cleanup
 
 function verify_copy
 {
-       src_cksum=$(sha256digest $1)
-       dst_cksum=$(sha256digest $2)
+       src_cksum=$(xxh128digest $1)
+       dst_cksum=$(xxh128digest $2)
 
        if [[ "$src_cksum" != "$dst_cksum" ]]; then
                log_must ls -l $CP_TESTDIR
index 6f217d91d54805d8d0ac05f71f92d7e9c22b1621..dc10b8a33dbe221ed9eec5b90a24be19400c73ae 100755 (executable)
@@ -83,7 +83,7 @@ for ibs in "512" "$page_size" "131072"; do
                    -c $oblocks
                log_must stride_dd -i $new_file -o $tmp_file -b $ibs \
                    -c $iblocks $iflags
-               log_must cmp_md5s $new_file $tmp_file
+               log_must cmp_xxh128 $new_file $tmp_file
                log_must rm -f $new_file $tmp_file
 
                # Verify direct write followed by a buffered read.
@@ -91,7 +91,7 @@ for ibs in "512" "$page_size" "131072"; do
                    -c $oblocks $oflags
                log_must stride_dd -i $new_file -o $tmp_file -b $ibs \
                    -c $iblocks
-               log_must cmp_md5s $new_file $tmp_file
+               log_must cmp_xxh128 $new_file $tmp_file
                log_must rm -f $new_file $tmp_file
 
                # Verify direct write followed by a direct read.
@@ -99,7 +99,7 @@ for ibs in "512" "$page_size" "131072"; do
                    -c $oblocks $oflags
                log_must stride_dd -i $new_file -o $tmp_file -b $ibs \
                    -c $iblocks $iflags
-               log_must cmp_md5s $new_file $tmp_file
+               log_must cmp_xxh128 $new_file $tmp_file
                log_must rm -f $new_file $tmp_file
        done
 done
index 6998df78ac7c64e9bc5f1e2d85a0c1674982cd4b..b67059158a5708e37c65a164a6e86fe82d183b0d 100755 (executable)
@@ -43,7 +43,7 @@ log_assert "ensure single-disk pool resumes properly after suspend and clear"
 
 # create a file, and take a checksum, so we can compare later
 log_must dd if=/dev/urandom of=$DATAFILE bs=128K count=1
-typeset sum1=$(md5digest $DATAFILE)
+typeset sum1=$(xxh128digest $DATAFILE)
 
 # make a debug device that we can "unplug"
 load_scsi_debug 100 1 1 1 '512b'
@@ -94,7 +94,7 @@ log_must zpool export $TESTPOOL
 log_must zpool import $TESTPOOL
 
 # sum the file we wrote earlier
-typeset sum2=$(md5digest /$TESTPOOL/file)
+typeset sum2=$(xxh128digest /$TESTPOOL/file)
 
 # make sure the checksums match
 log_must test "$sum1" = "$sum2"
index 9f27785d64f9ba336220ee835771e8245771cb25..efaf022153a8049c9fa482f8e8ae70ea822cd849 100755 (executable)
@@ -64,7 +64,7 @@ log_must zpool create $spool $VDEV0
 log_must zfs create $spool/$sfs
 
 typeset -i orig_count=$(zpool history $spool | wc -l)
-typeset orig_md5=$(zpool history $spool | head -2 | md5digest)
+typeset orig_hash=$(zpool history $spool | head -2 | xxh128digest)
 typeset -i i=0
 while ((i < 300)); do
        zfs set compression=off $spool/$sfs
@@ -79,7 +79,7 @@ done
 TMPFILE=$TEST_BASE_DIR/spool.$$
 zpool history $spool >$TMPFILE
 typeset -i entry_count=$(wc -l < $TMPFILE)
-typeset final_md5=$(head -2 $TMPFILE | md5digest)
+typeset final_hash=$(head -2 $TMPFILE | xxh128digest)
 
 grep -q 'zpool create' $TMPFILE ||
     log_fail "'zpool create' was not found in pool history"
@@ -91,7 +91,7 @@ grep -q 'zfs set compress' $TMPFILE ||
     log_fail "'zfs set compress' was found in pool history"
 
 # Verify that the creation of the pool was preserved in the history.
-if [[ $orig_md5 != $final_md5 ]]; then
+if [[ $orig_hash != $final_hash ]]; then
        log_fail "zpool creation history was not preserved."
 fi
 
index 1d35fba5dbfa54094f2dce2944c75a0ae532758f..9b285ac5f31f7b2f878e65d89191598c9e6db08e 100755 (executable)
@@ -41,7 +41,7 @@ bs=1024k
 count=512
 
 log_must dd if=/dev/urandom of=$TESTDIR/data bs=$bs count=$count
-data_checksum=$(sha256digest $TESTDIR/data)
+data_checksum=$(xxh128digest $TESTDIR/data)
 
 # Test common large block configuration.
 log_must zfs create -o recordsize=1m -o primarycache=metadata $TESTPOOL/gang
@@ -50,7 +50,7 @@ mntpnt=$(get_prop mountpoint $TESTPOOL/gang)
 log_must dd if=$TESTDIR/data of=$mntpnt/file bs=$bs count=$count
 sync_pool $TESTPOOL
 log_must dd if=$mntpnt/file of=$TESTDIR/out bs=$bs count=$count
-out_checksum=$(sha256digest $TESTDIR/out)
+out_checksum=$(xxh128digest $TESTDIR/out)
 
 if [[ "$data_checksum" != "$out_checksum" ]]; then
     log_fail "checksum mismatch ($data_checksum != $out_checksum)"
@@ -74,7 +74,7 @@ mntpnt=$(get_prop mountpoint $TESTPOOL/gang)
 log_must dd if=$TESTDIR/data of=$mntpnt/file bs=$bs count=$count
 sync_pool $TESTPOOL
 log_must dd if=$mntpnt/file of=$TESTDIR/out bs=$bs count=$count
-out_checksum=$(sha256digest $TESTDIR/out)
+out_checksum=$(xxh128digest $TESTDIR/out)
 
 if [[ "$data_checksum" != "$out_checksum" ]]; then
     log_fail "checksum mismatch ($data_checksum != $out_checksum)"
index 80badd27331aef91a0db46dd3f55c5b815fb6d3d..8f2222dceb0bd77784096cf8f82cc0a603f8fd69 100644 (file)
@@ -801,15 +801,15 @@ function recursive_cksum
 {
        case "$(uname)" in
        FreeBSD)
-               find $1 -type f -exec sh -c 'sha256 -q {}; lsextattr -q \
-                   system {} | sha256 -q; lsextattr -q user {} | sha256 -q' \
-                   \; | sort | sha256 -q
+               find $1 -type f -exec sh -c 'xxh128sum {}; \
+                   lsextattr -q system {} | xxh128sum; \
+                   lsextattr -q user {} | xxh128sum' \; \
+                   | sort -k 2 | awk '{ print $1 }' | xxh128digest
                ;;
        *)
-               find $1 -type f -exec sh -c 'sha256sum {}; getfattr \
-                   --absolute-names --only-values -d {} | sha256sum' \; | \
-                   sort -k 2 | awk '{ print $1 }' | sha256sum | \
-                   awk '{ print $1 }'
+               find $1 -type f -exec sh -c 'xxh128sum {}; getfattr \
+                   --absolute-names --only-values -d {} | xxh128sum' \
+                   \; | sort -k 2 | awk '{ print $1 }' | xxh128digest
                ;;
        esac
 }
index 1bf234823459b001799ded4c1cee419f2eb352b4..6a29d964500de64a525a139d91b4b82ef57fd698 100755 (executable)
@@ -50,8 +50,8 @@ typeset megs=8
 log_must zfs create -V 256m -o compress=lz4 $vol
 
 write_compressible $BACKDIR ${megs}m 2
-md5_1=$(md5digest $data1)
-md5_2=$(md5digest $data2)
+hash1=$(xxh128digest $data1)
+hash2=$(xxh128digest $data2)
 
 log_must dd if=$data1 of=$voldev bs=1024k
 log_must zfs snapshot $vol@snap
@@ -63,8 +63,8 @@ verify_stream_size $BACKDIR/full $vol
 verify_stream_size $BACKDIR/full $vol2
 block_device_wait $voldev2
 log_must dd if=$voldev2 of=$BACKDIR/copy bs=1024k count=$megs
-md5=$(md5digest $BACKDIR/copy)
-[[ $md5 = $md5_1 ]] || log_fail "md5 mismatch: $md5 != $md5_1"
+hash=$(xxh128digest $BACKDIR/copy)
+[[ $hash = $hash1 ]] || log_fail "hash mismatch: $hash != $hash1"
 
 # Repeat, for an incremental send
 log_must dd seek=$megs if=$data2 of=$voldev bs=1024k
@@ -77,7 +77,7 @@ verify_stream_size $BACKDIR/inc $vol 90 $vol@snap
 verify_stream_size $BACKDIR/inc $vol2 90 $vol2@snap
 block_device_wait $voldev2
 log_must dd skip=$megs if=$voldev2 of=$BACKDIR/copy bs=1024k count=$megs
-md5=$(md5digest $BACKDIR/copy)
-[[ $md5 = $md5_2 ]] || log_fail "md5 mismatch: $md5 != $md5_2"
+hash=$(xxh128digest $BACKDIR/copy)
+[[ $hash = $hash2 ]] || log_fail "hash mismatch: $hash != $hash2"
 
 log_pass "Verify compressed send works with volumes"
index 64ee6293c7a4c848a996cf1e563d35e7b808d420..7db9892da58327abe2d56b4db8e12487026db6c8 100755 (executable)
@@ -101,8 +101,8 @@ block_device_wait
 
 log_must mount $recvdev $recvmnt
 
-md5_1=$(cat $mntpnt/* | md5digest)
-md5_2=$(cat $recvmnt/* | md5digest)
-[[ "$md5_1" == "$md5_2" ]] || log_fail "md5 mismatch: $md5_1 != $md5_2"
+hash1=$(cat $mntpnt/* | xxh128digest)
+hash2=$(cat $recvmnt/* | xxh128digest)
+[[ "$hash1" == "$hash2" ]] || log_fail "hash mismatch: $hash1 != $hash2"
 
 log_pass "zfs can receive raw, recursive send streams"
index c0c7b682def9f22ade543553fe29c28d96af3fe9..3b20f0a99a4a8af9a2ac5e39317d273fd8e53451 100755 (executable)
@@ -76,7 +76,7 @@ log_must zfs create -o keyformat=passphrase -o keylocation=file://$keyfile \
 
 log_must mkfile 1M /$TESTPOOL/ds/$TESTFILE0
 log_must cp /$TESTPOOL/ds/$TESTFILE0 /$TESTPOOL/crypt/$TESTFILE0
-typeset cksum=$(md5digest /$TESTPOOL/ds/$TESTFILE0)
+typeset cksum=$(xxh128digest /$TESTPOOL/ds/$TESTFILE0)
 
 log_must zfs snap -r $snap
 log_must zfs snap -r $snap2
@@ -129,7 +129,7 @@ log_must test "$(get_prop 'encryptionroot' $ds)" == "$ds"
 log_must test "$(get_prop 'keyformat' $ds)" == "passphrase"
 log_must test "$(get_prop 'keylocation' $ds)" == "file://$keyfile"
 log_must test "$(get_prop 'mounted' $ds)" == "yes"
-recv_cksum=$(md5digest /$ds/$TESTFILE0)
+recv_cksum=$(xxh128digest /$ds/$TESTFILE0)
 log_must test "$recv_cksum" == "$cksum"
 log_must zfs destroy -r $ds
 
@@ -153,7 +153,7 @@ log_must test "$(get_prop 'encryptionroot' $ds)" == "$ds"
 log_must test "$(get_prop 'keyformat' $ds)" == "passphrase"
 log_must test "$(get_prop 'keylocation' $ds)" == "file://$keyfile"
 log_must test "$(get_prop 'mounted' $ds)" == "yes"
-recv_cksum=$(md5digest /$ds/$TESTFILE0)
+recv_cksum=$(xxh128digest /$ds/$TESTFILE0)
 log_must test "$recv_cksum" == "$cksum"
 log_must zfs destroy -r $ds
 
@@ -171,7 +171,7 @@ log_must test "$(get_prop 'encryptionroot' $ds)" == "$ds"
 log_must test "$(get_prop 'keyformat' $ds)" == "passphrase"
 log_must test "$(get_prop 'keylocation' $ds)" == "file://$keyfile"
 log_must test "$(get_prop 'mounted' $ds)" == "yes"
-recv_cksum=$(md5digest /$ds/$TESTFILE0)
+recv_cksum=$(xxh128digest /$ds/$TESTFILE0)
 log_must test "$recv_cksum" == "$cksum"
 log_must zfs destroy -r $ds
 
@@ -185,7 +185,7 @@ log_must test "$(get_prop 'encryptionroot' $ds)" == "$TESTPOOL/crypt"
 log_must test "$(get_prop 'encryption' $ds)" == "aes-256-gcm"
 log_must test "$(get_prop 'keyformat' $ds)" == "passphrase"
 log_must test "$(get_prop 'mounted' $ds)" == "yes"
-recv_cksum=$(md5digest /$ds/$TESTFILE0)
+recv_cksum=$(xxh128digest /$ds/$TESTFILE0)
 log_must test "$recv_cksum" == "$cksum"
 log_must zfs destroy -r $ds
 
@@ -199,7 +199,7 @@ log_must test "$(get_prop 'encryptionroot' $ds)" == "$TESTPOOL/crypt"
 log_must test "$(get_prop 'encryption' $ds)" == "aes-256-gcm"
 log_must test "$(get_prop 'keyformat' $ds)" == "passphrase"
 log_must test "$(get_prop 'mounted' $ds)" == "yes"
-recv_cksum=$(md5digest /$ds/$TESTFILE0)
+recv_cksum=$(xxh128digest /$ds/$TESTFILE0)
 log_must test "$recv_cksum" == "$cksum"
 log_must zfs destroy -r $ds
 
@@ -213,7 +213,7 @@ log_must test "$(get_prop 'encryptionroot' $ds)" == "$TESTPOOL/crypt"
 log_must test "$(get_prop 'encryption' $ds)" == "aes-256-gcm"
 log_must test "$(get_prop 'keyformat' $ds)" == "passphrase"
 log_must test "$(get_prop 'mounted' $ds)" == "yes"
-recv_cksum=$(md5digest /$ds/$TESTFILE0)
+recv_cksum=$(xxh128digest /$ds/$TESTFILE0)
 log_must test "$recv_cksum" == "$cksum"
 log_must zfs destroy -r $ds
 
index aff54e3a7d69685300c93ca9dea5d858ae6321f5..a6223f05a65ab4ecde3bd3c9a70cb2819d72010e 100755 (executable)
@@ -52,16 +52,8 @@ log_onexit cleanup
 
 function recursive_cksum
 {
-       case "$(uname)" in
-       FreeBSD)
-               find $1 -type f -exec sha256 -q {} + | \
-                   sort | sha256digest
-               ;;
-       *)
-               find $1 -type f -exec sha256sum {} + | \
-                   sort -k 2 | awk '{ print $1 }' | sha256digest
-               ;;
-       esac
+       find $1 -type f -exec xxh128sum {} + | \
+           sort -k 2 | awk '{ print $1 }' | xxh128digest
 }
 
 log_assert "Verify 'zfs send -w' works with many different file layouts"
index 6754fb0f44bbf9d03769496b893e818754ba5f23..72b83505d5e8e30aa18f5a96d527636dd6347ed7 100755 (executable)
@@ -65,7 +65,7 @@ function send_and_verify
            ">$BACKDIR/pool-snap1-snap2"
        log_must eval "zfs receive $recvfs < $BACKDIR/pool-snap1-snap2"
 
-       log_must cmp_md5s /$sendfs/file1 /$recvfs/file1
+       log_must cmp_xxh128 /$sendfs/file1 /$recvfs/file1
 }
 
 # By default sending hole_birth times is disabled.  This functionality needs
index deb963f25894246aac4ba7a493560e9fad9fedc3..6f4871975b61bc725f2ab372929e4fcc915b6ebf 100755 (executable)
@@ -118,7 +118,7 @@ log_must rmdir /$TESTPOOL/$TESTFS/dir_to_delete
 log_must mkdir -p $TESTDIR
 log_must dd if=/dev/urandom of=/$TESTPOOL/$TESTFS/payload \
     oflag=sync bs=1k count=8
-typeset checksum=$(sha256digest /$TESTPOOL/$TESTFS/payload)
+typeset checksum=$(xxh128digest /$TESTPOOL/$TESTFS/payload)
 
 # TX_WRITE (small file with ordering)
 log_must dd if=/dev/urandom of=/$TESTPOOL/$TESTFS/small_file \
@@ -251,7 +251,7 @@ log_note "Verify working set diff:"
 log_must replay_directory_diff $TESTDIR/copy /$TESTPOOL/$TESTFS
 
 log_note "Verify file checksum:"
-typeset checksum1=$(sha256digest /$TESTPOOL/$TESTFS/payload)
+typeset checksum1=$(xxh128digest /$TESTPOOL/$TESTFS/payload)
 [[ "$checksum1" == "$checksum" ]] || \
     log_fail "checksum mismatch ($checksum1 != $checksum)"
 
index e99d40570c3994fc2037acf733e0780744bd2b77..4728f8389ad0e5c437ac9a3a12563815162b6a86 100755 (executable)
@@ -140,7 +140,7 @@ fi
 #
 # 4. Generate checksums for all ext4 files.
 #
-typeset checksum=$(cat $MNTPNT/* | sha256digest)
+typeset checksum=$(cat $MNTPNT/* | xxh128digest)
 
 #
 # 5. Unmount filesystem and export the pool
@@ -172,7 +172,7 @@ log_note "Verify current block usage:"
 log_must zdb -bcv $TESTPOOL
 
 log_note "Verify checksums"
-typeset checksum1=$(cat $MNTPNT/* | sha256digest)
+typeset checksum1=$(cat $MNTPNT/* | xxh128digest)
 [[ "$checksum1" == "$checksum" ]] || \
     log_fail "checksum mismatch ($checksum1 != $checksum)"