xref: /linux/tools/verification/rv/tests/rv_list.t (revision 55ee4b931a7ffedc886175d265dd6e6d08fd4151)
1*92f0ce55SGabriele Monaco#!/bin/bash
2*92f0ce55SGabriele Monaco# SPDX-License-Identifier: GPL-2.0
3*92f0ce55SGabriele Monacosource ../tests/engine.sh
4*92f0ce55SGabriele Monacotest_begin
5*92f0ce55SGabriele Monaco
6*92f0ce55SGabriele Monacoset_timeout 30s
7*92f0ce55SGabriele Monaco
8*92f0ce55SGabriele MonacoRVDIR=/sys/kernel/tracing/rv/
9*92f0ce55SGabriele Monaco
10*92f0ce55SGabriele Monaco# Help and basic tests
11*92f0ce55SGabriele Monacocheck "verify help page" \
12*92f0ce55SGabriele Monaco	"$RV --help" 0 "usage: rv command"
13*92f0ce55SGabriele Monaco
14*92f0ce55SGabriele Monacocheck "verify list subcommand help" \
15*92f0ce55SGabriele Monaco	"$RV list --help" 0 "list all available monitors"
16*92f0ce55SGabriele Monaco
17*92f0ce55SGabriele Monacoall_nested=$(grep : $RVDIR/available_monitors | cut -d: -f2 | paste -s | sed 's/\t/\\|/g')
18*92f0ce55SGabriele Monacoall_non_nested=$(grep -v : $RVDIR/available_monitors | cut -d: -f2 | paste -s | sed 's/\t/\\|/g')
19*92f0ce55SGabriele Monacosched_monitors=$(grep sched: $RVDIR/available_monitors | cut -d: -f2 | paste -s | sed 's/\t/\\|/g')
20*92f0ce55SGabriele Monacodescription_state="[[:space:]]\+[[:print:]]\+\[\(OFF\|ON\)\]"
21*92f0ce55SGabriele Monacoline_nested=" - \($all_nested\)${description_state}"
22*92f0ce55SGabriele Monacoline_non_nested="\($all_non_nested\)${description_state}"
23*92f0ce55SGabriele Monaco
24*92f0ce55SGabriele Monaco# List monitors and containers
25*92f0ce55SGabriele Monacocheck "list all monitors" \
26*92f0ce55SGabriele Monaco	"$RV list" 0 "" "" "^\($line_nested\|$line_non_nested\)$"
27*92f0ce55SGabriele Monaco
28*92f0ce55SGabriele Monacocheck_if_exists "list container" \
29*92f0ce55SGabriele Monaco	"$RV list sched" "$RVDIR/monitors/sched" \
30*92f0ce55SGabriele Monaco	"" "-- No monitor found in container sched --" \
31*92f0ce55SGabriele Monaco	"^\($sched_monitors\)${description_state}$"
32*92f0ce55SGabriele Monaco
33*92f0ce55SGabriele Monacocheck_if_exists "list non-container" \
34*92f0ce55SGabriele Monaco	"$RV list wwnr" "$RVDIR/monitors/wwnr" \
35*92f0ce55SGabriele Monaco	"-- No monitor found in container wwnr --" \
36*92f0ce55SGabriele Monaco	"^\( - \)\?[[:alnum:]]\+${description_state}$"
37*92f0ce55SGabriele Monaco
38*92f0ce55SGabriele Monacocheck "list incomplete container name" \
39*92f0ce55SGabriele Monaco	"$RV list s" 0 "-- No monitor found in container s --"
40*92f0ce55SGabriele Monaco
41*92f0ce55SGabriele Monaco# Error handling tests
42*92f0ce55SGabriele Monacocheck "no command" \
43*92f0ce55SGabriele Monaco	"$RV" 1 "rv requires a command"
44*92f0ce55SGabriele Monaco
45*92f0ce55SGabriele Monacocheck "invalid command" \
46*92f0ce55SGabriele Monaco	"$RV invalid" 1 "rv does not know the invalid command"
47*92f0ce55SGabriele Monaco
48*92f0ce55SGabriele Monacotest_end
49