18c2ecf20Sopenharmony_ci#!/bin/sh
28c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
38c2ecf20Sopenharmony_ci# description: event trigger - test multiple histogram triggers
48c2ecf20Sopenharmony_ci# requires: set_event events/sched/sched_process_fork/trigger events/sched/sched_process_fork/hist
58c2ecf20Sopenharmony_ci# flags: instance
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cifail() { #msg
88c2ecf20Sopenharmony_ci    echo $1
98c2ecf20Sopenharmony_ci    exit_fail
108c2ecf20Sopenharmony_ci}
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ciecho "Test histogram multiple triggers"
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ciecho 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger
158c2ecf20Sopenharmony_ciecho 'hist:keys=parent_comm:vals=child_pid' >> events/sched/sched_process_fork/trigger
168c2ecf20Sopenharmony_cifor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
178c2ecf20Sopenharmony_cigrep parent_pid events/sched/sched_process_fork/hist > /dev/null || \
188c2ecf20Sopenharmony_ci    fail "hist trigger on sched_process_fork did not work"
198c2ecf20Sopenharmony_cigrep child events/sched/sched_process_fork/hist > /dev/null || \
208c2ecf20Sopenharmony_ci    fail "hist trigger on sched_process_fork did not work"
218c2ecf20Sopenharmony_ciCOMM=`cat /proc/$$/comm`
228c2ecf20Sopenharmony_cigrep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \
238c2ecf20Sopenharmony_ci    fail "string key on sched_process_fork did not work"
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_cireset_trigger
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ciecho "Test histogram with its name"
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ciecho 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_fork/trigger
308c2ecf20Sopenharmony_cifor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
318c2ecf20Sopenharmony_cigrep test_hist events/sched/sched_process_fork/hist > /dev/null || \
328c2ecf20Sopenharmony_ci    fail "named event on sched_process_fork did not work"
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ciecho "Test same named histogram on different events"
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ciecho 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_exit/trigger
378c2ecf20Sopenharmony_cifor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
388c2ecf20Sopenharmony_cigrep test_hist events/sched/sched_process_exit/hist > /dev/null || \
398c2ecf20Sopenharmony_ci    fail "named event on sched_process_fork did not work"
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_cidiffs=`diff events/sched/sched_process_exit/hist events/sched/sched_process_fork/hist | wc -l`
428c2ecf20Sopenharmony_citest $diffs -eq 0 || fail "Same name histograms are not same"
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ciexit 0
45