diff options
Diffstat (limited to 'qa/506')
-rwxr-xr-x | qa/506 | 101 |
1 files changed, 101 insertions, 0 deletions
@@ -0,0 +1,101 @@ +#!/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 |