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