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 28} 29 30assert_unloaded() 31{ 32 grep -q "(unloaded)" buffer_size_kb 33} 34 35dump_trace_pipe() 36{ 37 output=$(mktemp $TMPDIR/remote_test.XXXXXX) 38 cat trace_pipe > $output & 39 pid=$! 40 sleep 1 41 kill -1 $pid 42 43 echo $output 44} 45 46check_trace() 47{ 48 start_id="$1" 49 end_id="$2" 50 file="$3" 51 52 # Ensure the file is not empty 53 test -n "$(head $file)" 54 55 prev_ts=0 56 id=0 57 58 # Only keep <timestamp> <id> 59 tmp=$(mktemp $TMPDIR/remote_test.XXXXXX) 60 sed -e 's/\[[0-9]*\]\s*\([0-9]*.[0-9]*\): [a-z]* id=\([0-9]*\)/\1 \2/' $file > $tmp 61 62 while IFS= read -r line; do 63 ts=$(echo $line | cut -d ' ' -f 1) 64 id=$(echo $line | cut -d ' ' -f 2) 65 66 test $(echo "$ts>$prev_ts" | bc) -eq 1 67 test $id -eq $start_id 68 69 prev_ts=$ts 70 start_id=$((start_id + 1)) 71 done < $tmp 72 73 test $id -eq $end_id 74 rm $tmp 75} 76 77get_cpu_ids() 78{ 79 sed -n 's/^processor\s*:\s*\([0-9]\+\).*/\1/p' /proc/cpuinfo 80} 81 82get_page_size() { 83 sed -ne 's/^.*data.*size:\([0-9][0-9]*\).*/\1/p' events/header_page 84} 85 86get_selftest_event_size() { 87 sed -ne 's/^.*field:.*;.*size:\([0-9][0-9]*\);.*/\1/p' events/*/selftest/format | awk '{s+=$1} END {print s}' 88} 89