162306a36Sopenharmony_ci#!/bin/sh
262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
362306a36Sopenharmony_ci# description: event trigger - test multiple histogram triggers
462306a36Sopenharmony_ci# requires: set_event events/sched/sched_process_fork/trigger events/sched/sched_process_fork/hist
562306a36Sopenharmony_ci# flags: instance
662306a36Sopenharmony_ci
762306a36Sopenharmony_cifail() { #msg
862306a36Sopenharmony_ci    echo $1
962306a36Sopenharmony_ci    exit_fail
1062306a36Sopenharmony_ci}
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciecho "Test histogram multiple triggers"
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciecho 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger
1562306a36Sopenharmony_ciecho 'hist:keys=parent_comm:vals=child_pid' >> events/sched/sched_process_fork/trigger
1662306a36Sopenharmony_cifor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
1762306a36Sopenharmony_cigrep parent_pid events/sched/sched_process_fork/hist > /dev/null || \
1862306a36Sopenharmony_ci    fail "hist trigger on sched_process_fork did not work"
1962306a36Sopenharmony_cigrep child events/sched/sched_process_fork/hist > /dev/null || \
2062306a36Sopenharmony_ci    fail "hist trigger on sched_process_fork did not work"
2162306a36Sopenharmony_ciCOMM=`cat /proc/$$/comm`
2262306a36Sopenharmony_cigrep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \
2362306a36Sopenharmony_ci    fail "string key on sched_process_fork did not work"
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_cireset_trigger
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ciecho "Test histogram with its name"
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciecho 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_fork/trigger
3062306a36Sopenharmony_cifor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
3162306a36Sopenharmony_cigrep test_hist events/sched/sched_process_fork/hist > /dev/null || \
3262306a36Sopenharmony_ci    fail "named event on sched_process_fork did not work"
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ciecho "Test same named histogram on different events"
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ciecho 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_exit/trigger
3762306a36Sopenharmony_cifor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
3862306a36Sopenharmony_cigrep test_hist events/sched/sched_process_exit/hist > /dev/null || \
3962306a36Sopenharmony_ci    fail "named event on sched_process_fork did not work"
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_cidiffs=`diff events/sched/sched_process_exit/hist events/sched/sched_process_fork/hist | wc -l`
4262306a36Sopenharmony_citest $diffs -eq 0 || fail "Same name histograms are not same"
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ciexit 0
45