~ubuntu-branches/ubuntu/vivid/lvm2/vivid

« back to all changes in this revision

Viewing changes to test/shell/fsadm.sh

  • Committer: Package Import Robot
  • Author(s): Bastian Blank
  • Date: 2012-05-01 20:27:50 UTC
  • mto: (3.1.23 sid)
  • mto: This revision was merged to the branch mainline in revision 72.
  • Revision ID: package-import@ubuntu.com-20120501202750-gljjjtblowwq9mw8
Tags: upstream-2.02.95
ImportĀ upstreamĀ versionĀ 2.02.95

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/bash
 
2
# Copyright (C) 2008-2011 Red Hat, Inc. All rights reserved.
 
3
#
 
4
# This copyrighted material is made available to anyone wishing to use,
 
5
# modify, copy, or redistribute it subject to the terms and conditions
 
6
# of the GNU General Public License v.2.
 
7
#
 
8
# You should have received a copy of the GNU General Public License
 
9
# along with this program; if not, write to the Free Software Foundation,
 
10
# Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
11
 
 
12
test_description='Exercise fsadm filesystem resize'
 
13
 
 
14
. lib/test
 
15
 
 
16
aux prepare_vg 1 100
 
17
 
 
18
# set to "skip" to avoid testing given fs and test warning result
 
19
# i.e. check_reiserfs=skip
 
20
check_ext3=
 
21
check_xfs=
 
22
check_reiserfs=
 
23
 
 
24
which mkfs.ext3 || check_ext3=${check_ext3:=mkfs.ext3}
 
25
which fsck.ext3 || check_ext3=${check_ext3:=fsck.ext3}
 
26
which mkfs.xfs || check_xfs=${check_xfs:=mkfs.xfs}
 
27
which xfs_check || check_xfs=${check_xfs:=xfs_check}
 
28
which mkfs.reiserfs || check_reiserfs=${check_reiserfs:=mkfs.reiserfs}
 
29
which reiserfsck || check_reiserfs=${check_reiserfs:=reiserfsck}
 
30
 
 
31
vg_lv="$vg/$lv1"
 
32
dev_vg_lv="$DM_DEV_DIR/$vg_lv"
 
33
mount_dir="$TESTDIR/mnt"
 
34
# for recursive call
 
35
export LVM_BINARY=$(which lvm)
 
36
 
 
37
test ! -d $mount_dir && mkdir $mount_dir
 
38
 
 
39
cleanup_mounted_and_teardown()
 
40
{
 
41
        umount $mount_dir || true
 
42
        aux teardown
 
43
}
 
44
 
 
45
fscheck_ext3()
 
46
{
 
47
        fsck.ext3 -p -F -f $dev_vg_lv
 
48
}
 
49
 
 
50
fscheck_xfs()
 
51
{
 
52
        xfs_check $dev_vg_lv
 
53
}
 
54
 
 
55
fscheck_reiserfs()
 
56
{
 
57
        reiserfsck --check -p -f $dev_vg_lv </dev/null
 
58
}
 
59
 
 
60
check_missing()
 
61
{
 
62
        eval local t=$\check_$1
 
63
        test -z "$t" && return 0
 
64
        test "$t" = skip && return 1
 
65
        # trick for warning test
 
66
        echo "TEST ""WARNING: fsadm skips $1 tests, $t tool is missing"
 
67
        return 1
 
68
}
 
69
 
 
70
# Test for block sizes != 1024 (rhbz #480022)
 
71
lvcreate -n $lv1 -L20M $vg
 
72
trap 'cleanup_mounted_and_teardown' EXIT
 
73
 
 
74
if check_missing ext3; then
 
75
        mkfs.ext3 -b4096 -j $dev_vg_lv
 
76
 
 
77
        fsadm --lvresize resize $vg_lv 30M
 
78
        # Fails - not enough space for 4M fs
 
79
        not fsadm -y --lvresize resize $dev_vg_lv 4M
 
80
        lvresize -L+10M -r $vg_lv
 
81
        lvreduce -L10M -r $vg_lv
 
82
 
 
83
        fscheck_ext3
 
84
        mount $dev_vg_lv $mount_dir
 
85
        not fsadm -y --lvresize resize $vg_lv 4M
 
86
        echo n | not lvresize -L4M -r -n $vg_lv
 
87
        lvresize -L+20M -r -n $vg_lv
 
88
        umount $mount_dir
 
89
        fscheck_ext3
 
90
 
 
91
        lvresize -f -L20M $vg_lv
 
92
fi
 
93
 
 
94
if check_missing xfs; then
 
95
        mkfs.xfs -l internal,size=1000b -f $dev_vg_lv
 
96
 
 
97
        fsadm --lvresize resize $vg_lv 30M
 
98
        # Fails - not enough space for 4M fs
 
99
        lvresize -L+10M -r $vg_lv
 
100
        not lvreduce -L10M -r $vg_lv
 
101
 
 
102
        fscheck_xfs
 
103
        mount $dev_vg_lv $mount_dir
 
104
        lvresize -L+10M -r -n $vg_lv
 
105
        umount $mount_dir
 
106
        fscheck_xfs
 
107
 
 
108
        lvresize -f -L20M $vg_lv
 
109
fi
 
110
 
 
111
if check_missing reiserfs; then
 
112
        mkfs.reiserfs -s 513 -f $dev_vg_lv
 
113
 
 
114
        fsadm --lvresize resize $vg_lv 30M
 
115
        lvresize -L+10M -r $vg_lv
 
116
        fsadm --lvresize -y resize $vg_lv 10M
 
117
 
 
118
        fscheck_reiserfs
 
119
        mount $dev_vg_lv $mount_dir
 
120
 
 
121
        fsadm -y --lvresize resize $vg_lv 30M
 
122
        umount $mount_dir
 
123
        fscheck_reiserfs
 
124
 
 
125
        lvresize -f -L20M $vg_lv
 
126
fi
 
127
 
 
128
vgremove -ff $vg