18c2ecf20Sopenharmony_ci#!/bin/sh 28c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 38c2ecf20Sopenharmony_ci# description: event trigger - test histogram trigger 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 basic trigger" 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciecho 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger 158c2ecf20Sopenharmony_cifor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 168c2ecf20Sopenharmony_cigrep parent_pid events/sched/sched_process_fork/hist > /dev/null || \ 178c2ecf20Sopenharmony_ci fail "hist trigger on sched_process_fork did not work" 188c2ecf20Sopenharmony_cigrep child events/sched/sched_process_fork/hist > /dev/null || \ 198c2ecf20Sopenharmony_ci fail "hist trigger on sched_process_fork did not work" 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_cireset_trigger 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ciecho "Test histogram with compound keys" 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ciecho 'hist:keys=parent_pid,child_pid' > events/sched/sched_process_fork/trigger 268c2ecf20Sopenharmony_cifor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 278c2ecf20Sopenharmony_cigrep '^{ parent_pid:.*, child_pid:.*}' events/sched/sched_process_fork/hist > /dev/null || \ 288c2ecf20Sopenharmony_ci fail "compound keys on sched_process_fork did not work" 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_cireset_trigger 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ciecho "Test histogram with string key" 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ciecho 'hist:keys=parent_comm' > events/sched/sched_process_fork/trigger 358c2ecf20Sopenharmony_cifor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 368c2ecf20Sopenharmony_ciCOMM=`cat /proc/$$/comm` 378c2ecf20Sopenharmony_cigrep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \ 388c2ecf20Sopenharmony_ci fail "string key on sched_process_fork did not work" 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_cireset_trigger 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ciecho "Test histogram with sort key" 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ciecho 'hist:keys=parent_pid,child_pid:sort=child_pid.ascending' > events/sched/sched_process_fork/trigger 458c2ecf20Sopenharmony_cifor i in `seq 1 10` ; do ( echo "forked" > /dev/null); done 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_cicheck_inc() { 488c2ecf20Sopenharmony_ci while [ $# -gt 1 ]; do 498c2ecf20Sopenharmony_ci [ $1 -gt $2 ] && return 1 508c2ecf20Sopenharmony_ci shift 1 518c2ecf20Sopenharmony_ci done 528c2ecf20Sopenharmony_ci return 0 538c2ecf20Sopenharmony_ci} 548c2ecf20Sopenharmony_cicheck_inc `grep -o "child_pid:[[:space:]]*[[:digit:]]*" \ 558c2ecf20Sopenharmony_ci events/sched/sched_process_fork/hist | cut -d: -f2 ` || 568c2ecf20Sopenharmony_ci fail "sort param on sched_process_fork did not work" 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ciexit 0 59