Home | History | Annotate | Download | only in testscripts
      1 #!/bin/sh
      2 # This script should be run prior to running executing the filesystem tests.
      3 # valid devices need to be passed for Device Mapper to work correctly
      4 # 03/14/03 mridge (at] us.ibm.com added instance and time command line options
      5 # 05/16/03 changed script paths
      6 # 05/20/03 Added instructions on setup and warnings
      7 # 05/03/2004 hien1 (at] us.ibm.com  Added resize2fs and resize_reiserfs after extend and reduce LVs
      8 # 05/03/2004 Moved the mount after resizing
      9 # 05/03/2004 Modified /dev/ram to /dev/ram0
     10 
     11 cd `dirname $0`
     12 export LTPROOT=${PWD}
     13 echo $LTPROOT | grep testscripts > /dev/null 2>&1
     14 if [ $? -eq 0 ]; then
     15  cd ..
     16  export LTPROOT=${PWD}
     17 fi
     18 
     19 export TMPBASE="/tmp"
     20 
     21 
     22 usage()
     23 {
     24 	cat <<-END >&2
     25 	usage: ${0##*/} [ -a part1 ] [ -b part2 ] [ -c part3 ]
     26                 [ -d part4 ] [ -n nfsmount ]
     27 	defaults:
     28 	part1=$part1
     29 	part2=$part2
     30 	part3=$part3
     31 	part4=$part4
     32         nfsmount=$nfsmount
     33 	ltproot=$TPROOT
     34 	tmpdir=$TMPBASE
     35 
     36 	example: ${0##*/} -a hdc1 -b hdc2 -c hdc3 -d hdc4 -n mytesthost:/testmountdir
     37 
     38         fdisk needs to be run and the 4 HD partitions marked as 0x8e -- Linux LVM
     39 
     40         - If this is run on a 2.4 kernel system then LVM must be configured and the kernel rebuilt. In a 2.5 environment
     41         you must configure Device Mapper and install LVM2 from www.systina.com for the testcase to run correctly.
     42 
     43         - These operations are destructive so do NOT point the tests to partitions where the data shouldn't be overwritten.
     44         Once these tests are started all data in the partitions you point to will be destroyed.
     45 
     46 	END
     47 exit
     48 }
     49 
     50 while getopts :a:b:c:d:e:n:v: arg
     51 do      case $arg in
     52 		a)	part1=$OPTARG;;
     53                 b)      part2=$OPTARG;;
     54                 c)      part3=$OPTARG;;
     55                 d)      part4=$OPTARG;;
     56                 n)      nfsmount=$OPTARG;;
     57                 v)      verb=$OPTARG;;
     58 
     59                 \?)     echo "************** Help Info: ********************"
     60                         usage;;
     61         esac
     62 done
     63 
     64 if [ ! -n "$part1"  ]; then
     65   echo "Missing 1st partition. You must pass 4 partitions for testing"
     66   usage;
     67   exit
     68 fi
     69 
     70 if [ ! -n "$part2" ]; then
     71   echo "Missing 2nd partition. You must pass 4 partitions for testing"
     72   usage;
     73   exit
     74 fi
     75 
     76 if [ ! -n "$part3" ]; then
     77   echo "Missing 3rd partition. You must pass 4 partitions for testing"
     78   usage;
     79   exit
     80 fi
     81 
     82 if [ ! -n "$part4" ]; then
     83   echo "Missing 4th partition. You must pass 4 partitions for testing"
     84   usage;
     85   exit
     86 fi
     87 
     88 if [ ! -n "$nfsmount" ]; then
     89   echo "Missing NFS partition. You must pass an NFS mount point for testing"
     90   usage;
     91   exit
     92 fi
     93 
     94 export PATH="${PATH}:${LTPROOT}/testcases/bin"
     95 
     96 
     97 mkdir /test                   >/dev/null 2>&1
     98 mkdir /test/growfiles         >/dev/null 2>&1
     99 mkdir /test/growfiles/ext2    >/dev/null 2>&1
    100 mkdir /test/growfiles/msdos   >/dev/null 2>&1
    101 mkdir /test/growfiles/reiser  >/dev/null 2>&1
    102 mkdir /test/growfiles/minix   >/dev/null 2>&1
    103 mkdir /test/growfiles/nfs     >/dev/null 2>&1
    104 mkdir /test/growfiles/jfs     >/dev/null 2>&1
    105 mkdir /test/growfiles/ramdisk >/dev/null 2>&1
    106 
    107 vgscan
    108 vgchange -a y
    109 
    110 pvcreate -v /dev/$part1 /dev/$part2 /dev/$part3 /dev/$part4
    111 vgcreate -v ltp_test_vg1 /dev/$part1 /dev/$part2
    112 vgcreate -v ltp_test_vg2 /dev/$part3 /dev/$part4
    113 vgcfgbackup -v
    114 lvcreate -v -L 100 ltp_test_vg1 -n ltp_test_lv1
    115 lvcreate -v -L 100 ltp_test_vg1 -n ltp_test_lv2 -i 2
    116 lvcreate -v -L 100 ltp_test_vg2 -n ltp_test_lv3
    117 lvcreate -v -L 100 ltp_test_vg2 -n ltp_test_lv4
    118 
    119 mkfs -V -t ext2     /dev/ltp_test_vg1/ltp_test_lv1
    120 mkfs -V -t msdos    /dev/ltp_test_vg1/ltp_test_lv2
    121 mkreiserfs          /dev/ltp_test_vg2/ltp_test_lv3 <yesenter.txt
    122 mkfs -V -t minix    /dev/ltp_test_vg2/ltp_test_lv4
    123 
    124 ### there is no /dev/ram - has /dev/ram0 ... /dev/ram15
    125 mkfs -V -t ext3        /dev/ram0
    126 
    127 
    128 lvmdiskscan -v
    129 lvscan      -v
    130 vgdisplay   -v
    131 lvextend -v -l +5000 /dev/ltp_test_vg1/ltp_test_lv1
    132 lvreduce -v -f -l -20 /dev/ltp_test_vg1/ltp_test_lv1
    133 
    134 ### Need to be resize to get LV to the correct size
    135 resize2fs -f /dev/ltp_test_vg1/ltp_test_lv1
    136 lvextend -v -l +5000 /dev/ltp_test_vg1/ltp_test_lv2
    137 lvreduce -v -f -l -20 /dev/ltp_test_vg1/ltp_test_lv2
    138 
    139 ### Need to be resize to get LV to the correct size
    140 resize_reiserfs -f /dev/ltp_test_vg1/ltp_test_lv2
    141 lvextend -v -l +20 /dev/ltp_test_vg2/ltp_test_lv3
    142 lvreduce -v -f -l -20 /dev/ltp_test_vg2/ltp_test_lv3
    143 lvextend -v -l +20 /dev/ltp_test_vg2/ltp_test_lv4
    144 lvreduce -v -f -l -20 /dev/ltp_test_vg2/ltp_test_lv4
    145 
    146 vgreduce -v /dev/ltp_test_vg1 /dev/$part2
    147 vgextend -v /dev/ltp_test_vg1 /dev/$part2
    148 vgck -v
    149 
    150 ### Move mount filesystems to the last since resize can't work on a mounted filesystem.
    151 mount -v -t nfs $nfsmount               /test/growfiles/nfs
    152 mount -v /dev/ltp_test_vg1/ltp_test_lv1 /test/growfiles/ext2
    153 mount -v /dev/ltp_test_vg1/ltp_test_lv2 /test/growfiles/msdos
    154 mount -v /dev/ltp_test_vg2/ltp_test_lv3 /test/growfiles/reiser
    155 mount -v /dev/ltp_test_vg2/ltp_test_lv4 /test/growfiles/minix
    156 mount -v /dev/ram                       /test/growfiles/ramdisk
    157 
    158 echo "************ Running tests "
    159 sort -R ${LTPROOT}/runtest/lvm.part1 -o ${TMPBASE}/lvm.part1
    160 
    161 ${LTPROOT}/bin/ltp-pan -e -S -a lvmpart1 -n lvmpart1 -l lvmlogfile -f ${TMPBASE}/lvm.part1 &
    162 
    163 wait $!
    164 
    165 
    166 
    167 umount -v -t nfs $nfsmount
    168 umount -v /dev/ltp_test_vg1/ltp_test_lv1
    169 umount -v /dev/ltp_test_vg1/ltp_test_lv2
    170 umount -v /dev/ltp_test_vg2/ltp_test_lv3
    171 umount -v /dev/ltp_test_vg2/ltp_test_lv4
    172 umount -v /dev/ram
    173 
    174 lvremove -f -v /dev/ltp_test_vg1/ltp_test_lv1
    175 lvremove -f -v /dev/ltp_test_vg1/ltp_test_lv2
    176 lvremove -f -v /dev/ltp_test_vg2/ltp_test_lv3
    177 lvremove -f -v /dev/ltp_test_vg2/ltp_test_lv4
    178 
    179 lvscan -v
    180 vgchange -a n
    181 vgremove -v /dev/ltp_test_vg1
    182 vgremove -v /dev/ltp_test_vg2
    183 
    184 mkfs -V -t ext3     /dev/$part4
    185 mkfs -V -t jfs /dev/$part1  <yesenter.txt
    186 
    187 mount -v -t ext3   /dev/$part4         /test/growfiles/ext3
    188 mount -v -t jfs    /dev/hdc1           /test/growfiles/jfs
    189 
    190 echo "************ Running EXT3 & JFS tests...  "
    191 sort -R ${LTPROOT}/runtest/lvm.part2 -o ${TMPBASE}/lvm.part2
    192 
    193 ${LTPROOT}/bin/ltp-pan -e -S -a lvmpart2 -n lvmpart2 -l lvmlogfile -f ${TMPBASE}/lvm.part2 &
    194 
    195 wait $!
    196 
    197 umount -v /dev/$part1
    198 umount -v /dev/$part4
    199 
    200 
    201