Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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}