summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorKody Kantor <kody@kkantor.com>2020-01-14 16:34:53 +0000
committerGordon Ross <gwr@nexenta.com>2020-01-23 13:22:16 -0500
commite3bf7d5a53699b06ef4e776789b585322c4bf8ed (patch)
treee997bea3e921064a776ceb19ebf7d7a9a57d8f48 /usr/src
parent623c3de4b7886d5d3a70c856a27c13fe534b2b69 (diff)
downloadillumos-joyent-e3bf7d5a53699b06ef4e776789b585322c4bf8ed.tar.gz
12189 zfs test suite calculates md5 digests suboptimally
Reviewed by: Dan McDonald <danmcd@joyent.com> Reviewed by: Toomas Soome <tsoome@me.com> Approved by: Gordon Ross <gordon.w.ross@gmail.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/test/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_from_encrypted.ksh7
-rw-r--r--usr/src/test/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_raw.ksh9
-rw-r--r--usr/src/test/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_raw_incremental.ksh5
-rw-r--r--usr/src/test/zfs-tests/tests/functional/history/history_003_pos.ksh6
-rw-r--r--usr/src/test/zfs-tests/tests/functional/rsend/send-c_volume.ksh13
-rwxr-xr-xusr/src/test/zfs-tests/tests/functional/rsend/send-wDR_encrypted_zvol.ksh6
-rwxr-xr-xusr/src/test/zfs-tests/tests/functional/rsend/send_encrypted_props.ksh15
7 files changed, 32 insertions, 29 deletions
diff --git a/usr/src/test/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_from_encrypted.ksh b/usr/src/test/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_from_encrypted.ksh
index 5eee9eecf4..7185e73c49 100644
--- a/usr/src/test/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_from_encrypted.ksh
+++ b/usr/src/test/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_from_encrypted.ksh
@@ -16,6 +16,7 @@
#
# Copyright (c) 2017 Datto, Inc. All rights reserved.
+# Copyright 2020 Joyent, Inc.
#
. $STF_SUITE/include/libtest.shlib
@@ -59,7 +60,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=$(md5sum /$TESTPOOL/$TESTFS2/$TESTFILE0 | awk '{ print $1 }')
+typeset checksum=$(digest -a md5 /$TESTPOOL/$TESTFS2/$TESTFILE0)
log_must zfs snapshot $snap
@@ -69,14 +70,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=$(md5sum /$TESTPOOL/$TESTFS1/c1/$TESTFILE0 | awk '{ print $1 }')
+typeset cksum1=$(digest -a md5 /$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=$(md5sum /$TESTPOOL/$TESTFS2/c1/$TESTFILE0 | awk '{ print $1 }')
+typeset cksum2=$(digest -a md5 /$TESTPOOL/$TESTFS2/c1/$TESTFILE0)
[[ "$cksum2" == "$checksum" ]] || \
log_fail "Checksums differ ($cksum2 != $checksum)"
diff --git a/usr/src/test/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_raw.ksh b/usr/src/test/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_raw.ksh
index 2042b37a98..4f579863f0 100644
--- a/usr/src/test/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_raw.ksh
+++ b/usr/src/test/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_raw.ksh
@@ -16,6 +16,7 @@
#
# Copyright (c) 2017 Datto, Inc. All rights reserved.
+# Copyright 2020 Joyent, Inc.
#
. $STF_SUITE/include/libtest.shlib
@@ -60,8 +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=$(md5sum /$TESTPOOL/$TESTFS1/$TESTFILE0 | \
- awk '{ print $1 }')
+typeset checksum=$(digest -a md5 /$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=$(md5sum /$TESTPOOL/$TESTFS2/$TESTFILE0 | awk '{ print $1 }')
+typeset cksum1=$(digest -a md5 /$TESTPOOL/$TESTFS2/$TESTFILE0)
[[ "$cksum1" == "$checksum" ]] || \
log_fail "Checksums differ ($cksum1 != $checksum)"
@@ -85,8 +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=$(md5sum /$TESTPOOL/$TESTFS1/c1/$TESTFILE0 | \
- awk '{ print $1 }')
+typeset cksum2=$(digest -a md5 /$TESTPOOL/$TESTFS1/c1/$TESTFILE0)
[[ "$cksum2" == "$checksum" ]] || \
log_fail "Checksums differ ($cksum2 != $checksum)"
diff --git a/usr/src/test/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_raw_incremental.ksh b/usr/src/test/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_raw_incremental.ksh
index 48878327b8..dc59892f3a 100644
--- a/usr/src/test/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_raw_incremental.ksh
+++ b/usr/src/test/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_raw_incremental.ksh
@@ -16,6 +16,7 @@
#
# Copyright (c) 2017 Datto, Inc. All rights reserved.
+# Copyright 2020 Joyent, Inc.
#
. $STF_SUITE/include/libtest.shlib
@@ -68,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=$(md5sum /$TESTPOOL/$TESTFS1/$TESTFILE0 | awk '{ print $1 }')
+typeset checksum=$(digest -a md5 /$TESTPOOL/$TESTFS1/$TESTFILE0)
log_must zfs snapshot $snap2
@@ -88,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=$(md5sum /$TESTPOOL/$TESTFS2/$TESTFILE0 | awk '{ print $1 }')
+typeset cksum1=$(digest -a md5 /$TESTPOOL/$TESTFS2/$TESTFILE0)
[[ "$cksum1" == "$checksum" ]] || \
log_fail "Checksums differ ($cksum1 != $checksum)"
diff --git a/usr/src/test/zfs-tests/tests/functional/history/history_003_pos.ksh b/usr/src/test/zfs-tests/tests/functional/history/history_003_pos.ksh
index 3f6df99a09..bf82c29af7 100644
--- a/usr/src/test/zfs-tests/tests/functional/history/history_003_pos.ksh
+++ b/usr/src/test/zfs-tests/tests/functional/history/history_003_pos.ksh
@@ -27,6 +27,7 @@
#
# Copyright (c) 2013, 2016 by Delphix. All rights reserved.
+# Copyright 2020 Joyent, Inc.
#
. $STF_SUITE/include/libtest.shlib
@@ -65,8 +66,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 | md5sum | \
- awk '{print $1}')
+typeset orig_md5=$(zpool history $spool | head -2 | digest -a md5)
typeset -i i=0
while ((i < 300)); do
@@ -82,7 +82,7 @@ done
TMPFILE=/tmp/spool.$$
zpool history $spool >$TMPFILE
typeset -i entry_count=$(wc -l $TMPFILE | awk '{print $1}')
-typeset final_md5=$(head -2 $TMPFILE | md5sum | awk '{print $1}')
+typeset final_md5=$(head -2 $TMPFILE | digest -a md5)
grep 'zpool create' $TMPFILE >/dev/null 2>&1 ||
log_fail "'zpool create' was not found in pool history"
diff --git a/usr/src/test/zfs-tests/tests/functional/rsend/send-c_volume.ksh b/usr/src/test/zfs-tests/tests/functional/rsend/send-c_volume.ksh
index 4ce3d5a09b..8d6481a5a6 100644
--- a/usr/src/test/zfs-tests/tests/functional/rsend/send-c_volume.ksh
+++ b/usr/src/test/zfs-tests/tests/functional/rsend/send-c_volume.ksh
@@ -13,6 +13,7 @@
#
# Copyright (c) 2015 by Delphix. All rights reserved.
+# Copyright 2020 Joyent, Inc.
#
. $STF_SUITE/tests/functional/rsend/rsend.kshlib
@@ -49,8 +50,8 @@ typeset megs=8
log_must zfs create -V 256m -o compress=lz4 $vol
write_compressible $BACKDIR ${megs}m 2
-md5_1=$(md5sum $data1 | awk '{print $1}')
-md5_2=$(md5sum $data2 | awk '{print $1}')
+md5_1=$(digest -a md5 $data1)
+md5_2=$(digest -a md5 $data2)
log_must dd if=$data1 of=$voldev bs=1024k
log_must zfs snapshot $vol@snap
@@ -60,8 +61,7 @@ log_must eval "zfs recv -d $POOL2 <$BACKDIR/full"
verify_stream_size $BACKDIR/full $vol
verify_stream_size $BACKDIR/full $vol2
-md5=$(dd if=$voldev2 bs=1024k count=$megs 2>/dev/null | md5sum | \
- awk '{print $1}')
+md5=$(dd if=$voldev2 bs=1024k count=$megs 2>/dev/null | digest -a md5)
[[ $md5 = $md5_1 ]] || log_fail "md5 mismatch: $md5 != $md5_1"
# Repeat, for an incremental send
@@ -73,8 +73,9 @@ log_must eval "zfs recv -d $POOL2 <$BACKDIR/inc"
verify_stream_size $BACKDIR/inc $vol 90 $vol@snap
verify_stream_size $BACKDIR/inc $vol2 90 $vol2@snap
-md5=$(dd iseek=$megs if=$voldev2 bs=1024k count=$megs 2>/dev/null | md5sum | \
- awk '{print $1}')
+md5=$(dd iseek=$megs if=$voldev2 bs=1024k count=$megs 2>/dev/null \
+ | digest -a md5)
+
[[ $md5 = $md5_2 ]] || log_fail "md5 mismatch: $md5 != $md5_2"
log_pass "Verify compressed send works with volumes"
diff --git a/usr/src/test/zfs-tests/tests/functional/rsend/send-wDR_encrypted_zvol.ksh b/usr/src/test/zfs-tests/tests/functional/rsend/send-wDR_encrypted_zvol.ksh
index 83fe3556d4..f1b7d1e412 100755
--- a/usr/src/test/zfs-tests/tests/functional/rsend/send-wDR_encrypted_zvol.ksh
+++ b/usr/src/test/zfs-tests/tests/functional/rsend/send-wDR_encrypted_zvol.ksh
@@ -16,7 +16,7 @@
#
# Copyright (c) 2018 by Datto Inc. All rights reserved.
-# Copyright 2019 Joyent, Inc.
+# Copyright 2020 Joyent, Inc.
#
. $STF_SUITE/tests/functional/rsend/rsend.kshlib
@@ -96,8 +96,8 @@ log_must block_device_wait
log_must mount $recvdev $recvmnt
-md5_1=$(cat $mntpnt/* | md5sum | awk '{print $1}')
-md5_2=$(cat $recvmnt/* | md5sum | awk '{print $1}')
+md5_1=$(cat $mntpnt/* | digest -a md5)
+md5_2=$(cat $recvmnt/* | digest -a md5)
[[ "$md5_1" == "$md5_2" ]] || log_fail "md5 mismatch: $md5_1 != $md5_2"
log_pass "zfs can receive raw, recursive, and deduplicated send streams"
diff --git a/usr/src/test/zfs-tests/tests/functional/rsend/send_encrypted_props.ksh b/usr/src/test/zfs-tests/tests/functional/rsend/send_encrypted_props.ksh
index f0a591c427..2d0bd49104 100755
--- a/usr/src/test/zfs-tests/tests/functional/rsend/send_encrypted_props.ksh
+++ b/usr/src/test/zfs-tests/tests/functional/rsend/send_encrypted_props.ksh
@@ -16,6 +16,7 @@
#
# Copyright (c) 2018 by Datto Inc. All rights reserved.
+# Copyright 2020 Joyent, Inc.
#
. $STF_SUITE/tests/functional/rsend/rsend.kshlib
@@ -76,7 +77,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=$(md5sum /$TESTPOOL/ds/$TESTFILE0 | awk '{ print $1 }')
+typeset cksum=$(digest -a md5 /$TESTPOOL/ds/$TESTFILE0)
log_must zfs snap -r $snap
log_must zfs snap -r $snap2
@@ -129,7 +130,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=$(md5sum /$ds/$TESTFILE0 | awk '{ print $1 }')
+recv_cksum=$(digest -a md5 /$ds/$TESTFILE0)
log_must test "$recv_cksum" == "$cksum"
log_must zfs destroy -r $ds
@@ -145,7 +146,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=$(md5sum /$ds/$TESTFILE0 | awk '{ print $1 }')
+recv_cksum=$(digest -a md5 /$ds/$TESTFILE0)
log_must test "$recv_cksum" == "$cksum"
log_must zfs destroy -r $ds
@@ -163,7 +164,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=$(md5sum /$ds/$TESTFILE0 | awk '{ print $1 }')
+recv_cksum=$(digest -a md5 /$ds/$TESTFILE0)
log_must test "$recv_cksum" == "$cksum"
log_must zfs destroy -r $ds
@@ -177,7 +178,7 @@ log_must test "$(get_prop 'encryptionroot' $ds)" == "$TESTPOOL/crypt"
log_must test "$(get_prop 'encryption' $ds)" == "aes-256-ccm"
log_must test "$(get_prop 'keyformat' $ds)" == "passphrase"
log_must test "$(get_prop 'mounted' $ds)" == "yes"
-recv_cksum=$(md5sum /$ds/$TESTFILE0 | awk '{ print $1 }')
+recv_cksum=$(digest -a md5 /$ds/$TESTFILE0)
log_must test "$recv_cksum" == "$cksum"
log_must zfs destroy -r $ds
@@ -191,7 +192,7 @@ log_must test "$(get_prop 'encryptionroot' $ds)" == "$TESTPOOL/crypt"
log_must test "$(get_prop 'encryption' $ds)" == "aes-256-ccm"
log_must test "$(get_prop 'keyformat' $ds)" == "passphrase"
log_must test "$(get_prop 'mounted' $ds)" == "yes"
-recv_cksum=$(md5sum /$ds/$TESTFILE0 | awk '{ print $1 }')
+recv_cksum=$(digest -a md5 /$ds/$TESTFILE0)
log_must test "$recv_cksum" == "$cksum"
log_must zfs destroy -r $ds
@@ -205,7 +206,7 @@ log_must test "$(get_prop 'encryptionroot' $ds)" == "$TESTPOOL/crypt"
log_must test "$(get_prop 'encryption' $ds)" == "aes-256-ccm"
log_must test "$(get_prop 'keyformat' $ds)" == "passphrase"
log_must test "$(get_prop 'mounted' $ds)" == "yes"
-recv_cksum=$(md5sum /$ds/$TESTFILE0 | awk '{ print $1 }')
+recv_cksum=$(digest -a md5 /$ds/$TESTFILE0)
log_must test "$recv_cksum" == "$cksum"
log_must zfs destroy -r $ds