Skip to content

Commit 37cc913

Browse files
committed
BRT: Check pool clone stats in more tests
This should allow to catch some leaks, if those happen. While there fix some cosmetic issues. Signed-off-by: Alexander Motin <[email protected]> Sponsored by: iXsystems, Inc.
1 parent 78ab221 commit 37cc913

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

tests/zfs-tests/tests/functional/bclone/bclone_corner_cases.kshlib

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ function bclone_corner_cases_init
6666
export SECOND_HALF_ORIG0_CHECKSUM=$(second_half_checksum $ORIG0)
6767
export SECOND_HALF_ORIG1_CHECKSUM=$(second_half_checksum $ORIG1)
6868
export SECOND_HALF_ORIG2_CHECKSUM=$(second_half_checksum $ORIG2)
69-
export ZEROS_CHECKSUM=$(dd if=/dev/zero bs=$HALFRECORDSIZE count=1 | sha256digest)
69+
export ZEROS_CHECKSUM=$(dd if=/dev/zero bs=$HALFRECORDSIZE count=1 2>/dev/null | sha256digest)
7070
export FIRST_HALF_CHECKSUM=""
7171
export SECOND_HALF_CHECKSUM=""
7272
}
@@ -210,13 +210,20 @@ function bclone_corner_cases_test
210210
typeset -r dstdir=$2
211211
typeset limit=$3
212212
typeset -i count=0
213+
typeset oused
214+
typeset osaved
213215

214216
if [[ $srcdir != "count" ]]; then
215217
if [[ -n "$limit" ]]; then
216218
typeset -r total_count=$(bclone_corner_cases_test count)
217219
limit=$(random_int_between 1 $total_count $((limit*2)) | sort -nu | head -n $limit | xargs)
218220
fi
219221
bclone_corner_cases_init $srcdir $dstdir
222+
223+
# Save current block cloning stats for later use.
224+
sync_pool $TESTPOOL
225+
oused=$(get_pool_prop bcloneused $TESTPOOL)
226+
osaved=$(get_pool_prop bclonesaved $TESTPOOL)
220227
fi
221228

222229
#
@@ -285,21 +292,24 @@ function bclone_corner_cases_test
285292
overwrite_clone "$second_overwrite"
286293

287294
if checksum_compare $read_after; then
288-
log_note "existing: $existing / cached: $cached / first_clone: $first_clone / first_overwrite: $first_overwrite / read_before: $read_before / second_clone: $second_clone / read_after: $read_after"
295+
log_note "existing: $existing / cached: $cached / first_clone: $first_clone / first_overwrite: $first_overwrite / read_before: $read_before / second_clone: $second_clone / second_overwrite: $second_overwrite / read_after: $read_after"
289296
else
290-
log_fail "FAIL: existing: $existing / cached: $cached / first_clone: $first_clone / first_overwrite: $first_overwrite / read_before: $read_before / second_clone: $second_clone / read_after: $read_after"
297+
log_fail "FAIL: existing: $existing / cached: $cached / first_clone: $first_clone / first_overwrite: $first_overwrite / read_before: $read_before / second_clone: $second_clone / second_overwrite: $second_overwrite / read_after: $read_after"
291298
fi
292299

293300
log_must zpool export $TESTPOOL
294301
log_must zpool import $TESTPOOL
295302

296303
if checksum_compare "yes"; then
297-
log_note "existing: $existing / cached: $cached / first_clone: $first_clone / first_overwrite: $first_overwrite / read_before: $read_before / second_clone: $second_clone / read_after: $read_after / read_next_txg"
304+
log_note "existing: $existing / cached: $cached / first_clone: $first_clone / first_overwrite: $first_overwrite / read_before: $read_before / second_clone: $second_clone / second_overwrite: $second_overwrite / read_after: $read_after / read_next_txg"
298305
else
299-
log_fail "FAIL: existing: $existing / cached: $cached / first_clone: $first_clone / first_overwrite: $first_overwrite / read_before: $read_before / second_clone: $second_clone / read_after: $read_after / read_next_txg"
306+
log_fail "FAIL: existing: $existing / cached: $cached / first_clone: $first_clone / first_overwrite: $first_overwrite / read_before: $read_before / second_clone: $second_clone / second_overwrite: $second_overwrite / read_after: $read_after / read_next_txg"
300307
fi
301308

302309
rm -f "$CLONE"
310+
sync_pool $TESTPOOL
311+
verify_pool_prop_eq bcloneused $oused
312+
verify_pool_prop_eq bclonesaved $osaved
303313
done
304314
done
305315
done

0 commit comments

Comments
 (0)