#!/bin/sh
# description: event tracing - enable/disable with top level files

do_reset() {
    echo > set_event
    clear_trace
}

fail() { #msg
    do_reset
    echo $1
    exit $FAIL
}

yield() {
    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
}

if [ ! -f available_events -o ! -f set_event -o ! -d events ]; then
    echo "event tracing is not supported"
    exit_unsupported
fi

reset_tracer
do_reset

echo '*:*' > set_event

yield

echo 0 > tracing_on

count=`head -n 128 trace | grep -v ^# | wc -l`
if [ $count -eq 0 ]; then
    fail "none of events are recorded"
fi

do_reset

echo 1 > events/enable
echo 1 > tracing_on

yield

echo 0 > tracing_on
count=`head -n 128 trace | grep -v ^# | wc -l`
if [ $count -eq 0 ]; then
    fail "none of events are recorded"
fi

do_reset

echo 0 > events/enable

yield

count=`cat trace | grep -v ^# | wc -l`
if [ $count -ne 0 ]; then
    fail "any of events should not be recorded"
fi

do_reset

exit 0
