From fcd00203fda0f8c02f70c9523aac7a497b0182df Mon Sep 17 00:00:00 2001 From: Yi Zhang Date: Fri, 13 Jun 2025 02:04:11 -0400 Subject: [PATCH] nvme/065: add nvme format test with supported LBA format Link: https://lore.kernel.org/linux-nvme/20250625064003.436582-1-hch@lst.de/ Signed-off-by: Yi Zhang --- tests/nvme/065 | 50 ++++++++++++++++++++++++++++++++++++++++++++++ tests/nvme/065.out | 2 ++ 2 files changed, 52 insertions(+) create mode 100755 tests/nvme/065 create mode 100644 tests/nvme/065.out diff --git a/tests/nvme/065 b/tests/nvme/065 new file mode 100755 index 00000000..a6b58303 --- /dev/null +++ b/tests/nvme/065 @@ -0,0 +1,50 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-3.0+ +# Copyright (C) 2025 Yi Zhang +# +# Test nvme format NVMe disk with supported LBA format +# + +. tests/nvme/rc + +DESCRIPTION="Test nvme format NVMe disk with supported LBA format" +QUICK=1 + +requires() { + _nvme_requires + _have_program jq +} + +test_device() { + echo "Running ${TEST_NAME}" + + local nlbaf olbaf clbaf + local iteration=10 i=0 + + olbaf=$(nvme id-ns "$TEST_DEV" | grep "in use" | awk '{print $2}') + nlbaf=$(nvme id-ns --output-format=json "$TEST_DEV" | jq '.nlbaf') + + for lbaf in $(seq 0 "$nlbaf"); do + nvme format --lbaf="$lbaf" --force "$TEST_DEV" >> "${FULL}" + while (( i < iteration )); do + if [ ! -b "$TEST_DEV" ]; then + sleep 0.2 + ((i++)) + else + break + fi + done + + clbaf=$(nvme id-ns "$TEST_DEV" | grep "in use" | awk '{print $2}') + if [ "$clbaf" -ne "$lbaf" ]; then + echo "$TEST_DEV formatted to lbaf:$clbaf, expected:$lbaf" + fi + done + + # Restore to the original lbaf + nvme format --lbaf="$olbaf" --force "$TEST_DEV" >> "${FULL}" + + udevadm settle + + echo "Test complete" +} diff --git a/tests/nvme/065.out b/tests/nvme/065.out new file mode 100644 index 00000000..d9f63f6d --- /dev/null +++ b/tests/nvme/065.out @@ -0,0 +1,2 @@ +Running nvme/065 +Test complete