Home | History | Annotate | Download | only in instances
      1 #!/bin/sh
      2 # description: Test creation and deletion of trace instances
      3 
      4 if [ ! -d instances ] ; then
      5     echo "no instance directory with this kernel"
      6     exit_unsupported;
      7 fi
      8 
      9 fail() { # mesg
     10     rmdir x y z 2>/dev/null
     11     echo $1
     12     set -e
     13     exit $FAIL
     14 }
     15 
     16 cd instances
     17 
     18 # we don't want to fail on error
     19 set +e
     20 
     21 mkdir x
     22 rmdir x
     23 result=$?
     24 
     25 if [ $result -ne 0 ]; then
     26     echo "instance rmdir not supported"
     27     exit_unsupported
     28 fi
     29 
     30 instance_slam() {
     31     while :; do
     32 	mkdir x
     33 	mkdir y
     34 	mkdir z
     35 	rmdir x
     36 	rmdir y
     37 	rmdir z
     38     done 2>/dev/null
     39 }
     40 
     41 instance_slam &
     42 p1=$!
     43 echo $p1
     44 
     45 instance_slam &
     46 p2=$!
     47 echo $p2
     48 
     49 instance_slam &
     50 p3=$!
     51 echo $p3
     52 
     53 instance_slam &
     54 p4=$!
     55 echo $p4
     56 
     57 instance_slam &
     58 p5=$!
     59 echo $p5
     60 
     61 ls -lR >/dev/null
     62 sleep 1
     63 
     64 kill -1 $p1
     65 kill -1 $p2
     66 kill -1 $p3
     67 kill -1 $p4
     68 kill -1 $p5
     69 
     70 echo "Wait for processes to finish"
     71 wait $p1 $p2 $p3 $p4 $p5
     72 echo "all processes finished, wait for cleanup"
     73 
     74 mkdir x y z
     75 ls x y z
     76 rmdir x y z
     77 for d in x y z; do
     78         if [ -d $d ]; then
     79                 fail "instance $d still exists"
     80         fi
     81 done
     82 
     83 set -e
     84 
     85 exit 0
     86