Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1#!/bin/bash
2# perf header tests
3# SPDX-License-Identifier: GPL-2.0
4
5set -e
6
7err=0
8perfdata=$(mktemp /tmp/__perf_test_header.perf.data.XXXXX)
9script_output=$(mktemp /tmp/__perf_test_header.perf.data.XXXXX.script)
10
11cleanup() {
12 rm -f "${perfdata}"
13 rm -f "${perfdata}".old
14 rm -f "${script_output}"
15
16 trap - EXIT TERM INT
17}
18
19trap_cleanup() {
20 echo "Unexpected signal in ${FUNCNAME[1]}"
21 cleanup
22 exit 1
23}
24trap trap_cleanup EXIT TERM INT
25
26check_header_output() {
27 declare -a fields=(
28 "captured"
29 "hostname"
30 "os release"
31 "arch"
32 "cpuid"
33 "nrcpus"
34 "event"
35 "cmdline"
36 "perf version"
37 "sibling (cores|dies|threads)"
38 "sibling threads"
39 "total memory"
40 )
41 for i in "${fields[@]}"
42 do
43 if ! grep -q -E "$i" "${script_output}"
44 then
45 echo "Failed to find expected $i in output"
46 err=1
47 fi
48 done
49}
50
51test_file() {
52 echo "Test perf header file"
53
54 perf record -o "${perfdata}" -- perf test -w noploop
55 perf report --header-only -I -i "${perfdata}" > "${script_output}"
56 check_header_output
57
58 echo "Test perf header file [Done]"
59}
60
61test_pipe() {
62 echo "Test perf header pipe"
63
64 perf record -o - -- perf test -w noploop | perf report --header-only -I -i - > "${script_output}"
65 check_header_output
66
67 echo "Test perf header pipe [Done]"
68}
69
70test_file
71test_pipe
72
73cleanup
74exit $err