xref: /dragonfly/contrib/lvm2/dist/test/t-listings.sh (revision 36a3d1d6)
1# Copyright (C) 2008 Red Hat, Inc. All rights reserved.
2#
3# This copyrighted material is made available to anyone wishing to use,
4# modify, copy, or redistribute it subject to the terms and conditions
5# of the GNU General Public License v.2.
6#
7# You should have received a copy of the GNU General Public License
8# along with this program; if not, write to the Free Software Foundation,
9# Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
10
11#
12# tests functionality of lvs, pvs, vgs, *display tools
13#
14
15. ./test-utils.sh
16
17get_lvs_()
18{
19  case $(lvs --units s --nosuffix --noheadings -o $1_read_ahead "$vg"/"$lv") in
20    *$2) true ;;
21    *) false ;;
22  esac
23}
24
25aux prepare_devs 5
26
27pvcreate $dev1
28pvcreate --metadatacopies 0 $dev2
29pvcreate --metadatacopies 0 $dev3
30pvcreate $dev4
31pvcreate --metadatacopies 0 $dev5
32
33#COMM bz195276 -- pvs doesn't show PVs until a VG is created
34pvs --noheadings|tee out
35test $(wc -l <out) -eq 5
36
37#COMM pvs with segment attributes works even for orphans
38pvs --noheadings -o  seg_all,pv_all,lv_all,vg_all | tee out
39test $(wc -l <out) -eq 5
40
41vgcreate -c n $vg $devs
42
43#COMM pvs and vgs report mda_count, mda_free (bz202886, bz247444)
44pvs -o +pv_mda_count,pv_mda_free $devs
45for I in $dev2 $dev3 $dev5; do
46	aux check_pv_field_ $I pv_mda_count 0
47	aux check_pv_field_ $I pv_mda_free 0
48done
49vgs -o +vg_mda_count,vg_mda_free $vg
50aux check_vg_field_ $vg vg_mda_count 2
51
52#COMM pvs doesn't display --metadatacopies 0 PVs as orphans (bz409061)
53pvdisplay $dev2|grep "VG Name.*$vg"
54test $(pvs -o vg_name --noheadings $dev2) = $vg
55
56#COMM lvs displays snapshots (bz171215)
57lvcreate -l4 -n $lv1 $vg
58lvcreate -l4 -s -n $lv2 $vg/$lv1
59lvs $vg --noheadings|tee out
60test $(wc -l <out) -eq 2
61lvs -a --noheadings|tee out
62# should lvs -a display cow && real devices? (it doesn't)
63test $(wc -l <out) -eq 2
64dmsetup ls|grep $PREFIX|grep -v "LVMTEST.*pv."
65lvremove -f $vg/$lv2
66
67#COMM lvs -a displays mirror legs and log
68lvcreate -l4  -m2 -n$lv3 $vg
69lvs $vg --noheadings|tee out
70test $(wc -l <out) -eq 2
71lvs -a --noheadings|tee out
72test $(wc -l <out) -eq 6
73dmsetup ls|grep $PREFIX|grep -v "LVMTEST.*pv."
74
75#COMM vgs with options from pvs still treats arguments as VGs (bz193543)
76vgs -o pv_name,vg_name $vg
77# would complain if not
78
79#COMM pvdisplay --maps feature (bz149814)
80pvdisplay $devs >out
81pvdisplay --maps $devs >out2
82not diff out out2
83
84