trigger-multihist.tc 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/bin/sh
  2. # description: event trigger - test multiple histogram triggers
  3. do_reset() {
  4. reset_trigger
  5. echo > set_event
  6. clear_trace
  7. }
  8. fail() { #msg
  9. do_reset
  10. echo $1
  11. exit $FAIL
  12. }
  13. if [ ! -f set_event -o ! -d events/sched ]; then
  14. echo "event tracing is not supported"
  15. exit_unsupported
  16. fi
  17. if [ ! -f events/sched/sched_process_fork/trigger ]; then
  18. echo "event trigger is not supported"
  19. exit_unsupported
  20. fi
  21. if [ ! -f events/sched/sched_process_fork/hist ]; then
  22. echo "hist trigger is not supported"
  23. exit_unsupported
  24. fi
  25. reset_tracer
  26. do_reset
  27. reset_trigger
  28. echo "Test histogram multiple tiggers"
  29. echo 'hist:keys=parent_pid:vals=child_pid' > events/sched/sched_process_fork/trigger
  30. echo 'hist:keys=parent_comm:vals=child_pid' >> events/sched/sched_process_fork/trigger
  31. for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
  32. grep parent_pid events/sched/sched_process_fork/hist > /dev/null || \
  33. fail "hist trigger on sched_process_fork did not work"
  34. grep child events/sched/sched_process_fork/hist > /dev/null || \
  35. fail "hist trigger on sched_process_fork did not work"
  36. COMM=`cat /proc/$$/comm`
  37. grep "parent_comm: $COMM" events/sched/sched_process_fork/hist > /dev/null || \
  38. fail "string key on sched_process_fork did not work"
  39. reset_trigger
  40. echo "Test histogram with its name"
  41. echo 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_fork/trigger
  42. for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
  43. grep test_hist events/sched/sched_process_fork/hist > /dev/null || \
  44. fail "named event on sched_process_fork did not work"
  45. echo "Test same named histogram on different events"
  46. echo 'hist:name=test_hist:keys=common_pid' > events/sched/sched_process_exit/trigger
  47. for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
  48. grep test_hist events/sched/sched_process_exit/hist > /dev/null || \
  49. fail "named event on sched_process_fork did not work"
  50. diffs=`diff events/sched/sched_process_exit/hist events/sched/sched_process_fork/hist | wc -l`
  51. test $diffs -eq 0 || fail "Same name histograms are not same"
  52. reset_trigger
  53. do_reset
  54. exit 0