| #!/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 |