1# SPDX-License-Identifier: GPL-2.0 2 3setup_remote() 4{ 5 local name=$1 6 7 [ -e $TRACING_DIR/remotes/$name/write_event ] || exit_unresolved 8 9 cd remotes/$name/ 10 echo 0 > tracing_on 11 clear_trace 12 echo 7 > buffer_size_kb 13 echo 0 > events/enable 14 echo 1 > events/$name/selftest/enable 15 echo 1 > tracing_on 16} 17 18setup_remote_test() 19{ 20 [ -d $TRACING_DIR/remotes/test/ ] || modprobe remote_test || exit_unresolved 21 22 setup_remote "test" 23} 24 25assert_loaded() 26{ 27 grep -q "(loaded)" buffer_size_kb || return 1 28} 29 30assert_unloaded() 31{ 32 grep -q "(unloaded)" buffer_size_kb || return 1 33} 34 35reload_remote() 36{ 37 echo 0 > tracing_on 38 clear_trace 39 assert_unloaded 40 echo 1 > tracing_on 41 assert_loaded 42} 43 44dump_trace_pipe() 45{ 46 output=$(mktemp $TMPDIR/remote_test.XXXXXX) 47 cat trace_pipe > $output & 48 pid=$! 49 sleep 1 50 kill -1 $pid 51 52 echo $output 53} 54 55check_trace() 56{ 57 start_id="$1" 58 end_id="$2" 59 file="$3" 60 61 # Ensure the file is not empty 62 test -n "$(head $file)" 63 64 prev_ts=0 65 id=0 66 67 # Only keep <timestamp> <id> 68 tmp=$(mktemp $TMPDIR/remote_test.XXXXXX) 69 sed -e 's/\[[0-9]*\]\s*\([0-9]*.[0-9]*\): [a-z]* id=\([0-9]*\)/\1 \2/' $file > $tmp 70 71 while IFS= read -r line; do 72 ts=$(echo $line | cut -d ' ' -f 1) 73 id=$(echo $line | cut -d ' ' -f 2) 74 75 test $(echo "$ts>$prev_ts" | bc) -eq 1 76 test $id -eq $start_id 77 78 prev_ts=$ts 79 start_id=$((start_id + 1)) 80 done < $tmp 81 82 test $id -eq $end_id 83 rm $tmp 84} 85 86get_cpu_ids() 87{ 88 sed -n 's/^processor\s*:\s*\([0-9]\+\).*/\1/p' /proc/cpuinfo 89} 90 91get_page_size() 92{ 93 sed -ne 's/^.*data.*size:\([0-9][0-9]*\).*/\1/p' events/header_page 94} 95 96get_selftest_event_size() 97{ 98 sed -ne 's/^.*field:.*;.*size:\([0-9][0-9]*\);.*/\1/p' events/*/selftest/format | awk '{s+=$1} END {print s}' 99} 100