#!/bin/sh # PCP QA Test No. 506 # check 2^31 volume switching for pmlogrewrite # # Copyright (c) 2011 Ken McDonell. All Rights Reserved. # Copyright (c) 2012 Red Hat. # seq=`basename $0` echo "QA output created by $seq" # get standard environment, filters and checks . ./common.product . ./common.filter . ./common.check rm -f src/big2.* rm -f $seq.full ./src/mkbig1 > $seq.full 2>&1 [ $? -eq 0 ] || _notrun `cat $seq.full` # 10GB should keep us out of trouble free=`_check_freespace 10240` [ -z "$free" ] || _notrun $free status=0 # success is the default! $sudo rm -rf $tmp.* $seq.full trap "rm -f $tmp.* src/big2.*; exit \$status" 0 1 2 3 15 _filter() { sed \ -e 's/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\.[0-9][0-9][0-9]/TIMESTAMP/g' } _check() { # expect 3 volumes, and all < 2^31 bytes in size # sts=0 limit=2147483648 nvol=`ls $1.? | wc -l | sed -e 's/ //g'` if [ $nvol -ne 3 ] then ls -l $1.? echo "Error: expecting 3 volumes, found $nvol" sts=1 fi for vol in $1.? do size=`_filesize $vol` if [ -z "$size" ] then stat $vol echo "Error: cannot extract size for volume $vol" sts=1 elif [ "$size" -ge $limit ] then ls -l $vol echo "Error: size ($size) exceeds limit ($limit)" sts=1 fi done if [ $sts -eq 0 ] then echo "OK" else status=$sts fi } echo "metric sample.hordes.one { type -> 64 }" >$tmp.config echo "metric sample.hordes.two { type -> 64 }" >>$tmp.config # real QA test starts here echo "rewrite and copy" | tee -a $seq.full rm -f src/big2* ls -l src/big1* >>$seq.full 2>&1 pminfo -d -a src/big1 >>$seq.full pmlogrewrite -w -c $tmp.config src/big1 src/big2 2>&1 | _filter ls -l src/big2* >>$seq.full 2>&1 pminfo -d -a src/big2 >>$seq.full _check src/big2 echo | tee -a $seq.full echo "rewrite in place" | tee -a $seq.full rm -f src/big2* for file in src/big1.* do cp $file `echo $file | sed -e 's/big1/big2/'` done ls -l src/big2* >>$seq.full 2>&1 pminfo -d -a src/big2 >>$seq.full pmlogrewrite -iw -c $tmp.config src/big2 2>&1 | _filter ls -l src/big2* >>$seq.full 2>&1 pminfo -d -a src/big2 >>$seq.full _check src/big2 # success, all done exit