80 lines · bash
1#!/bin/bash2 3# SPDX-License-Identifier: GPL-2.04 5#6# test_invalid_options of perf_probe test7# Author: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>8# Author: Michael Petlan <mpetlan@redhat.com>9#10# Description:11#12# This test checks whether the invalid and incompatible options are reported13#14 15# include working environment16. ../common/init.sh17 18TEST_RESULT=019 20if ! check_kprobes_available; then21 print_overall_skipped22 exit 023fi24 25 26### missing argument27 28# some options require an argument29for opt in '-a' '-d' '-L' '-V'; do30 ! $CMD_PERF probe $opt 2> $LOGS_DIR/invalid_options_missing_argument$opt.err31 PERF_EXIT_CODE=$?32 33 ../common/check_all_patterns_found.pl "Error: switch .* requires a value" < $LOGS_DIR/invalid_options_missing_argument$opt.err34 CHECK_EXIT_CODE=$?35 36 print_results $PERF_EXIT_CODE $CHECK_EXIT_CODE "missing argument for $opt"37 (( TEST_RESULT += $? ))38done39 40 41### unnecessary argument42 43# some options may omit the argument44for opt in '-F' '-l'; do45 $CMD_PERF probe -F > /dev/null 2> $LOGS_DIR/invalid_options_unnecessary_argument$opt.err46 PERF_EXIT_CODE=$?47 48 test ! -s $LOGS_DIR/invalid_options_unnecessary_argument$opt.err49 CHECK_EXIT_CODE=$?50 51 print_results $PERF_EXIT_CODE $CHECK_EXIT_CODE "unnecessary argument for $opt"52 (( TEST_RESULT += $? ))53done54 55 56### mutually exclusive options57 58# some options are mutually exclusive59test -e $LOGS_DIR/invalid_options_mutually_exclusive.log && rm -f $LOGS_DIR/invalid_options_mutually_exclusive.log60for opt in '-a xxx -d xxx' '-a xxx -L foo' '-a xxx -V foo' '-a xxx -l' '-a xxx -F' \61 '-d xxx -L foo' '-d xxx -V foo' '-d xxx -l' '-d xxx -F' \62 '-L foo -V bar' '-L foo -l' '-L foo -F' '-V foo -l' '-V foo -F' '-l -F'; do63 ! $CMD_PERF probe $opt > /dev/null 2> $LOGS_DIR/aux.log64 PERF_EXIT_CODE=$?65 66 ../common/check_all_patterns_found.pl "Error: switch .+ cannot be used with switch .+" < $LOGS_DIR/aux.log67 CHECK_EXIT_CODE=$?68 69 print_results $PERF_EXIT_CODE $CHECK_EXIT_CODE "mutually exclusive options :: $opt"70 (( TEST_RESULT += $? ))71 72 # gather the logs73 cat $LOGS_DIR/aux.log | grep "Error" >> $LOGS_DIR/invalid_options_mutually_exclusive.log74done75 76 77# print overall results78print_overall_results "$TEST_RESULT"79exit $?80