1*db452961SIan Rogers#!/bin/bash 2*db452961SIan Rogers# perf evlist tests 3*db452961SIan Rogers# SPDX-License-Identifier: GPL-2.0 4*db452961SIan Rogers 5*db452961SIan Rogersset -e 6*db452961SIan Rogers 7*db452961SIan Rogerserr=0 8*db452961SIan Rogersperfdata=$(mktemp /tmp/__perf_test.perf.data.XXXXX) 9*db452961SIan Rogers 10*db452961SIan Rogerscleanup() { 11*db452961SIan Rogers rm -f "${perfdata}" 12*db452961SIan Rogers trap - EXIT TERM INT 13*db452961SIan Rogers} 14*db452961SIan Rogers 15*db452961SIan Rogerstrap_cleanup() { 16*db452961SIan Rogers echo "Unexpected signal in ${FUNCNAME[1]}" 17*db452961SIan Rogers cleanup 18*db452961SIan Rogers exit 1 19*db452961SIan Rogers} 20*db452961SIan Rogerstrap trap_cleanup EXIT TERM INT 21*db452961SIan Rogers 22*db452961SIan Rogerstest_evlist_simple() { 23*db452961SIan Rogers echo "Simple evlist test" 24*db452961SIan Rogers if ! perf record -e cycles -o "${perfdata}" true 2> /dev/null 25*db452961SIan Rogers then 26*db452961SIan Rogers echo "Simple evlist [Failed record]" 27*db452961SIan Rogers err=1 28*db452961SIan Rogers return 29*db452961SIan Rogers fi 30*db452961SIan Rogers if ! perf evlist -i "${perfdata}" | grep -q "cycles" 31*db452961SIan Rogers then 32*db452961SIan Rogers echo "Simple evlist [Failed to list event]" 33*db452961SIan Rogers err=1 34*db452961SIan Rogers return 35*db452961SIan Rogers fi 36*db452961SIan Rogers echo "Simple evlist test [Success]" 37*db452961SIan Rogers} 38*db452961SIan Rogers 39*db452961SIan Rogerstest_evlist_group() { 40*db452961SIan Rogers echo "Group evlist test" 41*db452961SIan Rogers if ! perf record -e "{cycles,instructions}" -o "${perfdata}" true 2> /dev/null 42*db452961SIan Rogers then 43*db452961SIan Rogers echo "Group evlist [Skipped event group recording failed]" 44*db452961SIan Rogers return 45*db452961SIan Rogers fi 46*db452961SIan Rogers 47*db452961SIan Rogers if ! perf evlist -i "${perfdata}" -g | grep -q "{.*cycles.*,.*instructions.*}" 48*db452961SIan Rogers then 49*db452961SIan Rogers echo "Group evlist [Failed to list event group]" 50*db452961SIan Rogers err=1 51*db452961SIan Rogers return 52*db452961SIan Rogers fi 53*db452961SIan Rogers echo "Group evlist test [Success]" 54*db452961SIan Rogers} 55*db452961SIan Rogers 56*db452961SIan Rogerstest_evlist_verbose() { 57*db452961SIan Rogers echo "Event configuration evlist test" 58*db452961SIan Rogers if ! perf record -e cycles -o "${perfdata}" true 2> /dev/null 59*db452961SIan Rogers then 60*db452961SIan Rogers echo "Event configuration evlist [Failed record]" 61*db452961SIan Rogers err=1 62*db452961SIan Rogers return 63*db452961SIan Rogers fi 64*db452961SIan Rogers 65*db452961SIan Rogers if ! perf evlist -i "${perfdata}" -v | grep -q "config:" 66*db452961SIan Rogers then 67*db452961SIan Rogers echo "Event configuration evlist [Failed to list verbose info]" 68*db452961SIan Rogers err=1 69*db452961SIan Rogers return 70*db452961SIan Rogers fi 71*db452961SIan Rogers echo "Event configuration evlist test [Success]" 72*db452961SIan Rogers} 73*db452961SIan Rogers 74*db452961SIan Rogerstest_evlist_simple 75*db452961SIan Rogerstest_evlist_group 76*db452961SIan Rogerstest_evlist_verbose 77*db452961SIan Rogers 78*db452961SIan Rogerscleanup 79*db452961SIan Rogersexit $err 80