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