Merge branch 'master' of https://github.com/kmcdonell/pcp into kenj-merge
[pcp.git] / qa / 886
blobd51db9dcdbb3629674a0d50b147d3052eaed4344
1 #!/bin/sh
2 # PCP QA Test No. 886
3 # Verify /proc/interrupts parsing for various architectures.
5 # Copyright (c) 2016 Red Hat.
8 seq=`basename $0`
9 echo "QA output created by $seq"
11 # get standard environment, filters and checks
12 . ./common.product
13 . ./common.filter
14 . ./common.check
16 [ $PCP_PLATFORM = linux ] || _notrun "Linux interrupts test, only works with Linux"
18 status=1 # failure is the default!
19 $sudo rm -rf $tmp.* $seq.full
21 _cleanup()
23 cd $here
24 [ -f $PCP_VAR_DIR/config/pmda/$domain.26.$seq ] && \
25 _restore_config $PCP_VAR_DIR/config/pmda/$domain.26
26 [ -f $PCP_VAR_DIR/config/pmda/$domain.27.$seq ] && \
27 _restore_config $PCP_VAR_DIR/config/pmda/$domain.27
28 rm -rf $tmp.*
31 trap "_cleanup; exit \$status" 0 1 2 3 15
33 # real QA test starts here
34 root=$tmp.root
35 export LINUX_STATSPATH=$root
36 pmda=$PCP_PMDAS_DIR/linux/pmda_linux.so,linux_init
37 interrupts=`echo $here/linux/interrupts-* | LC_COLLATE=POSIX sort`
38 softirqs=`echo $here/linux/softirqs-* | LC_COLLATE=POSIX sort`
40 # override the default contents of PMDA cache files
41 # (do not want localhost versions to be used here).
43 domain=60
44 [ -f $PCP_VAR_DIR/config/pmda/$domain.26 ] && \
45 _save_config $PCP_VAR_DIR/config/pmda/$domain.26
46 $sudo rm -f $PCP_VAR_DIR/config/pmda/$domain.26
47 [ -f $PCP_VAR_DIR/config/pmda/$domain.27 ] && \
48 _save_config $PCP_VAR_DIR/config/pmda/$domain.27
49 $sudo rm -f $PCP_VAR_DIR/config/pmda/$domain.27
51 for file in $interrupts
53 rm -fr $root
54 mkdir -p $root/proc || _fail "root in use when processing $file"
56 cp $file $root/proc/interrupts
57 base=`basename $file`
58 ncpu=`echo $base | sed -e 's/.*-\([0-9][0-9]*\)cpu-.*/\1/'`
59 _make_proc_stat $root/proc/stat $ncpu
60 export LINUX_NCPUS=$ncpu
62 echo "== Checking interrupts metrics from $base ($ncpu CPU)"
63 pminfo -f -L -K clear -K add,$domain,$pmda kernel.percpu.intr kernel.percpu.interrupts
64 echo && echo "== done" && echo
65 echo "== Checking interrupts helptext from $base ($ncpu CPU)"
66 pminfo -tT -L -K clear -K add,$domain,$pmda kernel.percpu.intr kernel.percpu.interrupts
67 echo && echo "== done" && echo
68 cd $here
69 done
71 for file in $softirqs
73 rm -fr $root
74 mkdir -p $root/proc || _fail "root in use when processing $file"
76 cp $file $root/proc/softirqs
77 base=`basename $file`
78 ncpu=`echo $base | sed -e 's/.*-\([0-9][0-9]*\)cpu-.*/\1/'`
79 _make_proc_stat $root/proc/stat $ncpu
80 export LINUX_NCPUS=$ncpu
82 echo "== Checking softirqs metrics from $base ($ncpu CPU)"
83 pminfo -f -L -K clear -K add,$domain,$pmda kernel.percpu.softirqs
84 echo && echo "== done" && echo
85 cd $here
86 done
88 # success, all done
89 status=0
90 exit