#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: Test ftrace direct functions against kprobes

rmmod ftrace-direct ||:
if ! modprobe ftrace-direct ; then
  echo "No ftrace-direct sample module - please build with CONFIG_SAMPLE_FTRACE_DIRECT=m"
  exit_unresolved;
fi

if [ ! -f kprobe_events ]; then
	echo "No kprobe_events file -please build CONFIG_KPROBE_EVENTS"
	exit_unresolved;
fi

echo "Let the module run a little"
sleep 1

grep -q "my_direct_func: waking up" trace

rmmod ftrace-direct

echo 'p:kwake wake_up_process task=$arg1' > kprobe_events

start_direct() {
	echo > trace
	modprobe ftrace-direct
	sleep 1
	grep -q "my_direct_func: waking up" trace
}

stop_direct() {
	rmmod ftrace-direct
}

enable_probe() {
	echo > trace
	echo 1 > events/kprobes/kwake/enable
	sleep 1
	grep -q "kwake:" trace
}

disable_probe() {
	echo 0 > events/kprobes/kwake/enable
}

test_kprobes() {
	# probe -> direct -> no direct > no probe
	enable_probe
	start_direct
	stop_direct
	disable_probe

	# probe -> direct -> no probe > no direct
	enable_probe
	start_direct
	disable_probe
	stop_direct

	# direct -> probe -> no probe > no direct
	start_direct
	enable_probe
	disable_probe
	stop_direct

	# direct -> probe -> no direct > no noprobe
	start_direct
	enable_probe
	stop_direct
	disable_probe
}

test_kprobes

# Now do this with a second registered direct function
echo "Running with another ftrace direct function"

modprobe ftrace-direct-too

test_kprobes

rmmod ftrace-direct-too

echo > kprobe_events
