File Index
Files and directories
Sign in
FILE

rv_monitor_reactor.tc

File preview with syntax highlighting.

linux-6.19.14/tools/testing/selftests/verification/test.d/rv_monitor_reactor.tc PLAIN TEXT
 1#!/bin/sh
 2# SPDX-License-Identifier: GPL-2.0-or-later
 3# description: Test monitor reactor setting
 4# requires: available_reactors
 5
 6test_monitor_reactor() {
 7    local monitor="$1"
 8    local prefix="$2" # nested monitors
 9
10    while read -r reactor; do
11        [ "$reactor" = nop ] && continue
12
13        echo "$reactor" > "monitors/$prefix$monitor/reactors"
14        grep -q "\\[$reactor\\]" "monitors/$prefix$monitor/reactors"
15    done < available_reactors
16
17    echo nop > "monitors/$prefix$monitor/reactors"
18    grep -q "\\[nop\\]" "monitors/$prefix$monitor/reactors"
19}
20
21test_container_monitor() {
22    local monitor="$1"
23	local nested
24
25    while read -r reactor; do
26        [ "$reactor" = nop ] && continue
27
28        echo "$reactor" > "monitors/$monitor/reactors"
29        grep -q "\\[$reactor\\]" "monitors/$monitor/reactors"
30
31        for nested_dir in "monitors/$monitor"/*; do
32            [ -d "$nested_dir" ] || continue
33            nested=$(basename "$nested_dir")
34            grep -q "\\[$reactor\\]" "monitors/$monitor/$nested/reactors"
35        done
36    done < available_reactors
37	test -n "$nested"
38
39    echo nop > "monitors/$monitor/reactors"
40    grep -q "\\[nop\\]" "monitors/$monitor/reactors"
41
42    for nested_dir in "monitors/$monitor"/*; do
43        [ -d "$nested_dir" ] || continue
44        nested=$(basename "$nested_dir")
45        grep -q "\\[nop\\]" "monitors/$monitor/$nested/reactors"
46    done
47
48    for nested_dir in "monitors/$monitor"/*; do
49        [ -d "$nested_dir" ] || continue
50        nested=$(basename "$nested_dir")
51        test_monitor_reactor "$nested" "$monitor/"
52    done
53}
54
55for monitor_dir in monitors/*; do
56    monitor=$(basename "$monitor_dir")
57
58    if find "$monitor_dir" -mindepth 1 -type d | grep -q .; then
59        test_container_monitor "$monitor"
60    else
61        test_monitor_reactor "$monitor"
62    fi
63done
64
65monitor=$(ls /sys/kernel/tracing/rv/monitors -1 | head -n 1)
66test -f "monitors/$monitor/reactors"
67! echo non_existent_reactor > "monitors/$monitor/reactors"
68! grep -q "\\[non_existent_reactor\\]" "monitors/$monitor/reactors"
~/ Read-only file preview.