Home | History | Annotate | Download | only in event
      1 #!/bin/sh
      2 # description: event tracing - enable/disable with subsystem level files
      3 
      4 do_reset() {
      5     echo > set_event
      6     clear_trace
      7 }
      8 
      9 fail() { #msg
     10     do_reset
     11     echo $1
     12     exit $FAIL
     13 }
     14 
     15 yield() {
     16     ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
     17 }
     18 
     19 if [ ! -f set_event -o ! -d events/sched ]; then
     20     echo "event tracing is not supported"
     21     exit_unsupported
     22 fi
     23 
     24 reset_tracer
     25 do_reset
     26 
     27 echo 'sched:*' > set_event
     28 
     29 yield
     30 
     31 count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
     32 if [ $count -lt 3 ]; then
     33     fail "at least fork, exec and exit events should be recorded"
     34 fi
     35 
     36 do_reset
     37 
     38 echo 1 > events/sched/enable
     39 
     40 yield
     41 
     42 count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
     43 if [ $count -lt 3 ]; then
     44     fail "at least fork, exec and exit events should be recorded"
     45 fi
     46 
     47 do_reset
     48 
     49 echo 0 > events/sched/enable
     50 
     51 yield
     52 
     53 count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l`
     54 if [ $count -ne 0 ]; then
     55     fail "any of scheduler events should not be recorded"
     56 fi
     57 
     58 do_reset
     59 
     60 exit 0
     61