#!/bin/bash # perf header tests # SPDX-License-Identifier: GPL-2.0 set -e err=0 perfdata=$(mktemp /tmp/__perf_test_header.perf.data.XXXXX) script_output=$(mktemp /tmp/__perf_test_header.perf.data.XXXXX.script) cleanup() { rm -f "${perfdata}" rm -f "${perfdata}".old rm -f "${script_output}" trap - EXIT TERM INT } trap_cleanup() { echo "Unexpected signal in ${FUNCNAME[1]}" cleanup exit 1 } trap trap_cleanup EXIT TERM INT check_header_output() { declare -a fields=( "captured" "hostname" "os release" "arch" "cpuid" "nrcpus" "event" "cmdline" "perf version" "sibling (cores|dies|threads)" "sibling threads" "total memory" ) for i in "${fields[@]}" do if ! grep -q -E "$i" "${script_output}" then echo "Failed to find expected $i in output" err=1 fi done } test_file() { echo "Test perf header file" perf record -o "${perfdata}" -- perf test -w noploop perf report --header-only -I -i "${perfdata}" > "${script_output}" check_header_output echo "Test perf header file [Done]" } test_pipe() { echo "Test perf header pipe" perf record -o - -- perf test -w noploop | perf report --header-only -I -i - > "${script_output}" check_header_output echo "Test perf header pipe [Done]" } test_file test_pipe cleanup exit $err