From: Yu Kuai <yukuai3@xxxxxxxxxx> Verify that reload a dm with itself won't crash the kernel. Signed-off-by: Yu Kuai <yukuai3@xxxxxxxxxx> --- tests/dm/001 | 27 +++++++++++++++++++++++++++ tests/dm/001.out | 4 ++++ tests/dm/rc | 11 +++++++++++ 3 files changed, 42 insertions(+) create mode 100755 tests/dm/001 create mode 100644 tests/dm/001.out create mode 100644 tests/dm/rc diff --git a/tests/dm/001 b/tests/dm/001 new file mode 100755 index 0000000..55e07f3 --- /dev/null +++ b/tests/dm/001 @@ -0,0 +1,27 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-3.0+ +# Copyright (C) 2022 Yu Kuai +# +# Regression test for commit 077a4033541f ("block: don't allow a disk link +# holder to itself") + +. tests/dm/rc + +DESCRIPTION="reload a dm with itself" +QUICK=1 + +requires() { + _have_program dmsetup && _have_driver dm-mod +} + +test_device() { + echo "Running ${TEST_NAME}" + + dmsetup create test --table "0 8192 linear ${TEST_DEV} 0" + dmsetup suspend test + dmsetup reload test --table "0 8192 linear /dev/mapper/test 0" + dmsetup resume test + dmsetup remove test + + echo "Test complete" +} diff --git a/tests/dm/001.out b/tests/dm/001.out new file mode 100644 index 0000000..23cf1f0 --- /dev/null +++ b/tests/dm/001.out @@ -0,0 +1,4 @@ +Running dm/001 +device-mapper: reload ioctl on test failed: Invalid argument +Command failed +Test complete diff --git a/tests/dm/rc b/tests/dm/rc new file mode 100644 index 0000000..e1ad6c6 --- /dev/null +++ b/tests/dm/rc @@ -0,0 +1,11 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-3.0+ +# Copyright (C) 2022 Yu Kuai +# +# TODO: provide a brief description of the group here. + +. common/rc + +group_requires() { + _have_root +} -- 2.31.1