13cbd6a43SSteven Rostedt (Red Hat)#!/bin/sh
23cbd6a43SSteven Rostedt (Red Hat)# description: Test creation and deletion of trace instances
33cbd6a43SSteven Rostedt (Red Hat)
43cbd6a43SSteven Rostedt (Red Hat)if [ ! -d instances ] ; then
53cbd6a43SSteven Rostedt (Red Hat)    echo "no instance directory with this kernel"
63cbd6a43SSteven Rostedt (Red Hat)    exit_unsupported;
73cbd6a43SSteven Rostedt (Red Hat)fi
83cbd6a43SSteven Rostedt (Red Hat)
93cbd6a43SSteven Rostedt (Red Hat)fail() { # mesg
103cbd6a43SSteven Rostedt (Red Hat)    rmdir x y z 2>/dev/null
113cbd6a43SSteven Rostedt (Red Hat)    echo $1
123cbd6a43SSteven Rostedt (Red Hat)    set -e
133cbd6a43SSteven Rostedt (Red Hat)    exit $FAIL
143cbd6a43SSteven Rostedt (Red Hat)}
153cbd6a43SSteven Rostedt (Red Hat)
163cbd6a43SSteven Rostedt (Red Hat)cd instances
173cbd6a43SSteven Rostedt (Red Hat)
183cbd6a43SSteven Rostedt (Red Hat)# we don't want to fail on error
193cbd6a43SSteven Rostedt (Red Hat)set +e
203cbd6a43SSteven Rostedt (Red Hat)
213cbd6a43SSteven Rostedt (Red Hat)mkdir x
223cbd6a43SSteven Rostedt (Red Hat)rmdir x
233cbd6a43SSteven Rostedt (Red Hat)result=$?
243cbd6a43SSteven Rostedt (Red Hat)
253cbd6a43SSteven Rostedt (Red Hat)if [ $result -ne 0 ]; then
263cbd6a43SSteven Rostedt (Red Hat)    echo "instance rmdir not supported"
273cbd6a43SSteven Rostedt (Red Hat)    exit_unsupported
283cbd6a43SSteven Rostedt (Red Hat)fi
293cbd6a43SSteven Rostedt (Red Hat)
303cbd6a43SSteven Rostedt (Red Hat)instance_slam() {
313cbd6a43SSteven Rostedt (Red Hat)    while :; do
323cbd6a43SSteven Rostedt (Red Hat)	mkdir x
333cbd6a43SSteven Rostedt (Red Hat)	mkdir y
343cbd6a43SSteven Rostedt (Red Hat)	mkdir z
353cbd6a43SSteven Rostedt (Red Hat)	rmdir x
363cbd6a43SSteven Rostedt (Red Hat)	rmdir y
373cbd6a43SSteven Rostedt (Red Hat)	rmdir z
383cbd6a43SSteven Rostedt (Red Hat)    done 2>/dev/null
393cbd6a43SSteven Rostedt (Red Hat)}
403cbd6a43SSteven Rostedt (Red Hat)
413cbd6a43SSteven Rostedt (Red Hat)instance_slam &
423cbd6a43SSteven Rostedt (Red Hat)x=`jobs -l`
433cbd6a43SSteven Rostedt (Red Hat)p1=`echo $x | cut -d' ' -f2`
443cbd6a43SSteven Rostedt (Red Hat)echo $p1
453cbd6a43SSteven Rostedt (Red Hat)
463cbd6a43SSteven Rostedt (Red Hat)instance_slam &
473cbd6a43SSteven Rostedt (Red Hat)x=`jobs -l | tail -1`
483cbd6a43SSteven Rostedt (Red Hat)p2=`echo $x | cut -d' ' -f2`
493cbd6a43SSteven Rostedt (Red Hat)echo $p2
503cbd6a43SSteven Rostedt (Red Hat)
513cbd6a43SSteven Rostedt (Red Hat)instance_slam &
523cbd6a43SSteven Rostedt (Red Hat)x=`jobs -l | tail -1`
533cbd6a43SSteven Rostedt (Red Hat)p3=`echo $x | cut -d' ' -f2`
543cbd6a43SSteven Rostedt (Red Hat)echo $p3
553cbd6a43SSteven Rostedt (Red Hat)
563cbd6a43SSteven Rostedt (Red Hat)instance_slam &
573cbd6a43SSteven Rostedt (Red Hat)x=`jobs -l | tail -1`
583cbd6a43SSteven Rostedt (Red Hat)p4=`echo $x | cut -d' ' -f2`
593cbd6a43SSteven Rostedt (Red Hat)echo $p4
603cbd6a43SSteven Rostedt (Red Hat)
613cbd6a43SSteven Rostedt (Red Hat)instance_slam &
623cbd6a43SSteven Rostedt (Red Hat)x=`jobs -l | tail -1`
633cbd6a43SSteven Rostedt (Red Hat)p5=`echo $x | cut -d' ' -f2`
643cbd6a43SSteven Rostedt (Red Hat)echo $p5
653cbd6a43SSteven Rostedt (Red Hat)
663cbd6a43SSteven Rostedt (Red Hat)ls -lR >/dev/null
673cbd6a43SSteven Rostedt (Red Hat)sleep 1
683cbd6a43SSteven Rostedt (Red Hat)
693cbd6a43SSteven Rostedt (Red Hat)kill -1 $p1
703cbd6a43SSteven Rostedt (Red Hat)kill -1 $p2
713cbd6a43SSteven Rostedt (Red Hat)kill -1 $p3
723cbd6a43SSteven Rostedt (Red Hat)kill -1 $p4
733cbd6a43SSteven Rostedt (Red Hat)kill -1 $p5
743cbd6a43SSteven Rostedt (Red Hat)
753cbd6a43SSteven Rostedt (Red Hat)echo "Wait for processes to finish"
763cbd6a43SSteven Rostedt (Red Hat)wait $p1 $p2 $p3 $p4 $p5
773cbd6a43SSteven Rostedt (Red Hat)echo "all processes finished, wait for cleanup"
783cbd6a43SSteven Rostedt (Red Hat)
793cbd6a43SSteven Rostedt (Red Hat)mkdir x y z
803cbd6a43SSteven Rostedt (Red Hat)ls x y z
813cbd6a43SSteven Rostedt (Red Hat)rmdir x y z
823cbd6a43SSteven Rostedt (Red Hat)for d in x y z; do
833cbd6a43SSteven Rostedt (Red Hat)        if [ -d $d ]; then
843cbd6a43SSteven Rostedt (Red Hat)                fail "instance $d still exists"
853cbd6a43SSteven Rostedt (Red Hat)        fi
863cbd6a43SSteven Rostedt (Red Hat)done
873cbd6a43SSteven Rostedt (Red Hat)
883cbd6a43SSteven Rostedt (Red Hat)set -e
893cbd6a43SSteven Rostedt (Red Hat)
903cbd6a43SSteven Rostedt (Red Hat)exit 0
91