1adc1dd00SVeronika Molnarova#!/bin/bash 25afd6d38SVeronika Molnarova# perf_probe :: Basic perf probe functionality (exclusive) 3adc1dd00SVeronika Molnarova# SPDX-License-Identifier: GPL-2.0 4adc1dd00SVeronika Molnarova 5adc1dd00SVeronika Molnarova# 6adc1dd00SVeronika Molnarova# test_basic of perf_probe test 7adc1dd00SVeronika Molnarova# Author: Michael Petlan <[email protected]> 8adc1dd00SVeronika Molnarova# Author: Masami Hiramatsu <[email protected]> 9adc1dd00SVeronika Molnarova# 10adc1dd00SVeronika Molnarova# Description: 11adc1dd00SVeronika Molnarova# 12adc1dd00SVeronika Molnarova# This test tests basic functionality of perf probe command. 13adc1dd00SVeronika Molnarova# 14adc1dd00SVeronika Molnarova 15adc1dd00SVeronika Molnarova# include working environment 16adc1dd00SVeronika Molnarova. ../common/init.sh 17adc1dd00SVeronika Molnarova 18adc1dd00SVeronika MolnarovaTEST_RESULT=0 19adc1dd00SVeronika Molnarova 20adc1dd00SVeronika Molnarovaif ! check_kprobes_available; then 21adc1dd00SVeronika Molnarova print_overall_skipped 22*1ab138feSVeronika Molnarova exit 2 23adc1dd00SVeronika Molnarovafi 24adc1dd00SVeronika Molnarova 25adc1dd00SVeronika Molnarova 26adc1dd00SVeronika Molnarova### help message 27adc1dd00SVeronika Molnarova 28adc1dd00SVeronika Molnarovaif [ "$PARAM_GENERAL_HELP_TEXT_CHECK" = "y" ]; then 29adc1dd00SVeronika Molnarova # test that a help message is shown and looks reasonable 30adc1dd00SVeronika Molnarova $CMD_PERF probe --help > $LOGS_DIR/basic_helpmsg.log 2> $LOGS_DIR/basic_helpmsg.err 31adc1dd00SVeronika Molnarova PERF_EXIT_CODE=$? 32adc1dd00SVeronika Molnarova 33adc1dd00SVeronika Molnarova ../common/check_all_patterns_found.pl "PERF-PROBE" "NAME" "SYNOPSIS" "DESCRIPTION" "OPTIONS" "PROBE\s+SYNTAX" "PROBE\s+ARGUMENT" "LINE\s+SYNTAX" < $LOGS_DIR/basic_helpmsg.log 34adc1dd00SVeronika Molnarova CHECK_EXIT_CODE=$? 35adc1dd00SVeronika Molnarova ../common/check_all_patterns_found.pl "LAZY\s+MATCHING" "FILTER\s+PATTERN" "EXAMPLES" "SEE\s+ALSO" < $LOGS_DIR/basic_helpmsg.log 36adc1dd00SVeronika Molnarova (( CHECK_EXIT_CODE += $? )) 37adc1dd00SVeronika Molnarova ../common/check_all_patterns_found.pl "vmlinux" "module=" "source=" "verbose" "quiet" "add=" "del=" "list.*EVENT" "line=" "vars=" "externs" < $LOGS_DIR/basic_helpmsg.log 38adc1dd00SVeronika Molnarova (( CHECK_EXIT_CODE += $? )) 39adc1dd00SVeronika Molnarova ../common/check_all_patterns_found.pl "no-inlines" "funcs.*FILTER" "filter=FILTER" "force" "dry-run" "max-probes" "exec=" "demangle-kernel" < $LOGS_DIR/basic_helpmsg.log 40adc1dd00SVeronika Molnarova (( CHECK_EXIT_CODE += $? )) 41adc1dd00SVeronika Molnarova ../common/check_no_patterns_found.pl "No manual entry for" < $LOGS_DIR/basic_helpmsg.err 42adc1dd00SVeronika Molnarova (( CHECK_EXIT_CODE += $? )) 43adc1dd00SVeronika Molnarova 44adc1dd00SVeronika Molnarova print_results $PERF_EXIT_CODE $CHECK_EXIT_CODE "help message" 45adc1dd00SVeronika Molnarova (( TEST_RESULT += $? )) 46adc1dd00SVeronika Molnarovaelse 47adc1dd00SVeronika Molnarova print_testcase_skipped "help message" 48adc1dd00SVeronika Molnarovafi 49adc1dd00SVeronika Molnarova 50adc1dd00SVeronika Molnarova 51adc1dd00SVeronika Molnarova### usage message 52adc1dd00SVeronika Molnarova 53adc1dd00SVeronika Molnarova# without any args perf-probe should print usage 54adc1dd00SVeronika Molnarova$CMD_PERF probe 2> $LOGS_DIR/basic_usage.log > /dev/null 55adc1dd00SVeronika Molnarova 56adc1dd00SVeronika Molnarova../common/check_all_patterns_found.pl "[Uu]sage" "perf probe" "verbose" "quiet" "add" "del" "force" "line" "vars" "externs" "range" < $LOGS_DIR/basic_usage.log 57adc1dd00SVeronika MolnarovaCHECK_EXIT_CODE=$? 58adc1dd00SVeronika Molnarova 59adc1dd00SVeronika Molnarovaprint_results 0 $CHECK_EXIT_CODE "usage message" 60adc1dd00SVeronika Molnarova(( TEST_RESULT += $? )) 61adc1dd00SVeronika Molnarova 62adc1dd00SVeronika Molnarova 63adc1dd00SVeronika Molnarova### quiet switch 64adc1dd00SVeronika Molnarova 65adc1dd00SVeronika Molnarova# '--quiet' should mute all output 66adc1dd00SVeronika Molnarova$CMD_PERF probe --quiet --add vfs_read > $LOGS_DIR/basic_quiet01.log 2> $LOGS_DIR/basic_quiet01.err 67adc1dd00SVeronika MolnarovaPERF_EXIT_CODE=$? 68adc1dd00SVeronika Molnarova$CMD_PERF probe --quiet --del vfs_read > $LOGS_DIR/basic_quiet03.log 2> $LOGS_DIR/basic_quiet02.err 69adc1dd00SVeronika Molnarova(( PERF_EXIT_CODE += $? )) 70adc1dd00SVeronika Molnarova 71adc1dd00SVeronika Molnarovatest "`cat $LOGS_DIR/basic_quiet*log $LOGS_DIR/basic_quiet*err | wc -l`" -eq 0 72adc1dd00SVeronika MolnarovaCHECK_EXIT_CODE=$? 73adc1dd00SVeronika Molnarova 74adc1dd00SVeronika Molnarovaprint_results $PERF_EXIT_CODE $CHECK_EXIT_CODE "quiet switch" 75adc1dd00SVeronika Molnarova(( TEST_RESULT += $? )) 76adc1dd00SVeronika Molnarova 77adc1dd00SVeronika Molnarova 78adc1dd00SVeronika Molnarova# print overall results 79adc1dd00SVeronika Molnarovaprint_overall_results "$TEST_RESULT" 80adc1dd00SVeronika Molnarovaexit $? 81