Messages in this thread | | | Date | Thu, 16 Sep 2021 07:04:34 -0500 | From | "Paul A. Clarke" <> | Subject | Re: [PATCH v2] perf test: Workload test of metric and metricgroups |
| |
On Wed, Sep 15, 2021 at 11:05:25PM -0700, Ian Rogers wrote: > Test every metric and metricgroup with 'true' as a workload.
Good idea! (However...)
> Signed-off-by: Ian Rogers <irogers@google.com> > --- > tools/perf/tests/shell/stat_all_metricgroups.sh | 12 ++++++++++++ > tools/perf/tests/shell/stat_all_metrics.sh | 16 ++++++++++++++++ > 2 files changed, 28 insertions(+) > create mode 100755 tools/perf/tests/shell/stat_all_metricgroups.sh > create mode 100755 tools/perf/tests/shell/stat_all_metrics.sh > > diff --git a/tools/perf/tests/shell/stat_all_metricgroups.sh b/tools/perf/tests/shell/stat_all_metricgroups.sh > new file mode 100755 > index 000000000000..de24d374ce24 > --- /dev/null > +++ b/tools/perf/tests/shell/stat_all_metricgroups.sh > @@ -0,0 +1,12 @@ > +#!/bin/sh > +# perf all metricgroups test > +# SPDX-License-Identifier: GPL-2.0 > + > +set -e > + > +for m in $(perf list --raw-dump metricgroups); do > + echo "Testing $m" > + perf stat -M "$m" true > +done > + > +exit 0
This always succeeds. Is that what you want? Maybe check the return code from "perf", at least?
> diff --git a/tools/perf/tests/shell/stat_all_metrics.sh b/tools/perf/tests/shell/stat_all_metrics.sh > new file mode 100755 > index 000000000000..81b19ba27e68 > --- /dev/null > +++ b/tools/perf/tests/shell/stat_all_metrics.sh > @@ -0,0 +1,16 @@ > +#!/bin/sh > +# perf all metrics test > +# SPDX-License-Identifier: GPL-2.0 > + > +set -e > + > +for m in `perf list --raw-dump metrics`; do > + echo "Testing $m" > + result=$(perf stat -M "$m" true)
I don't think this is doing what you want it to do, as it just captures the output of "true", which is always empty.
> + if [[ "$result" =~ "$m" ]]; then
So this always fails to match, and you'll never fail here, either. :-)
> + echo "Metric not printed: $m" > + exit 1 > + fi > +done > + > +exit 0
You may want to redirect the output of the "perf" command to a temporary file, then grep within that. And, you'll need to remove the file before running the perf command, because if it fails, it will leave any existing file untouched.
Thanks! :-)
PC
| |