summaryrefslogtreecommitdiff
path: root/qa/049
blob: 0b69c3e65e66725672b4e09581ecb8fcd6b2cd49 (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
#! /bin/sh
# PCP QA Test No. 049
# Big archive exerciser and temporal index
#
# Copyright (c) 1995-2002 Silicon Graphics, Inc.  All Rights Reserved.
#

seq=`basename $0`
echo "QA output created by $seq"

# get standard filters
. ./common.product
. ./common.filter
. ./common.check

rm -f $seq.out $seq.full
if [ $PCP_VER -lt 3509 ]
then
    ln $seq.out.1 $seq.out || exit 1
else
    ln $seq.out.2 $seq.out || exit 1
fi

trap "rm -f $tmp.*; exit" 0 1 2 3 15

# real QA test starts here
for arch in src/mv-bigbin
do
    echo | tee -a $seq.full
    echo "=== $arch ===" | tee -a $seq.full
    pmdumplog -t $arch >>$seq.full
    src/xarch -a $arch -D128 2>&1 \
    | tee -a $seq.full \
    | sed \
	-e 's/posn=[0-9]*/posn=OFFSET/' \
	-e 's/__pmLogChkLabel/chkLabel/g' \
	-e '/__pmLogRead/d' \
	-e '/LogLoadMeta/d' \
	-e '/__pmLogOpen: inspect file/d' \
	-e 's/[0-2][0-9]:[0-5][0-9]:[0-5][0-9]\.[0-9][0-9][0-9]/TIME/g' \
	-e 's/TIME (t=[0-9][0-9.]*)/TIME/g' \
	-e 's/pid=.*host=.*/pid=PID host=HOSTNAME/' \
    | $PCP_AWK_PROG '
$1 == "chkLabel:" && /vol=0/	{ if (fd1 == "") fd1 = $2
				  if (fd1 == $2) $2 = "fd=<n1>"
				}
$1 == "chkLabel:" && /vol=-2/	{ if (fd2 == "") fd2 = $2
				  if (fd2 == $2) $2 = "fd=<n2>"
				}
$1 == "chkLabel:" && /vol=-1/	{ if (fd3 == "") fd3 = $2
				  if (fd3 == $2) $2 = "fd=<n3>"
				}
$1 == "__pmLogRead:"		{ if (fd4 == "") fd4 = $2
				  if (fd4 == $2) $2 = "fd=<n4>"
				}
$1 == "chkLabel:" && /vol=[1-9]/	{ if (fd5 == "") fd5 = $2
				  if (fd5 == $2) $2 = "fd=<n5>"
				}
				{ print }' \
    | $PCP_AWK_PROG -v sortfile=$tmp.sort '
/pmLogOpen/ { print > sortfile; open=1; next }
open==1 && $1 !~ /pmLogOpen/ { system("sort " sortfile); open=0 }
/^Pass /			{ pass = $2 }
pass == "4:" && /^Found 1000 /	{ print; skip = 1 }
pass == "4:" && /^Found 750 /	{ print; skip = 1 }
pass == "5:" && /^Found 750 /	{ print; skip = 1 }
pass == "5:" && /^Found 500 /	{ print; skip = 1 }
skip == 1 && /__pmLogSetTime/	{ print "__pmLogSetTime ..."; next }
skip == 1 && /__pmLogFetch/	{ skip = 2; next }
skip == 2 && /__pmLogFetch/	{ next }
skip == 1			{ next }
skip == 2			{ skip = 0 }
				{ print }'
done

exit 0