xref: /linux/tools/perf/tests/shell/kwork.sh (revision e2683c8868d03382da7e1ce8453b543a043066d1)
1#!/bin/bash
2# perf kwork tests
3# SPDX-License-Identifier: GPL-2.0
4
5set -e
6
7# Root permissions required for tracing events.
8if [ "$(id -u)" != 0 ]; then
9	echo "[Skip] No root permission"
10	exit 2
11fi
12
13err=0
14perfdata=$(mktemp /tmp/__perf_test_kwork.perf.data.XXXXX)
15
16cleanup() {
17	rm -f "${perfdata}"
18	rm -f "${perfdata}".old
19
20	trap - EXIT TERM INT
21}
22
23trap_cleanup() {
24	echo "Unexpected signal in ${FUNCNAME[1]}"
25	cleanup
26	exit 1
27}
28trap trap_cleanup EXIT TERM INT
29
30test_kwork_record() {
31	echo "Kwork record"
32	perf kwork record -o "${perfdata}" -- sleep 1
33	echo "Kwork record [Success]"
34}
35
36test_kwork_report() {
37	echo "Kwork report"
38	if ! perf kwork report -i "${perfdata}" | grep -q "Kwork Name"; then
39		echo "Kwork report [Failed missing output]"
40		err=1
41	fi
42	echo "Kwork report [Success]"
43}
44
45test_kwork_latency() {
46	echo "Kwork latency"
47	if ! perf kwork latency -i "${perfdata}" | grep -q "Avg delay"; then
48		echo "Kwork latency [Failed missing output]"
49		err=1
50	fi
51	echo "Kwork latency [Success]"
52}
53
54test_kwork_timehist() {
55	echo "Kwork timehist"
56	if ! perf kwork timehist -i "${perfdata}" | grep -q "Kwork name"; then
57		echo "Kwork timehist [Failed missing output]"
58		err=1
59	fi
60	echo "Kwork timehist [Success]"
61}
62
63test_kwork_top() {
64	echo "Kwork top"
65	if ! perf kwork top -i "${perfdata}" | grep -q "COMMAND"; then
66		echo "Kwork top [Failed missing output]"
67		err=1
68	fi
69	echo "Kwork top [Success]"
70}
71
72test_kwork_record
73test_kwork_report
74test_kwork_latency
75test_kwork_timehist
76test_kwork_top
77
78cleanup
79exit $err
80