File Index
Files and directories
Sign in
FILE

rv_monitor_enable_disable.tc

File preview with syntax highlighting.

linux-6.19.14/tools/testing/selftests/verification/test.d/rv_monitor_enable_disable.tc PLAIN TEXT
 1#!/bin/sh
 2# SPDX-License-Identifier: GPL-2.0-or-later
 3# description: Test monitor enable/disable
 4
 5test_simple_monitor() {
 6    local monitor="$1"
 7    local prefix="$2" # nested monitors
 8
 9    echo 1 > "monitors/$prefix$monitor/enable"
10    grep -q "$monitor$" enabled_monitors
11
12    echo 0 > "monitors/$prefix$monitor/enable"
13    ! grep -q "$monitor$" enabled_monitors
14
15    echo "$monitor" >> enabled_monitors
16    grep -q 1 "monitors/$prefix$monitor/enable"
17
18    echo "!$monitor" >> enabled_monitors
19    grep -q 0 "monitors/$prefix$monitor/enable"
20}
21
22test_container_monitor() {
23    local monitor="$1"
24	local nested
25
26    echo 1 > "monitors/$monitor/enable"
27    grep -q "^$monitor$" enabled_monitors
28
29    for nested_dir in "monitors/$monitor"/*; do
30        [ -d "$nested_dir" ] || continue
31        nested=$(basename "$nested_dir")
32        grep -q "^$monitor:$nested$" enabled_monitors
33    done
34	test -n "$nested"
35
36    echo 0 > "monitors/$monitor/enable"
37    ! grep -q "^$monitor$" enabled_monitors
38
39    for nested_dir in "monitors/$monitor"/*; do
40        [ -d "$nested_dir" ] || continue
41        nested=$(basename "$nested_dir")
42        ! grep -q "^$monitor:$nested$" enabled_monitors
43    done
44
45    echo "$monitor" >> enabled_monitors
46    grep -q 1 "monitors/$monitor/enable"
47
48    for nested_dir in "monitors/$monitor"/*; do
49        [ -d "$nested_dir" ] || continue
50        nested=$(basename "$nested_dir")
51        grep -q "^$monitor:$nested$" enabled_monitors
52    done
53
54    echo "!$monitor" >> enabled_monitors
55    grep -q 0 "monitors/$monitor/enable"
56
57    for nested_dir in "monitors/$monitor"/*; do
58        [ -d "$nested_dir" ] || continue
59        nested=$(basename "$nested_dir")
60		test_simple_monitor "$nested" "$monitor/"
61    done
62}
63
64for monitor_dir in monitors/*; do
65    monitor=$(basename "$monitor_dir")
66
67    if find "$monitor_dir" -mindepth 1 -type d | grep -q .; then
68        test_container_monitor "$monitor"
69    else
70        test_simple_monitor "$monitor"
71    fi
72done
73
74! echo non_existent_monitor > enabled_monitors
75! grep -q "^non_existent_monitor$" enabled_monitors
~/ Read-only file preview.