#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: ftrace - function glob filters

# Make sure that function glob matching filter works.

if ! grep -q function available_tracers; then
    echo "no function tracer configured"
    exit_unsupported
fi

disable_tracing
clear_trace

ftrace_filter_check() { # glob grep
  echo "$1" > set_ftrace_filter
  cut -f1 -d" " set_ftrace_filter > $TMPDIR/actual
  cut -f1 -d" " available_filter_functions | grep "$2" > $TMPDIR/expected
  DIFF=`diff $TMPDIR/actual $TMPDIR/expected`
  test -z "$DIFF"
}

# filter by *, front match
ftrace_filter_check '*schedule' '^.*schedule$'

# filter by *, middle match
ftrace_filter_check '*schedule*' '^.*schedule.*$'

# filter by *, end match
ftrace_filter_check 'schedule*' '^schedule.*$'

# filter by *mid*end
ftrace_filter_check '*aw*lock' '.*aw.*lock$'

# filter by start*mid*
ftrace_filter_check 'mutex*try*' '^mutex.*try.*'

# Advanced full-glob matching feature is recently supported.
# Skip the tests if we are sure the kernel does not support it.
if grep -q 'accepts: .* glob-matching-pattern' README ; then

# filter by *, both side match
ftrace_filter_check 'sch*ule' '^sch.*ule$'

# filter by char class.
ftrace_filter_check '[Ss]y[Ss]_*' '^[Ss]y[Ss]_.*$'

# filter by ?, schedule is always good
if ! echo "sch?dule" > set_ftrace_filter; then
    # test for powerpc 64
    if ! echo ".sch?dule" > set_ftrace_filter; then
	fail "can not enable schedule filter"
    fi
    cat set_ftrace_filter | grep '^.schedule$'
else
    cat set_ftrace_filter | grep '^schedule$'
fi

fi

echo > set_ftrace_filter
enable_tracing
