#!/bin/bash # SPDX-License-Identifier: GPL-2.0 source ../tests/engine.sh test_begin set_timeout 30s RVDIR=/sys/kernel/tracing/rv/ # Help and basic tests check "verify help page" \ "$RV --help" 0 "usage: rv command" check "verify list subcommand help" \ "$RV list --help" 0 "list all available monitors" all_nested=$(grep : $RVDIR/available_monitors | cut -d: -f2 | paste -s | sed 's/\t/\\|/g') all_non_nested=$(grep -v : $RVDIR/available_monitors | cut -d: -f2 | paste -s | sed 's/\t/\\|/g') sched_monitors=$(grep sched: $RVDIR/available_monitors | cut -d: -f2 | paste -s | sed 's/\t/\\|/g') description_state="[[:space:]]\+[[:print:]]\+\[\(OFF\|ON\)\]" line_nested=" - \($all_nested\)${description_state}" line_non_nested="\($all_non_nested\)${description_state}" # List monitors and containers check "list all monitors" \ "$RV list" 0 "" "" "^\($line_nested\|$line_non_nested\)$" check_if_exists "list container" \ "$RV list sched" "$RVDIR/monitors/sched" \ "" "-- No monitor found in container sched --" \ "^\($sched_monitors\)${description_state}$" check_if_exists "list non-container" \ "$RV list wwnr" "$RVDIR/monitors/wwnr" \ "-- No monitor found in container wwnr --" \ "^\( - \)\?[[:alnum:]]\+${description_state}$" check "list incomplete container name" \ "$RV list s" 0 "-- No monitor found in container s --" # Error handling tests check "no command" \ "$RV" 1 "rv requires a command" check "invalid command" \ "$RV invalid" 1 "rv does not know the invalid command" test_end