#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: event trigger - test multiple histogram triggers
# flags: instance

fail() { #msg
    echo $1
    exit_fail
}

if [ ! -f set_event -o ! -d events/sched ]; then
    echo "event tracing is not supported"
    exit_unsupported
fi

if [ ! -f events/sched/sched_process_fork/trigger ]; then
    echo "event trigger is not supported"
    exit_unsupported
fi

if [ ! -f events/sched/sched_process_fork/hist ]; then
    echo "hist trigger is not supported"
    exit_unsupported
fi

echo "Test histogram multiple tiggers"

echo 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger
echo 'hist:keys=parent_comm:vals=child_pid' >> events/sched/sched_process_fork/trigger
for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
grep parent_pid events/sched/sched_process_fork/hist > /dev/null || \
    fail "hist trigger on sched_process_fork did not work"
grep child events/sched/sched_process_fork/hist > /dev/null || \
    fail "hist trigger on sched_process_fork did not work"
COMM=`cat /proc/$$/comm`
grep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \
    fail "string key on sched_process_fork did not work"

reset_trigger

echo "Test histogram with its name"

echo 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_fork/trigger
for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
grep test_hist events/sched/sched_process_fork/hist > /dev/null || \
    fail "named event on sched_process_fork did not work"

echo "Test same named histogram on different events"

echo 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_exit/trigger
for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
grep test_hist events/sched/sched_process_exit/hist > /dev/null || \
    fail "named event on sched_process_fork did not work"

diffs=`diff events/sched/sched_process_exit/hist events/sched/sched_process_fork/hist | wc -l`
test $diffs -eq 0 || fail "Same name histograms are not same"

exit 0
