Merging upstream version 4.2+20230223.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
866376462c
commit
30ed170f74
76 changed files with 2282 additions and 1386 deletions
93
tests/00createnames
Normal file
93
tests/00createnames
Normal file
|
@ -0,0 +1,93 @@
|
|||
set -x -e
|
||||
|
||||
# Test how <devname> and --name= are handled for create mode.
|
||||
# We need to check three properties, generated from those parameters:
|
||||
# - devnode name
|
||||
# - link in /dev/md/ (MD_DEVNAME property from --detail --export)
|
||||
# - name in metadata (MD_NAME property from --examine --export)
|
||||
|
||||
function _verify() {
|
||||
local DEVNODE_NAME="$1"
|
||||
local WANTED_LINK="$2"
|
||||
local WANTED_NAME="$3"
|
||||
|
||||
local RES="$(mdadm -D --export $DEVNODE_NAME | grep MD_DEVNAME)"
|
||||
if [[ "$?" != "0" ]]; then
|
||||
echo "Cannot get details for $DEVNODE_NAME - unexpected devnode."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$WANTED_LINK" != "empty" ]]; then
|
||||
local EXPECTED="MD_DEVNAME=$WANTED_LINK"
|
||||
if [[ "$RES" != "$EXPECTED" ]]; then
|
||||
echo "$RES doesn't match $EXPECTED."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
local RES="$(mdadm -E --export $dev0 | grep MD_NAME)"
|
||||
if [[ "$?" != "0" ]]; then
|
||||
echo "Cannot get metadata from $dev0."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local EXPECTED="MD_NAME=$(hostname):$WANTED_NAME"
|
||||
if [[ "$RES" != "$EXPECTED" ]]; then
|
||||
echo "$RES doesn't match $EXPECTED."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function _create() {
|
||||
local DEVNAME=$1
|
||||
local NAME=$2
|
||||
|
||||
if [[ -z "$NAME" ]]; then
|
||||
mdadm -CR "$DEVNAME" -l0 -n 1 $dev0 --force
|
||||
else
|
||||
mdadm -CR "$DEVNAME" --name="$NAME" -l0 -n 1 $dev0 --force
|
||||
fi
|
||||
|
||||
if [[ "$?" != "0" ]]; then
|
||||
echo "Cannot create device."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# The most trivial case.
|
||||
_create "/dev/md/name"
|
||||
_verify "/dev/md127" "name" "name"
|
||||
mdadm -S "/dev/md127"
|
||||
|
||||
_create "name"
|
||||
_verify "/dev/md127" "name" "name"
|
||||
mdadm -S "/dev/md127"
|
||||
|
||||
# Use 'mdX' as name.
|
||||
_create "/dev/md/md0"
|
||||
_verify "/dev/md127" "md0" "md0"
|
||||
mdadm -S "/dev/md127"
|
||||
|
||||
_create "md0"
|
||||
_verify "/dev/md127" "md0" "md0"
|
||||
mdadm -S "/dev/md127"
|
||||
|
||||
# <devnode> is used to create MD_DEVNAME but, name is used to create MD_NAME.
|
||||
_create "/dev/md/devnode" "name"
|
||||
_verify "/dev/md127" "devnode" "name"
|
||||
mdadm -S "/dev/md127"
|
||||
|
||||
_create "devnode" "name"
|
||||
_verify "/dev/md127" "devnode" "name"
|
||||
mdadm -S "/dev/md127"
|
||||
|
||||
# Devnode points to /dev/ directory. MD_DEVNAME doesn't exist.
|
||||
_create "/dev/md0"
|
||||
_verify "/dev/md0" "empty" "0"
|
||||
mdadm -S "/dev/md0"
|
||||
|
||||
# Devnode points to /dev/ directory and name is set.
|
||||
_create "/dev/md0" "name"
|
||||
_verify "/dev/md0" "empty" "name"
|
||||
mdadm -S "/dev/md0"
|
Loading…
Add table
Add a link
Reference in a new issue