1101704Smjacob#!/bin/sh
2101704Smjacob# SPDX-License-Identifier: GPL-2.0
3101704Smjacob# description: event trigger - test inter-event histogram trigger trace action with dynamic string param (legacy stack)
4101704Smjacob# requires: set_event synthetic_events events/sched/sched_process_exec/hist "long[] stack' >> synthetic_events":README
5101704Smjacob
6101704Smjacobfail() { #msg
7101704Smjacob    echo $1
8101704Smjacob    exit_fail
9101704Smjacob}
10101704Smjacob
11101704Smjacobecho "Test create synthetic event with stack"
12101704Smjacob
13101704Smjacob# Test the old stacktrace keyword (for backward compatibility)
14101704Smjacobecho 's:wake_lat pid_t pid; u64 delta; unsigned long[] stack;' > dynamic_events
15101704Smjacobecho 'hist:keys=next_pid:ts=common_timestamp.usecs,st=stacktrace  if prev_state == 1||prev_state == 2' >> events/sched/sched_switch/trigger
16101704Smjacobecho 'hist:keys=prev_pid:delta=common_timestamp.usecs-$ts,s=$st:onmax($delta).trace(wake_lat,prev_pid,$delta,$s)' >> events/sched/sched_switch/trigger
17101704Smjacobecho 1 > events/synthetic/wake_lat/enable
18101704Smjacobsleep 1
19101704Smjacob
20101704Smjacobif ! grep -q "=>.*sched" trace; then
21101704Smjacob    fail "Failed to create synthetic event with stack"
22101704Smjacobfi
23101704Smjacob
24101704Smjacobexit 0
25101704Smjacob