diff options
Diffstat (limited to 'qa/735')
-rwxr-xr-x | qa/735 | 53 |
1 files changed, 53 insertions, 0 deletions
@@ -0,0 +1,53 @@ +#!/bin/sh +# PCP QA Test No. 735 +# Exercise the Linux kernel proc.psinfo.cgroup metric +# +# Copyright (c) 2013 Red Hat. All Rights Reserved. +# + +seq=`basename $0` +echo "QA output created by $seq" + +# get standard environment, filters and checks +. ./common.product +. ./common.filter +. ./common.check + +pid=$$ + +test $PCP_VER -ge 3805 || _notrun "No support for new proc cgroup metric" +test $PCP_PLATFORM = linux || _notrun "Test unsupported on $PCP_PLATFORM" +test -f /proc/$pid/cgroup || _notrun "No per-process support for cgroups" + +status=1 # failure is the default! +$sudo rm -rf $tmp.* $seq.full +trap "cd $here; rm -rf $tmp.*; exit \$status" 0 1 2 3 15 + +# real QA test starts here +$sudo rm -f $seq.full +syscgroups=`cat /proc/$pid/cgroup \ + | sed -e 's/^[0-9][0-9]*://' \ + | tr '\n' ';' \ + | sed -e 's/;$/\n/'` +echo "SYS cgroup list for process $pid is: $syscgroups" >> $seq.full + +pminfo -f proc.psinfo.cgroups > $tmp.cgroups +pcpcgroups=`grep "^ inst \[$pid or " $tmp.cgroups \ + | $PCP_AWK_PROG '{ print $NF }' \ + | sed -e 's/^"//' -e 's/"$//'` +echo "PCP cgroup list for process $pid is: $pcpcgroups" >> $seq.full +echo "Extracted from pminfo:" >> $seq.full +cat $tmp.cgroups >> $seq.full + +if [ "$pcpcgroups" = "$syscgroups" ] +then + echo "Control group list for current process checks out" + status=0 +else + echo "Mismatch on control group list:" + echo "PCP cgroups: $pcpcgroups" + echo "SYS cgroups: $syscgroups" + status=1 +fi + +exit |