summaryrefslogtreecommitdiffstats
path: root/kernel/performance/fs_mark/runtest.sh
blob: d7460d9b21f8081c3ca3963c57f16c8bda581704 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#!/bin/sh

# Source the common test script helpers
. /usr/bin/rhts_environment.sh

# Functions
RprtRslt()
{
    TEST=$1
    result=$2

    if test ! -s "$OUTPUTFILE" ; then
	export result="FAIL"
    else
	if [ "$result" = "PASS" ] ; then
	    export result="PASS"
	else
	    export result="FAIL"
	fi
    fi

    # File the results in the database
    report_result $TEST $result
}

TimeNow()
{
	date "+%Y.%m.%d %H:%M:%S"
}

RunTest()
{
    case "$1" in
	1)
        TESTARGS='-l /mnt/testarea/fs_1.log'
	RUNTEST=Default
	;;

	2)
	TESTARGS='-l /mnt/testarea/fs_2.log -r 32'
	RUNTEST=Random
	;;
    
	3)
	TESTARGS='-l /mnt/testarea/fs_3.log -D 128'
	RUNTEST=MultiDir
	;;
	
	4)
	TESTARGS='-l /mnt/testarea/fs_4.log -r 32 -D 128'
	RUNTEST=Random_MultiDir
	;;
    esac

    echo "***** Start of $RUNTEST $(TimeNow) *****" | tee -a $OUTPUTFILE

    # Default result to Fail
    export result_r="FAIL"

    echo "./fs_mark -d ${DIR1} -d ${DIR2} -s $FSMARK_S_PARAM -n $FSMARK_N_PARAM $TESTARGS" | tee -a $OUTPUTFILE
    ./fs_mark -d ${DIR1} -d ${DIR2} -s $FSMARK_S_PARAM -n $FSMARK_N_PARAM $TESTARGS 2>&1 >> $OUTPUTFILE
    if [ $? -eq 0 ] ; then
	echo "$RUNTEST Passed: " | tee -a $OUTPUTFILE
	result_r="PASS"
    else
	echo "$RUNTEST Failed: " | tee -a $OUTPUTFILE
	result_r="FAIL"
    fi

    echo " " >> $OUTPUTFILE
    echo "***** End of $RUNTEST $(TimeNow) *****" | tee -a $OUTPUTFILE
    echo " " >> $OUTPUTFILE

    if [ -e plot_$1 ] ; then
	gnuplot plot_$1
	echo "*******************************************************************************" >> $OUTPUTFILE
	cat plot-$1.txt >> $OUTPUTFILE
	echo "*******************************************************************************" >> $OUTPUTFILE
    fi

    RprtRslt "$FSMARK_RESULT_PREFIX$RUNTEST" $result_r
}

# ---------- Start Test -------------
# Setup some variables
# env params:   name                    default
#               FSMARK_TESTDIR          /mnt/testarea
#               FSMARK_S_PARAM          32768
#               FSMARK_N_PARAM          4096
#               FSMARK_RESULT_PREFIX
#
# This test can be included by other tests, so if you plan to change/remove
# some of env. variables, you should keep this in mind.

if [ -e /etc/redhat-release ] ; then
    installeddistro=$(cat /etc/redhat-release)
else
    installeddistro=unknown
fi

kernbase=$(rpm -q --queryformat '%{name}-%{version}-%{release}.%{arch}\n' -qf /boot/config-$(uname -r))
testver=$(rpm -qf $0)

if [ -z "$FSMARK_S_PARAM" ]; then
    FSMARK_S_PARAM=32768
fi

if [ -z "$FSMARK_N_PARAM" ]; then
    FSMARK_N_PARAM=4096
fi

if [ -n "$FSMARK_TESTDIR" -a -d "$FSMARK_TESTDIR" ]; then
    echo "FSMARK_TESTDIR: $FSMARK_TESTDIR" | tee -a $OUTPUTFILE
else
    FSMARK_TESTDIR="/mnt/testarea"
fi

DIR1=$FSMARK_TESTDIR/testdir1
DIR2=$FSMARK_TESTDIR/testdir2
echo "Going to run tests in $DIR1, $DIR2" | tee -a $OUTPUTFILE

cd ./fs_mark

TESTS='1 2 3 4'

for t in $TESTS ; do
    if [ -e /mnt/testarea/fs_$t.log ]; then
	rm -f /mnt/testarea/fs_$t.log
    fi
done

for t in $TESTS ; do
    OUTPUTFILE=`mktemp /tmp/tmp.XXXXXX`

    echo "***** Current Running Kernel Package = "$kernbase" *****" | tee -a $OUTPUTFILE
    echo "***** Current Running Distro = "$installeddistro" *****" | tee -a $OUTPUTFILE
    echo "***** Current Running test version = "$testver" *****" | tee -a $OUTPUTFILE

    if [ -d $DIR1 ]; then
	rm -rf $DIR1
    fi
    if [ -d $DIR2 ]; then
	rm -rf $DIR2
    fi
    mkdir -p $DIR1
    mkdir -p $DIR2
    echo "Running fs_mark test: $FSMARK_RESULT_PREFIX$t" | tee -a $OUTPUTFILE
    RunTest $t
done

exit 0