e2ef5268b7e9e95e964a96ff6cc8883c180c8483
[linux-2.6-block.git] / tools / testing / selftests / ftrace / test.d / trigger / inter-event / trigger-trace-action-hist.tc
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-2.0
3 # description: event trigger - test inter-event histogram trigger trace action
4 # requires: set_event synthetic_events events/sched/sched_process_fork/hist
5
6 fail() { #msg
7     echo $1
8     exit_fail
9 }
10
11 grep -q "trace(<synthetic_event>" README || exit_unsupported # version issue
12
13 echo "Test create synthetic event"
14
15 echo 'wakeup_latency  u64 lat pid_t pid char comm[16]' > synthetic_events
16 if [ ! -d events/synthetic/wakeup_latency ]; then
17     fail "Failed to create wakeup_latency synthetic event"
18 fi
19
20 echo "Test create histogram for synthetic event using trace action"
21 echo "Test histogram variables,simple expression support and trace action"
22
23 echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' > events/sched/sched_wakeup/trigger
24 echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0:onmatch(sched.sched_wakeup).trace(wakeup_latency,$wakeup_lat,next_pid,next_comm) if next_comm=="ping"' > events/sched/sched_switch/trigger
25 echo 'hist:keys=comm,pid,lat:wakeup_lat=lat:sort=lat' > events/synthetic/wakeup_latency/trigger
26
27 ping $LOCALHOST -c 5
28
29 if ! grep -q "ping" events/synthetic/wakeup_latency/hist; then
30     fail "Failed to create trace action inter-event histogram"
31 fi
32
33 exit 0