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