From 079681058ea55f36756cfec853b848ba27f0ae97 Mon Sep 17 00:00:00 2001 From: Mykola Ivanets Date: Mon, 15 Jan 2018 00:28:04 +0200 Subject: [PATCH] tests: md: test guestfish finds md and LV devices in different combinations Test guestfish finds: 1. md device created from physical block device and LV, 2. md device created from LVs 3. LV created on md device raid0 is used for md device because it is inoperable if one of its components is inaccessible so it is easy observable that md device is missing (raid1 in this case will be operable but in degraded state). --- tests/md/Makefile.am | 1 + tests/md/test-md-and-lvm-devices.sh | 142 ++++++++++++++++++++++++++++ 2 files changed, 143 insertions(+) create mode 100755 tests/md/test-md-and-lvm-devices.sh diff --git a/tests/md/Makefile.am b/tests/md/Makefile.am index f6c5c48b4..42260af58 100644 --- a/tests/md/Makefile.am +++ b/tests/md/Makefile.am @@ -23,6 +23,7 @@ TESTS = \ test-list-filesystems.sh \ test-list-md-devices.sh \ test-lvm-on-md-device.sh \ + test-md-and-lvm-devices.sh \ test-mdadm.sh TESTS_ENVIRONMENT = $(top_builddir)/run --test diff --git a/tests/md/test-md-and-lvm-devices.sh b/tests/md/test-md-and-lvm-devices.sh new file mode 100755 index 000000000..5e82e3a4f --- /dev/null +++ b/tests/md/test-md-and-lvm-devices.sh @@ -0,0 +1,142 @@ +#!/bin/bash - +# libguestfs +# Copyright (C) 2018 Red Hat Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# 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 guestfish finds: +# 1. md device created from physical block device and LV, +# 2. md device created from LVs +# 3. LV created on md device +# +# raid0 is used for md device because it is inoperable if one of its components +# is inaccessible so it is easy observable that md device is missing (raid1 in +# this case will be operable but in degraded state). + +set -e + +$TEST_FUNCTIONS +skip_if_skipped + +disk1=md-and-lvm-devices-1.img +disk2=md-and-lvm-devices-2.img + +rm -f $disk1 $disk2 + +# Clean up if the script is killed or exits early +cleanup () +{ + status=$? + set +e + + # Don't delete the output files if non-zero exit + if [ "$status" -eq 0 ]; then rm -f $disk1 $disk2; fi + + exit $status +} +trap cleanup INT QUIT TERM EXIT + +# Create 2 disks partitioned as: +# sda1: 20M MD (md127) +# sda2: 20M PV (vg1) +# sda3: 20M MD (md125) +# +# sdb1: 20M PV (vg0) +# sdb2: 20M PV (vg2) +# sdb3: 20M MD (md125) +# +# lv0 : LV (vg0) +# lv1 : LV (vg1) +# lv2 : LV (vg2) +# md127 : md (sda1, lv0) +# md126 : md (lv1, lv2) +# md125 : md (sda3, sdb3) +# vg3 : VG (md125) +# lv3 : LV (vg3) +# + +guestfish <