191e6f1ceSSteven Rostedt (Red Hat)#!/bin/sh 291e6f1ceSSteven Rostedt (Red Hat)# description: Test creation and deletion of trace instances while setting an event 391e6f1ceSSteven Rostedt (Red Hat) 491e6f1ceSSteven Rostedt (Red Hat)if [ ! -d instances ] ; then 591e6f1ceSSteven Rostedt (Red Hat) echo "no instance directory with this kernel" 691e6f1ceSSteven Rostedt (Red Hat) exit_unsupported; 791e6f1ceSSteven Rostedt (Red Hat)fi 891e6f1ceSSteven Rostedt (Red Hat) 991e6f1ceSSteven Rostedt (Red Hat)fail() { # mesg 1091e6f1ceSSteven Rostedt (Red Hat) rmdir foo 2>/dev/null 1191e6f1ceSSteven Rostedt (Red Hat) echo $1 1291e6f1ceSSteven Rostedt (Red Hat) set -e 1391e6f1ceSSteven Rostedt (Red Hat) exit $FAIL 1491e6f1ceSSteven Rostedt (Red Hat)} 1591e6f1ceSSteven Rostedt (Red Hat) 1691e6f1ceSSteven Rostedt (Red Hat)cd instances 1791e6f1ceSSteven Rostedt (Red Hat) 1891e6f1ceSSteven Rostedt (Red Hat)# we don't want to fail on error 1991e6f1ceSSteven Rostedt (Red Hat)set +e 2091e6f1ceSSteven Rostedt (Red Hat) 2191e6f1ceSSteven Rostedt (Red Hat)mkdir x 2291e6f1ceSSteven Rostedt (Red Hat)rmdir x 2391e6f1ceSSteven Rostedt (Red Hat)result=$? 2491e6f1ceSSteven Rostedt (Red Hat) 2591e6f1ceSSteven Rostedt (Red Hat)if [ $result -ne 0 ]; then 2691e6f1ceSSteven Rostedt (Red Hat) echo "instance rmdir not supported" 2791e6f1ceSSteven Rostedt (Red Hat) exit_unsupported 2891e6f1ceSSteven Rostedt (Red Hat)fi 2991e6f1ceSSteven Rostedt (Red Hat) 3091e6f1ceSSteven Rostedt (Red Hat)instance_slam() { 3191e6f1ceSSteven Rostedt (Red Hat) while :; do 3291e6f1ceSSteven Rostedt (Red Hat) mkdir foo 2> /dev/null 3391e6f1ceSSteven Rostedt (Red Hat) rmdir foo 2> /dev/null 3491e6f1ceSSteven Rostedt (Red Hat) done 3591e6f1ceSSteven Rostedt (Red Hat)} 3691e6f1ceSSteven Rostedt (Red Hat) 3791e6f1ceSSteven Rostedt (Red Hat)instance_read() { 3891e6f1ceSSteven Rostedt (Red Hat) while :; do 3991e6f1ceSSteven Rostedt (Red Hat) cat foo/trace 1> /dev/null 2>&1 4091e6f1ceSSteven Rostedt (Red Hat) done 4191e6f1ceSSteven Rostedt (Red Hat)} 4291e6f1ceSSteven Rostedt (Red Hat) 4391e6f1ceSSteven Rostedt (Red Hat)instance_set() { 4491e6f1ceSSteven Rostedt (Red Hat) while :; do 4591e6f1ceSSteven Rostedt (Red Hat) echo 1 > foo/events/sched/sched_switch 4691e6f1ceSSteven Rostedt (Red Hat) done 2> /dev/null 4791e6f1ceSSteven Rostedt (Red Hat)} 4891e6f1ceSSteven Rostedt (Red Hat) 4991e6f1ceSSteven Rostedt (Red Hat)instance_slam & 5091e6f1ceSSteven Rostedt (Red Hat)p1=$! 5191e6f1ceSSteven Rostedt (Red Hat)echo $p1 5291e6f1ceSSteven Rostedt (Red Hat) 5391e6f1ceSSteven Rostedt (Red Hat)instance_set & 5491e6f1ceSSteven Rostedt (Red Hat)p2=$! 5591e6f1ceSSteven Rostedt (Red Hat)echo $p2 5691e6f1ceSSteven Rostedt (Red Hat) 5791e6f1ceSSteven Rostedt (Red Hat)instance_read & 5891e6f1ceSSteven Rostedt (Red Hat)p3=$! 5991e6f1ceSSteven Rostedt (Red Hat)echo $p3 6091e6f1ceSSteven Rostedt (Red Hat) 6191e6f1ceSSteven Rostedt (Red Hat)sleep 1 6291e6f1ceSSteven Rostedt (Red Hat) 6391e6f1ceSSteven Rostedt (Red Hat)kill -1 $p3 6491e6f1ceSSteven Rostedt (Red Hat)kill -1 $p2 6591e6f1ceSSteven Rostedt (Red Hat)kill -1 $p1 6691e6f1ceSSteven Rostedt (Red Hat) 6791e6f1ceSSteven Rostedt (Red Hat)echo "Wait for processes to finish" 6891e6f1ceSSteven Rostedt (Red Hat)wait $p1 $p2 $p3 6991e6f1ceSSteven Rostedt (Red Hat)echo "all processes finished, wait for cleanup" 7091e6f1ceSSteven Rostedt (Red Hat)sleep 1 7191e6f1ceSSteven Rostedt (Red Hat) 7291e6f1ceSSteven Rostedt (Red Hat)mkdir foo 7391e6f1ceSSteven Rostedt (Red Hat)ls foo > /dev/null 7491e6f1ceSSteven Rostedt (Red Hat)rmdir foo 7591e6f1ceSSteven Rostedt (Red Hat)if [ -d foo ]; then 7691e6f1ceSSteven Rostedt (Red Hat) fail "foo still exists" 7791e6f1ceSSteven Rostedt (Red Hat)fi 7891e6f1ceSSteven Rostedt (Red Hat)exit 0 7991e6f1ceSSteven Rostedt (Red Hat) 8091e6f1ceSSteven Rostedt (Red Hat) 8191e6f1ceSSteven Rostedt (Red Hat) 8291e6f1ceSSteven Rostedt (Red Hat) 8391e6f1ceSSteven Rostedt (Red Hat)instance_slam() { 8491e6f1ceSSteven Rostedt (Red Hat) while :; do 8591e6f1ceSSteven Rostedt (Red Hat) mkdir x 8691e6f1ceSSteven Rostedt (Red Hat) mkdir y 8791e6f1ceSSteven Rostedt (Red Hat) mkdir z 8891e6f1ceSSteven Rostedt (Red Hat) rmdir x 8991e6f1ceSSteven Rostedt (Red Hat) rmdir y 9091e6f1ceSSteven Rostedt (Red Hat) rmdir z 9191e6f1ceSSteven Rostedt (Red Hat) done 2>/dev/null 9291e6f1ceSSteven Rostedt (Red Hat)} 9391e6f1ceSSteven Rostedt (Red Hat) 9491e6f1ceSSteven Rostedt (Red Hat)instance_slam & 9591e6f1ceSSteven Rostedt (Red Hat)x=`jobs -l` 9691e6f1ceSSteven Rostedt (Red Hat)p1=`echo $x | cut -d' ' -f2` 9791e6f1ceSSteven Rostedt (Red Hat)echo $p1 9891e6f1ceSSteven Rostedt (Red Hat) 9991e6f1ceSSteven Rostedt (Red Hat)instance_slam & 10091e6f1ceSSteven Rostedt (Red Hat)x=`jobs -l | tail -1` 10191e6f1ceSSteven Rostedt (Red Hat)p2=`echo $x | cut -d' ' -f2` 10291e6f1ceSSteven Rostedt (Red Hat)echo $p2 10391e6f1ceSSteven Rostedt (Red Hat) 10491e6f1ceSSteven Rostedt (Red Hat)instance_slam & 10591e6f1ceSSteven Rostedt (Red Hat)x=`jobs -l | tail -1` 10691e6f1ceSSteven Rostedt (Red Hat)p3=`echo $x | cut -d' ' -f2` 10791e6f1ceSSteven Rostedt (Red Hat)echo $p3 10891e6f1ceSSteven Rostedt (Red Hat) 10991e6f1ceSSteven Rostedt (Red Hat)instance_slam & 11091e6f1ceSSteven Rostedt (Red Hat)x=`jobs -l | tail -1` 11191e6f1ceSSteven Rostedt (Red Hat)p4=`echo $x | cut -d' ' -f2` 11291e6f1ceSSteven Rostedt (Red Hat)echo $p4 11391e6f1ceSSteven Rostedt (Red Hat) 11491e6f1ceSSteven Rostedt (Red Hat)instance_slam & 11591e6f1ceSSteven Rostedt (Red Hat)x=`jobs -l | tail -1` 11691e6f1ceSSteven Rostedt (Red Hat)p5=`echo $x | cut -d' ' -f2` 11791e6f1ceSSteven Rostedt (Red Hat)echo $p5 11891e6f1ceSSteven Rostedt (Red Hat) 11991e6f1ceSSteven Rostedt (Red Hat)ls -lR >/dev/null 12091e6f1ceSSteven Rostedt (Red Hat)sleep 1 12191e6f1ceSSteven Rostedt (Red Hat) 12291e6f1ceSSteven Rostedt (Red Hat)kill -1 $p1 12391e6f1ceSSteven Rostedt (Red Hat)kill -1 $p2 12491e6f1ceSSteven Rostedt (Red Hat)kill -1 $p3 12591e6f1ceSSteven Rostedt (Red Hat)kill -1 $p4 12691e6f1ceSSteven Rostedt (Red Hat)kill -1 $p5 12791e6f1ceSSteven Rostedt (Red Hat) 12891e6f1ceSSteven Rostedt (Red Hat)echo "Wait for processes to finish" 12991e6f1ceSSteven Rostedt (Red Hat)wait $p1 $p2 $p3 $p4 $p5 13091e6f1ceSSteven Rostedt (Red Hat)echo "all processes finished, wait for cleanup" 13191e6f1ceSSteven Rostedt (Red Hat) 13291e6f1ceSSteven Rostedt (Red Hat)mkdir x y z 13391e6f1ceSSteven Rostedt (Red Hat)ls x y z 13491e6f1ceSSteven Rostedt (Red Hat)rmdir x y z 13591e6f1ceSSteven Rostedt (Red Hat)for d in x y z; do 13691e6f1ceSSteven Rostedt (Red Hat) if [ -d $d ]; then 13791e6f1ceSSteven Rostedt (Red Hat) fail "instance $d still exists" 13891e6f1ceSSteven Rostedt (Red Hat) fi 13991e6f1ceSSteven Rostedt (Red Hat)done 14091e6f1ceSSteven Rostedt (Red Hat) 14191e6f1ceSSteven Rostedt (Red Hat)set -e 14291e6f1ceSSteven Rostedt (Red Hat) 14391e6f1ceSSteven Rostedt (Red Hat)exit 0 144