13d5ac9efSIan Rogers#!/bin/sh 23d5ac9efSIan Rogers# perf all PMU test 33d5ac9efSIan Rogers# SPDX-License-Identifier: GPL-2.0 43d5ac9efSIan Rogers 53d5ac9efSIan Rogersset -e 63d5ac9efSIan Rogers 7*b50d691eSMichael Petlan# Test all PMU events; however exclude parametrized ones (name contains '?') 8*b50d691eSMichael Petlanfor p in $(perf list --raw-dump pmu | sed 's/[[:graph:]]\+?[[:graph:]]\+[[:space:]]//g'); do 93d5ac9efSIan Rogers echo "Testing $p" 103d5ac9efSIan Rogers result=$(perf stat -e "$p" true 2>&1) 11ac96f463SJames Clark if ! echo "$result" | grep -q "$p" && ! echo "$result" | grep -q "<not supported>" ; then 123d5ac9efSIan Rogers # We failed to see the event and it is supported. Possibly the workload was 133d5ac9efSIan Rogers # too small so retry with something longer. 143d5ac9efSIan Rogers result=$(perf stat -e "$p" perf bench internals synthesize 2>&1) 15ac96f463SJames Clark if ! echo "$result" | grep -q "$p" ; then 163d5ac9efSIan Rogers echo "Event '$p' not printed in:" 173d5ac9efSIan Rogers echo "$result" 183d5ac9efSIan Rogers exit 1 193d5ac9efSIan Rogers fi 203d5ac9efSIan Rogers fi 213d5ac9efSIan Rogersdone 223d5ac9efSIan Rogers 233d5ac9efSIan Rogersexit 0 24