mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-02 01:18:26 +03:00
tests: devicesfile-edit
test lvmdevices add/del
This commit is contained in:
parent
3fce6a81f8
commit
563105bba9
224
test/shell/devicesfile-edit.sh
Normal file
224
test/shell/devicesfile-edit.sh
Normal file
@ -0,0 +1,224 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (C) 2020 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# This copyrighted material is made available to anyone wishing to use,
|
||||
# modify, copy, or redistribute it subject to the terms and conditions
|
||||
# of the GNU General Public License v.2.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
test_description='devices file editing with lvmdevices'
|
||||
|
||||
. lib/inittest
|
||||
|
||||
aux lvmconf 'devices/scan = "/dev"'
|
||||
|
||||
aux prepare_devs 1
|
||||
|
||||
# The tests run with system dir of "/etc" but lvm when running
|
||||
# normally has cmd->system_dir set to "/etc/lvm".
|
||||
DFDIR="$LVM_SYSTEM_DIR/devices"
|
||||
mkdir -p "$DFDIR" || true
|
||||
DF="$DFDIR/system.devices"
|
||||
|
||||
aux lvmconf 'devices/use_devicesfile = 1'
|
||||
|
||||
losetup -h | grep sector-size || skip
|
||||
which fallocate || skip
|
||||
|
||||
fallocate -l 2M loopa
|
||||
fallocate -l 2M loopb
|
||||
|
||||
setup_loop_devs() {
|
||||
for i in {1..5} ; do
|
||||
LOOP1=$(losetup -f loopa --show || true)
|
||||
test -n "$LOOP1" && break
|
||||
done
|
||||
for i in {1..5} ; do
|
||||
LOOP2=$(losetup -f loopb --show || true)
|
||||
test -n "$LOOP2" && break
|
||||
done
|
||||
}
|
||||
|
||||
setup_loop_devs
|
||||
|
||||
# Tests of devices without PV on them.
|
||||
|
||||
# add/del with default idtype loop_file
|
||||
lvmdevices --adddev "$LOOP1"
|
||||
grep "$LOOP1" $DF
|
||||
lvmdevices --adddev "$LOOP2"
|
||||
grep "$LOOP2" $DF
|
||||
grep "IDTYPE=loop_file" $DF
|
||||
not grep "IDTYPE=devname" $DF
|
||||
lvmdevices --deldev "$LOOP1"
|
||||
not grep "$LOOP1" $DF
|
||||
lvmdevices --deldev "$LOOP2"
|
||||
not grep "$LOOP2" $DF
|
||||
|
||||
# add/del with non-default idtype devname
|
||||
lvmdevices --adddev "$LOOP1" --deviceidtype devname
|
||||
grep "$LOOP1" $DF
|
||||
lvmdevices --adddev "$LOOP2" --deviceidtype devname
|
||||
grep "$LOOP2" $DF
|
||||
grep "IDTYPE=devname" $DF
|
||||
not grep "IDTYPE=loop_file" $DF
|
||||
lvmdevices --deldev "$LOOP1"
|
||||
not grep "$LOOP1" $DF
|
||||
lvmdevices --deldev "$LOOP2"
|
||||
not grep "$LOOP2" $DF
|
||||
|
||||
# add/del when dev is missing, using default idtype
|
||||
lvmdevices --adddev "$LOOP1"
|
||||
grep "$LOOP1" $DF
|
||||
lvmdevices --adddev "$LOOP2"
|
||||
grep "$LOOP2" $DF
|
||||
losetup -D
|
||||
grep "$LOOP1" $DF
|
||||
grep "$LOOP2" $DF
|
||||
lvmdevices --deldev "$LOOP1"
|
||||
not grep "$LOOP1" $DF
|
||||
lvmdevices --deldev "$LOOP2"
|
||||
not grep "$LOOP2" $DF
|
||||
not lvmdevices --adddev "$LOOP1"
|
||||
not lvmdevices --adddev "$LOOP2"
|
||||
not grep "$LOOP1" $DF
|
||||
not grep "$LOOP2" $DF
|
||||
setup_loop_devs
|
||||
rm $DF
|
||||
|
||||
# add/del when dev is missing, using devname idtype
|
||||
lvmdevices --adddev "$LOOP1" --deviceidtype devname
|
||||
grep "$LOOP1" $DF
|
||||
lvmdevices --adddev "$LOOP2" --deviceidtype devname
|
||||
grep "$LOOP2" $DF
|
||||
losetup -D
|
||||
grep "$LOOP1" $DF
|
||||
grep "$LOOP2" $DF
|
||||
lvmdevices --deldev "$LOOP1"
|
||||
not grep "$LOOP1" $DF
|
||||
lvmdevices --deldev "$LOOP2"
|
||||
not grep "$LOOP2" $DF
|
||||
setup_loop_devs
|
||||
rm $DF
|
||||
|
||||
# Tests of devices with PV on them.
|
||||
|
||||
touch $DF
|
||||
pvcreate "$LOOP1"
|
||||
pvcreate "$LOOP2"
|
||||
# PVID without dashes for matching devices file fields
|
||||
PVID1=`pvs "$LOOP1" --noheading -o uuid | tr -d - | awk '{print $1}'`
|
||||
PVID2=`pvs "$LOOP2" --noheading -o uuid | tr -d - | awk '{print $1}'`
|
||||
# PVID with dashes for matching pvs -o+uuid output
|
||||
OPVID1=`pvs "$LOOP1" --noheading -o uuid | awk '{print $1}'`
|
||||
OPVID2=`pvs "$LOOP2" --noheading -o uuid | awk '{print $1}'`
|
||||
grep "$LOOP1" $DF
|
||||
grep "$LOOP2" $DF
|
||||
grep "$PVID1" $DF
|
||||
grep "$PVID2" $DF
|
||||
rm $DF
|
||||
|
||||
# add/deldev with default idtype loop_file
|
||||
lvmdevices --adddev "$LOOP1"
|
||||
grep "$LOOP1" $DF
|
||||
grep "$PVID1" $DF
|
||||
lvmdevices --adddev "$LOOP2"
|
||||
grep "$LOOP2" $DF
|
||||
grep "$PVID2" $DF
|
||||
grep "IDTYPE=loop_file" $DF
|
||||
not grep "IDTYPE=devname" $DF
|
||||
lvmdevices --deldev "$LOOP1"
|
||||
not grep "$LOOP1" $DF
|
||||
lvmdevices --deldev "$LOOP2"
|
||||
not grep "$LOOP2" $DF
|
||||
|
||||
# add/delpvid with default idtype loop_file
|
||||
lvmdevices --addpvid "$PVID1"
|
||||
grep "$LOOP1" $DF
|
||||
grep "$PVID1" $DF
|
||||
lvmdevices --addpvid "$PVID2"
|
||||
grep "$LOOP2" $DF
|
||||
grep "$PVID2" $DF
|
||||
grep "IDTYPE=loop_file" $DF
|
||||
not grep "IDTYPE=devname" $DF
|
||||
lvmdevices --delpvid "$PVID1"
|
||||
not grep "$LOOP1" $DF
|
||||
not grep "$PVID1" $DF
|
||||
lvmdevices --delpvid "$PVID2"
|
||||
not grep "$LOOP2" $DF
|
||||
not grep "$PVID2" $DF
|
||||
|
||||
# add/deldev with non-default idtype devname
|
||||
lvmdevices --adddev "$LOOP1" --deviceidtype devname
|
||||
grep "$LOOP1" $DF
|
||||
grep "$PVID1" $DF
|
||||
lvmdevices --adddev "$LOOP2" --deviceidtype devname
|
||||
grep "$LOOP2" $DF
|
||||
grep "$PVID2" $DF
|
||||
grep "IDTYPE=devname" $DF
|
||||
not grep "IDTYPE=loop_file" $DF
|
||||
lvmdevices --deldev "$LOOP1"
|
||||
not grep "$LOOP1" $DF
|
||||
lvmdevices --deldev "$LOOP2"
|
||||
not grep "$LOOP2" $DF
|
||||
|
||||
# add/delpvid with non-default idtype devname
|
||||
lvmdevices --addpvid "$PVID1" --deviceidtype devname
|
||||
grep "$LOOP1" $DF
|
||||
grep "$PVID1" $DF
|
||||
lvmdevices --addpvid "$PVID2" --deviceidtype devname
|
||||
grep "$LOOP2" $DF
|
||||
grep "$PVID2" $DF
|
||||
grep "IDTYPE=devname" $DF
|
||||
not grep "IDTYPE=loop_file" $DF
|
||||
lvmdevices --deldev "$LOOP1"
|
||||
not grep "$LOOP1" $DF
|
||||
lvmdevices --deldev "$LOOP2"
|
||||
not grep "$LOOP2" $DF
|
||||
|
||||
# add/deldev when dev is missing, using default idtype
|
||||
lvmdevices --adddev "$LOOP1"
|
||||
grep "$LOOP1" $DF
|
||||
grep "$PVID1" $DF
|
||||
lvmdevices --adddev "$LOOP2"
|
||||
grep "$LOOP2" $DF
|
||||
grep "$PVID2" $DF
|
||||
losetup -D
|
||||
grep "$LOOP1" $DF
|
||||
grep "$LOOP2" $DF
|
||||
lvmdevices --deldev "$LOOP1"
|
||||
not grep "$LOOP1" $DF
|
||||
not grep "$PVID1" $DF
|
||||
lvmdevices --deldev "$LOOP2"
|
||||
not grep "$LOOP2" $DF
|
||||
not grep "$PVID2" $DF
|
||||
setup_loop_devs
|
||||
rm $DF
|
||||
|
||||
# add/delpvid when dev is missing, using devname idtype
|
||||
lvmdevices --addpvid "$PVID1" --deviceidtype devname
|
||||
grep "$LOOP1" $DF
|
||||
grep "$PVID1" $DF
|
||||
lvmdevices --addpvid "$PVID2" --deviceidtype devname
|
||||
grep "$LOOP2" $DF
|
||||
grep "$PVID2" $DF
|
||||
losetup -D
|
||||
grep "$LOOP1" $DF
|
||||
grep "$LOOP2" $DF
|
||||
lvmdevices --delpvid "$PVID1"
|
||||
not grep "$LOOP1" $DF
|
||||
not grep "$PVID1" $DF
|
||||
lvmdevices --delpvid "$PVID2"
|
||||
not grep "$LOOP2" $DF
|
||||
not grep "$PVID2" $DF
|
||||
setup_loop_devs
|
||||
rm $DF
|
||||
|
||||
# TODO: add/rem of partitions of same device
|
||||
|
||||
losetup -D
|
||||
rm loopa loopb
|
Loading…
Reference in New Issue
Block a user