This test covers the following two issues: 1) discard sector need to be aligned with logical block size 2) make sure 'sector_t' instead of 'unsigned int' is used when comparing with discard sector size Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx> --- tests/block/025 | 37 +++++++++++++++++++++++++++++++++++++ tests/block/025.out | 2 ++ 2 files changed, 39 insertions(+) create mode 100755 tests/block/025 create mode 100644 tests/block/025.out diff --git a/tests/block/025 b/tests/block/025 new file mode 100755 index 000000000000..32b632431793 --- /dev/null +++ b/tests/block/025 @@ -0,0 +1,37 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-3.0+ +# Copyright (C) 2018 Ming Lei <ming.lei@xxxxxxxxxx> +# +# Check two corener cases of BLKDISCARD. +# +# 1) test if discard bio's sector is algined with logical size, fixed by +# 1adfc5e4136f ("block: make sure discard bio is aligned with logical block size") +# 2) test 32 bit overflow when comparing discard sector size. Fixed by +# 4800bf7bc8c72 ("block: fix 32 bit overflow in __blkdev_issue_discard()") + +. tests/block/rc +. common/scsi_debug + +DESCRIPTION="check sector alignment and sector size overflow of BLKDISCARD" + +requires() { + _have_scsi_debug +} + +test() { + echo "Running ${TEST_NAME}" + + rm -f "$FULL" + + # Create virtual device with unmap_zeroes_data support + if ! _init_scsi_debug virtual_gb=2049 sector_size=4096 lbpws10=1 dev_size_mb=512; then + return 1 + fi + + local dev="/dev/${SCSI_DEBUG_DEVICES[0]}" + blkdiscard "$dev" + + _exit_scsi_debug + + echo "Test complete" +} diff --git a/tests/block/025.out b/tests/block/025.out new file mode 100644 index 000000000000..fd9a6d5f70de --- /dev/null +++ b/tests/block/025.out @@ -0,0 +1,2 @@ +Running block/025 +Test complete -- 2.9.5