1*4a87dea9SIan Rogers#!/bin/sh
2*4a87dea9SIan Rogers# perf all metrics test
3*4a87dea9SIan Rogers# SPDX-License-Identifier: GPL-2.0
4*4a87dea9SIan Rogers
5*4a87dea9SIan Rogersset -e
6*4a87dea9SIan Rogers
7*4a87dea9SIan Rogersfor m in $(perf list --raw-dump metrics); do
8*4a87dea9SIan Rogers  echo "Testing $m"
9*4a87dea9SIan Rogers  result=$(perf stat -M "$m" true 2>&1)
10*4a87dea9SIan Rogers  if [[ ! "$result" =~ "$m" ]] && [[ ! "$result" =~ "<not supported>" ]]; then
11*4a87dea9SIan Rogers    # We failed to see the metric and the events are support. Possibly the
12*4a87dea9SIan Rogers    # workload was too small so retry with something longer.
13*4a87dea9SIan Rogers    result=$(perf stat -M "$m" perf bench internals synthesize 2>&1)
14*4a87dea9SIan Rogers    if [[ ! "$result" =~ "$m" ]]; then
15*4a87dea9SIan Rogers      echo "Metric '$m' not printed in:"
16*4a87dea9SIan Rogers      echo "$result"
17*4a87dea9SIan Rogers      exit 1
18*4a87dea9SIan Rogers    fi
19*4a87dea9SIan Rogers  fi
20*4a87dea9SIan Rogersdone
21*4a87dea9SIan Rogers
22*4a87dea9SIan Rogersexit 0
23