#!/bin/sh
# description: event trigger - test inter-event histogram trigger onmatch action

do_reset() {
    reset_trigger
    echo > set_event
    clear_trace
}

fail() { #msg
    do_reset
    echo $1
    exit_fail
}

if [ ! -f set_event ]; then
    echo "event tracing is not supported"
    exit_unsupported
fi

if [ ! -f synthetic_events ]; then
    echo "synthetic event is not supported"
    exit_unsupported
fi

clear_synthetic_events
reset_tracer
do_reset

echo "Test create synthetic event"

echo 'wakeup_latency  u64 lat pid_t pid char comm[16]' > synthetic_events
if [ ! -d events/synthetic/wakeup_latency ]; then
    fail "Failed to create wakeup_latency synthetic event"
fi

echo "Test create histogram for synthetic event"
echo "Test histogram variables,simple expression support and onmatch action"

echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' > events/sched/sched_wakeup/trigger
echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0:onmatch(sched.sched_wakeup).wakeup_latency($wakeup_lat,next_pid,next_comm) if next_comm=="ping"' > events/sched/sched_switch/trigger
echo 'hist:keys=comm,pid,lat:wakeup_lat=lat:sort=lat' > events/synthetic/wakeup_latency/trigger
ping localhost -c 5
if ! grep -q "ping" events/synthetic/wakeup_latency/hist; then
    fail "Failed to create onmatch action inter-event histogram"
fi

do_reset

exit 0
