#!/bin/sh
# Copyright (C) 2015 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

SKIP_WITH_LVMLOCKD=1
SKIP_WITH_LVMPOLLD=1

export LVM_TEST_THIN_REPAIR_CMD=${LVM_TEST_THIN_REPAIR_CMD-/bin/false}

. lib/inittest

aux have_thin 1 0 0 || skip

aux prepare_pvs 1 16

#########################
# special cases to test #
#########################

# if calling lvremove and an LV is removed that is related to other LV
# and we're doing selection based on this relation, check if we're
# selecting on initial state (here, thin origin LV thin_orig is removed
# first, but thin snap should be still selectable based on origin=thin_orig
# condition even though thin_orig has just been removed)
vgcreate -s 4m $vg1 "$dev1"
lvcreate -l100%FREE -T $vg1/pool
lvcreate -V4m -T $vg1/pool -n thin_orig
lvcreate -s $vg1/thin_orig -n thin_snap
lvremove -ff -S 'lv_name=thin_orig || origin=thin_orig' > out
grep "Logical volume \"thin_orig\" successfully removed" out
grep "Logical volume \"thin_snap\" successfully removed" out
not lvs $vg1/thin_orig
not lvs $vg1/thin_snap

vgremove -ff $vg1
