#!/bin/bash # perf kwork tests # SPDX-License-Identifier: GPL-2.0 set -e # Root permissions required for tracing events. if [ "$(id -u)" != 0 ]; then echo "[Skip] No root permission" exit 2 fi err=0 perfdata=$(mktemp /tmp/__perf_test_kwork.perf.data.XXXXX) cleanup() { rm -f "${perfdata}" rm -f "${perfdata}".old trap - EXIT TERM INT } trap_cleanup() { echo "Unexpected signal in ${FUNCNAME[1]}" cleanup exit 1 } trap trap_cleanup EXIT TERM INT test_kwork_record() { echo "Kwork record" perf kwork record -o "${perfdata}" -- sleep 1 echo "Kwork record [Success]" } test_kwork_report() { echo "Kwork report" if ! perf kwork report -i "${perfdata}" | grep -q "Kwork Name"; then echo "Kwork report [Failed missing output]" err=1 fi echo "Kwork report [Success]" } test_kwork_latency() { echo "Kwork latency" if ! perf kwork latency -i "${perfdata}" | grep -q "Avg delay"; then echo "Kwork latency [Failed missing output]" err=1 fi echo "Kwork latency [Success]" } test_kwork_timehist() { echo "Kwork timehist" if ! perf kwork timehist -i "${perfdata}" | grep -q "Kwork name"; then echo "Kwork timehist [Failed missing output]" err=1 fi echo "Kwork timehist [Success]" } test_kwork_top() { echo "Kwork top" if ! perf kwork top -i "${perfdata}" | grep -q "COMMAND"; then echo "Kwork top [Failed missing output]" err=1 fi echo "Kwork top [Success]" } test_kwork_record test_kwork_report test_kwork_latency test_kwork_timehist test_kwork_top cleanup exit $err