| #!/bin/bash |
| # record weak terms |
| # SPDX-License-Identifier: GPL-2.0 |
| # Test that command line options override weak terms from sysfs or inbuilt json. |
| set -e |
| |
| shelldir=$(dirname "$0") |
| # shellcheck source=lib/setup_python.sh |
| . "${shelldir}"/lib/setup_python.sh |
| |
| # Find the first event with a specified period, such as |
| # "cpu_core/event=0x24,period=200003,umask=0xff/" |
| event=$(perf list --json | $PYTHON -c ' |
| import json, sys |
| for e in json.load(sys.stdin): |
| if "EventName" not in e or "/modifier" in e["EventName"]: |
| continue |
| if "Encoding" in e and "period=" in e["Encoding"]: |
| print(e["EventName"]) |
| break |
| ') |
| if [[ "$event" = "" ]] |
| then |
| echo "Skip: No sysfs/json events with inbuilt period." |
| exit 2 |
| fi |
| |
| echo "Testing that for $event the period is overridden with 1000" |
| perf list --detail "$event" |
| if ! perf record -c 1000 -vv -e "$event" -o /dev/null true 2>&1 | \ |
| grep -q -F '{ sample_period, sample_freq } 1000' |
| then |
| echo "Fail: Unexpected verbose output and sample period" |
| exit 1 |
| fi |
| echo "Success" |
| exit 0 |