mirror of
https://github.com/systemd/systemd
synced 2024-07-21 02:05:05 +00:00
test-64: add tests for compat devlinks for NVMe drive
This commit is contained in:
parent
49e3e219b0
commit
18a6cd4ba3
|
@ -88,6 +88,8 @@ _image_cleanup() {
|
|||
# Clean up certain "problematic" files which may be left over by failing tests
|
||||
: >"${initdir:?}/etc/fstab"
|
||||
: >"${initdir:?}/etc/crypttab"
|
||||
# Clear previous assignment
|
||||
QEMU_OPTIONS_ARRAY=()
|
||||
}
|
||||
|
||||
test_run_one() {
|
||||
|
@ -193,15 +195,34 @@ testcase_nvme_basic() {
|
|||
local i
|
||||
local qemu_opts=()
|
||||
|
||||
for i in {0..27}; do
|
||||
for (( i = 0; i < 5; i++ )); do
|
||||
qemu_opts+=(
|
||||
"-device nvme,drive=nvme$i,serial=deadbeef$i,num_queues=8"
|
||||
"-drive format=raw,cache=unsafe,file=${TESTDIR:?}/disk$i.img,if=none,id=nvme$i"
|
||||
"-device" "nvme,drive=nvme$i,serial=deadbeef$i,num_queues=8"
|
||||
"-drive" "format=raw,cache=unsafe,file=${TESTDIR:?}/disk$i.img,if=none,id=nvme$i"
|
||||
)
|
||||
done
|
||||
for (( i = 5; i < 10; i++ )); do
|
||||
qemu_opts+=(
|
||||
"-device" "nvme,drive=nvme$i,serial= deadbeef $i ,num_queues=8"
|
||||
"-drive" "format=raw,cache=unsafe,file=${TESTDIR:?}/disk$i.img,if=none,id=nvme$i"
|
||||
)
|
||||
done
|
||||
for (( i = 10; i < 15; i++ )); do
|
||||
qemu_opts+=(
|
||||
"-device" "nvme,drive=nvme$i,serial= dead/beef/$i ,num_queues=8"
|
||||
"-drive" "format=raw,cache=unsafe,file=${TESTDIR:?}/disk$i.img,if=none,id=nvme$i"
|
||||
)
|
||||
done
|
||||
for (( i = 15; i < 20; i++ )); do
|
||||
qemu_opts+=(
|
||||
"-device" "nvme,drive=nvme$i,serial=dead/../../beef/$i,num_queues=8"
|
||||
"-drive" "format=raw,cache=unsafe,file=${TESTDIR:?}/disk$i.img,if=none,id=nvme$i"
|
||||
)
|
||||
done
|
||||
|
||||
KERNEL_APPEND="systemd.setenv=TEST_FUNCTION_NAME=${FUNCNAME[0]} ${USER_KERNEL_APPEND:-}"
|
||||
QEMU_OPTIONS="${qemu_opts[*]} ${USER_QEMU_OPTIONS:-}"
|
||||
QEMU_OPTIONS="${USER_QEMU_OPTIONS}"
|
||||
QEMU_OPTIONS_ARRAY=("${qemu_opts[@]}")
|
||||
test_run_one "${1:?}"
|
||||
}
|
||||
|
||||
|
|
|
@ -512,6 +512,7 @@ run_qemu() {
|
|||
read -ra user_qemu_options <<< "$QEMU_OPTIONS"
|
||||
qemu_options+=("${user_qemu_options[@]}")
|
||||
fi
|
||||
qemu_options+=(${QEMU_OPTIONS_ARRAY:+"${QEMU_OPTIONS_ARRAY[@]}"})
|
||||
|
||||
if [[ -n "${KERNEL_APPEND:=}" ]]; then
|
||||
local user_kernel_append
|
||||
|
|
|
@ -174,8 +174,54 @@ testcase_megasas2_basic() {
|
|||
}
|
||||
|
||||
testcase_nvme_basic() {
|
||||
local expected_symlinks=()
|
||||
local i
|
||||
|
||||
for (( i = 0; i < 5; i++ )); do
|
||||
expected_symlinks+=(
|
||||
# both replace mode provides the same devlink
|
||||
/dev/disk/by-id/nvme-QEMU_NVMe_Ctrl_deadbeef"$i"
|
||||
# with nsid
|
||||
/dev/disk/by-id/nvme-QEMU_NVMe_Ctrl_deadbeef"$i"_1
|
||||
)
|
||||
done
|
||||
for (( i = 5; i < 10; i++ )); do
|
||||
expected_symlinks+=(
|
||||
# old replace mode
|
||||
/dev/disk/by-id/nvme-QEMU_NVMe_Ctrl__deadbeef_"$i"
|
||||
# newer replace mode
|
||||
/dev/disk/by-id/nvme-QEMU_NVMe_Ctrl_____deadbeef__"$i"
|
||||
# with nsid
|
||||
/dev/disk/by-id/nvme-QEMU_NVMe_Ctrl_____deadbeef__"$i"_1
|
||||
)
|
||||
done
|
||||
for (( i = 10; i < 15; i++ )); do
|
||||
expected_symlinks+=(
|
||||
# old replace mode does not provide devlink, as serial contains "/"
|
||||
# newer replace mode
|
||||
/dev/disk/by-id/nvme-QEMU_NVMe_Ctrl_____dead_beef_"$i"
|
||||
# with nsid
|
||||
/dev/disk/by-id/nvme-QEMU_NVMe_Ctrl_____dead_beef_"$i"_1
|
||||
)
|
||||
done
|
||||
for (( i = 15; i < 20; i++ )); do
|
||||
expected_symlinks+=(
|
||||
# old replace mode does not provide devlink, as serial contains "/"
|
||||
# newer replace mode
|
||||
/dev/disk/by-id/nvme-QEMU_NVMe_Ctrl_dead_.._.._beef_"$i"
|
||||
# with nsid
|
||||
/dev/disk/by-id/nvme-QEMU_NVMe_Ctrl_dead_.._.._beef_"$i"_1
|
||||
)
|
||||
done
|
||||
|
||||
udevadm settle
|
||||
ls /dev/disk/by-id
|
||||
for i in "${expected_symlinks[@]}"; do
|
||||
udevadm wait --settle --timeout=30 "$i"
|
||||
done
|
||||
|
||||
lsblk --noheadings | grep "^nvme"
|
||||
[[ "$(lsblk --noheadings | grep -c "^nvme")" -ge 28 ]]
|
||||
[[ "$(lsblk --noheadings | grep -c "^nvme")" -ge 20 ]]
|
||||
}
|
||||
|
||||
testcase_nvme_subsystem() {
|
||||
|
|
Loading…
Reference in a new issue