151 lines · 3.4 KB · Shell
RawDownload
#!/bin/bash# perf script task-analyzer tests# SPDX-License-Identifier: GPL-2.0 tmpdir=$(mktemp -d /tmp/perf-script-task-analyzer-XXXXX)err=0 cleanup() {  rm -f perf.data  rm -f perf.data.old  rm -f csv  rm -f csvsummary  rm -rf $tmpdir  trap - exit term int} trap_cleanup() {  cleanup  exit 1}trap trap_cleanup exit term int report() {	if [ $1 = 0 ]; then		echo "PASS: \"$2\""	else		echo "FAIL: \"$2\" Error message: \"$3\""		err=1	fi} check_exec_0() {	if [ $? != 0 ]; then		report 1 "invokation of ${$1} command failed"	fi} find_str_or_fail() {	grep -q "$1" $2	if [ $? != 0 ]; then		report 1 $3 "Failed to find required string:'${1}'."	else		report 0 $3	fi} prepare_perf_data() {	# 1s should be sufficient to catch at least some switches	perf record -e sched:sched_switch -a -- sleep 1 > /dev/null 2>&1} # check standard inkvokation with no argumentstest_basic() {	out="$tmpdir/perf.out"	perf script report task-analyzer > $out	check_exec_0 "perf"	find_str_or_fail "Comm" $out ${FUNCNAME[0]}} test_ns_rename(){	out="$tmpdir/perf.out"	perf script report task-analyzer --ns --rename-comms-by-tids 0:random > $out	check_exec_0 "perf"	find_str_or_fail "Comm" $out ${FUNCNAME[0]}} test_ms_filtertasks_highlight(){	out="$tmpdir/perf.out"	perf script report task-analyzer --ms --filter-tasks perf --highlight-tasks perf \	> $out	check_exec_0 "perf"	find_str_or_fail "Comm" $out ${FUNCNAME[0]}} test_extended_times_timelimit_limittasks() {	out="$tmpdir/perf.out"	perf script report task-analyzer --extended-times --time-limit :99999 \	--limit-to-tasks perf > $out	check_exec_0 "perf"	find_str_or_fail "Out-Out" $out ${FUNCNAME[0]}} test_summary() {	out="$tmpdir/perf.out"	perf script report task-analyzer --summary > $out	check_exec_0 "perf"	find_str_or_fail "Summary" $out ${FUNCNAME[0]}} test_summaryextended() {	out="$tmpdir/perf.out"	perf script report task-analyzer --summary-extended > $out	check_exec_0 "perf"	find_str_or_fail "Inter Task Times" $out ${FUNCNAME[0]}} test_summaryonly() {	out="$tmpdir/perf.out"	perf script report task-analyzer --summary-only > $out	check_exec_0 "perf"	find_str_or_fail "Summary" $out ${FUNCNAME[0]}} test_extended_times_summary_ns() {	out="$tmpdir/perf.out"	perf script report task-analyzer --extended-times --summary --ns > $out	check_exec_0 "perf"	find_str_or_fail "Out-Out" $out ${FUNCNAME[0]}	find_str_or_fail "Summary" $out ${FUNCNAME[0]}} test_csv() {	perf script report task-analyzer --csv csv > /dev/null	check_exec_0 "perf"	find_str_or_fail "Comm;" csv ${FUNCNAME[0]}} test_csv_extended_times() {	perf script report task-analyzer --csv csv --extended-times > /dev/null	check_exec_0 "perf"	find_str_or_fail "Out-Out;" csv ${FUNCNAME[0]}} test_csvsummary() {	perf script report task-analyzer --csv-summary csvsummary > /dev/null	check_exec_0 "perf"	find_str_or_fail "Comm;" csvsummary ${FUNCNAME[0]}} test_csvsummary_extended() {	perf script report task-analyzer --csv-summary csvsummary --summary-extended \	>/dev/null	check_exec_0 "perf"	find_str_or_fail "Out-Out;" csvsummary ${FUNCNAME[0]}} prepare_perf_datatest_basictest_ns_renametest_ms_filtertasks_highlighttest_extended_times_timelimit_limittaskstest_summarytest_summaryextendedtest_summaryonlytest_extended_times_summary_nstest_csvtest_csvsummarytest_csv_extended_timestest_csvsummary_extendedcleanupexit $err