WIP: preparation for the new deadlock checker, structures init/destroy
[nobug.git] / tests / 35resourcethreaded.tests
blobbca81acc2cd0ccdcc9bd47afbba1231c0b700a98
2 TESTING "resource tracker, w/ threads" ./test_nobug_resources_threaded_mt_alpha
5 TEST "resource threaded, waiting/waiting, multithreading/alpha" resourcethreaded_waiting_waiting <<END
6 err: RESOURCE_ANNOUNCE: .*: thread_1: main: type: test@
7 err: RESOURCE_ENTER: .*: thread_1: main: type: test@.*: main: waiting
8 err: ECHO: .*: thread_1: main: create thread
9 err: ECHO: .*: thread_2: threadfn: thread startup
10 err: ECHO: .*: thread_2: threadfn: enter direct
11 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: waiting
12 err: RESOURCE_LEAVE: .*: thread_2: threadfn: type: test@.*: thread: waiting
13 err: ECHO: .*: thread_2: threadfn: thread finished
14 err: ECHO: .*: thread_1: main: thread joined
15 err: RESOURCE_LEAVE: .*: thread_1: main: type: test@.*: main: waiting
16 err: RESOURCE_FORGET: .*: thread_1: main: type: test@
17 END
19 TEST "resource threaded, waiting/exclusive, multithreading/alpha" resourcethreaded_waiting_exclusive <<END
20 err: RESOURCE_ANNOUNCE: .*: thread_1: main: type: test@
21 err: RESOURCE_ENTER: .*: thread_1: main: type: test@.*: main: waiting
22 err: ECHO: .*: thread_1: main: create thread
23 err: ECHO: .*: thread_2: threadfn: thread startup
24 err: ECHO: .*: thread_2: threadfn: enter via wait
25 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: waiting
26 err: RESOURCE_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->exclusive
27 err: RESOURCE_LEAVE: .*: thread_2: threadfn: type: test@.*: thread: exclusive
28 err: ECHO: .*: thread_2: threadfn: enter direct
29 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: exclusive
30 err: RESOURCE_LEAVE: .*: thread_2: threadfn: type: test@.*: thread: exclusive
31 err: ECHO: .*: thread_2: threadfn: thread finished
32 err: ECHO: .*: thread_1: main: thread joined
33 err: RESOURCE_LEAVE: .*: thread_1: main: type: test@.*: main: waiting
34 err: RESOURCE_FORGET: .*: thread_1: main: type: test@
35 END
37 TEST "resource threaded, waiting/recursive, multithreading/alpha" resourcethreaded_waiting_recursive <<END
38 err: RESOURCE_ANNOUNCE: .*: thread_1: main: type: test@
39 err: RESOURCE_ENTER: .*: thread_1: main: type: test@.*: main: waiting
40 err: ECHO: .*: thread_1: main: create thread
41 err: ECHO: .*: thread_2: threadfn: thread startup
42 err: ECHO: .*: thread_2: threadfn: enter via wait
43 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: waiting
44 err: RESOURCE_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->recursive
45 err: RESOURCE_LEAVE: .*: thread_2: threadfn: type: test@.*: thread: recursive
46 err: ECHO: .*: thread_2: threadfn: enter direct
47 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: recursive
48 err: RESOURCE_LEAVE: .*: thread_2: threadfn: type: test@.*: thread: recursive
49 err: ECHO: .*: thread_2: threadfn: thread finished
50 err: ECHO: .*: thread_1: main: thread joined
51 err: RESOURCE_LEAVE: .*: thread_1: main: type: test@.*: main: waiting
52 err: RESOURCE_FORGET: .*: thread_1: main: type: test@
53 END
55 TEST "resource threaded, waiting/shared, multithreading/alpha" resourcethreaded_waiting_shared <<END
56 err: RESOURCE_ANNOUNCE: .*: thread_1: main: type: test@
57 err: RESOURCE_ENTER: .*: thread_1: main: type: test@.*: main: waiting
58 err: ECHO: .*: thread_1: main: create thread
59 err: ECHO: .*: thread_2: threadfn: thread startup
60 err: ECHO: .*: thread_2: threadfn: enter via wait
61 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: waiting
62 err: RESOURCE_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->shared
63 err: RESOURCE_LEAVE: .*: thread_2: threadfn: type: test@.*: thread: shared
64 err: ECHO: .*: thread_2: threadfn: enter direct
65 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: shared
66 err: RESOURCE_LEAVE: .*: thread_2: threadfn: type: test@.*: thread: shared
67 err: ECHO: .*: thread_2: threadfn: thread finished
68 err: ECHO: .*: thread_1: main: thread joined
69 err: RESOURCE_LEAVE: .*: thread_1: main: type: test@.*: main: waiting
70 err: RESOURCE_FORGET: .*: thread_1: main: type: test@
71 END
74 TEST "resource threaded, exclusive/waiting, multithreading/alpha" resourcethreaded_exclusive_waiting <<END
75 err: RESOURCE_ANNOUNCE: .*: thread_1: main: type: test@
76 err: RESOURCE_ENTER: .*: thread_1: main: type: test@.*: main: exclusive
77 err: ECHO: .*: thread_1: main: create thread
78 err: ECHO: .*: thread_2: threadfn: thread startup
79 err: ECHO: .*: thread_2: threadfn: enter direct
80 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: waiting
81 err: RESOURCE_LEAVE: .*: thread_2: threadfn: type: test@.*: thread: waiting
82 err: ECHO: .*: thread_2: threadfn: thread finished
83 err: ECHO: .*: thread_1: main: thread joined
84 err: RESOURCE_LEAVE: .*: thread_1: main: type: test@.*: main: exclusive
85 err: RESOURCE_FORGET: .*: thread_1: main: type: test@
86 END
88 TEST "resource threaded, exclusive/exclusive, multithreading/alpha" resourcethreaded_exclusive_exclusive <<END
89 err: RESOURCE_ANNOUNCE: .*: thread_1: main: type: test@
90 err: RESOURCE_ENTER: .*: thread_1: main: type: test@.*: main: exclusive
91 err: ECHO: .*: thread_1: main: create thread
92 err: ECHO: .*: thread_2: threadfn: thread startup
93 err: ECHO: .*: thread_2: threadfn: enter via wait
94 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: waiting
95 err: RESOURCE_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->exclusive
96 err: RESOURCE_ASSERT_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->exclusive: resource hold by another thread
97 err: RESOURCE_DUMP: .*: thread_2: threadfn: .* type:test: hold by 2 entities:
98 err: RESOURCE_DUMP:         .* thread thread_2:.* waiting
99 err: RESOURCE_DUMP:         .* main thread_1:.* exclusive
100 err: BACKTRACE:
101 err: .*
102 return: !0
105 TEST "resource threaded, exclusive/recursive, multithreading/alpha" resourcethreaded_exclusive_recursive <<END
106 err: RESOURCE_ANNOUNCE: .*: thread_1: main: type: test@
107 err: RESOURCE_ENTER: .*: thread_1: main: type: test@.*: main: exclusive
108 err: ECHO: .*: thread_1: main: create thread
109 err: ECHO: .*: thread_2: threadfn: thread startup
110 err: ECHO: .*: thread_2: threadfn: enter via wait
111 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: waiting
112 err: RESOURCE_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->recursive
113 err: RESOURCE_ASSERT_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->recursive: resource hold by another thread
114 err: RESOURCE_DUMP: .*: thread_2: threadfn: .* type:test: hold by 2 entities:
115 err: RESOURCE_DUMP:         .* thread thread_2:.* waiting
116 err: RESOURCE_DUMP:         .* main thread_1:.* exclusive
117 err: BACKTRACE:
118 err: .*
119 return: !0
122 TEST "resource threaded, exclusive/shared, multithreading/alpha" resourcethreaded_exclusive_shared <<END
123 err: RESOURCE_ANNOUNCE: .*: thread_1: main: type: test@
124 err: RESOURCE_ENTER: .*: thread_1: main: type: test@.*: main: exclusive
125 err: ECHO: .*: thread_1: main: create thread
126 err: ECHO: .*: thread_2: threadfn: thread startup
127 err: ECHO: .*: thread_2: threadfn: enter via wait
128 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: waiting
129 err: RESOURCE_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->shared
130 err: RESOURCE_ASSERT_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->shared: resource hold by another thread nonshared
131 err: RESOURCE_DUMP: .*: thread_2: threadfn: .* type:test: hold by 2 entities:
132 err: RESOURCE_DUMP:         .* thread thread_2:.* waiting
133 err: RESOURCE_DUMP:         .* main thread_1:.* exclusive
134 err: BACKTRACE:
135 err: .*
136 return: !0
140 TEST "resource threaded, recursive/waiting, multithreading/alpha" resourcethreaded_recursive_waiting <<END
141 err: RESOURCE_ANNOUNCE: .*: thread_1: main: type: test@
142 err: RESOURCE_ENTER: .*: thread_1: main: type: test@.*: main: recursive
143 err: ECHO: .*: thread_1: main: create thread
144 err: ECHO: .*: thread_2: threadfn: thread startup
145 err: ECHO: .*: thread_2: threadfn: enter direct
146 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: waiting
147 err: RESOURCE_LEAVE: .*: thread_2: threadfn: type: test@.*: thread: waiting
148 err: ECHO: .*: thread_2: threadfn: thread finished
149 err: ECHO: .*: thread_1: main: thread joined
150 err: RESOURCE_LEAVE: .*: thread_1: main: type: test@.*: main: recursive
151 err: RESOURCE_FORGET: .*: thread_1: main: type: test@
154 TEST "resource threaded, recursive/exclusive, multithreading/alpha" resourcethreaded_recursive_exclusive <<END
155 err: RESOURCE_ANNOUNCE: .*: thread_1: main: type: test@
156 err: RESOURCE_ENTER: .*: thread_1: main: type: test@.*: main: recursive
157 err: ECHO: .*: thread_1: main: create thread
158 err: ECHO: .*: thread_2: threadfn: thread startup
159 err: ECHO: .*: thread_2: threadfn: enter via wait
160 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: waiting
161 err: RESOURCE_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->exclusive
162 err: RESOURCE_ASSERT_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->exclusive: resource hold by another thread
163 err: RESOURCE_DUMP: .*: thread_2: threadfn: .* type:test: hold by 2 entities:
164 err: RESOURCE_DUMP:         .* thread thread_2:.* waiting
165 err: RESOURCE_DUMP:         .* main thread_1:.* recursive
166 err: BACKTRACE:
167 err: .*
168 return: !0
171 TEST "resource threaded, recursive/recursive, multithreading/alpha" resourcethreaded_recursive_recursive <<END
172 err: RESOURCE_ANNOUNCE: .*: thread_1: main: type: test@
173 err: RESOURCE_ENTER: .*: thread_1: main: type: test@.*: main: recursive
174 err: ECHO: .*: thread_1: main: create thread
175 err: ECHO: .*: thread_2: threadfn: thread startup
176 err: ECHO: .*: thread_2: threadfn: enter via wait
177 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: waiting
178 err: RESOURCE_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->recursive
179 err: RESOURCE_ASSERT_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->recursive: resource hold by another thread
180 err: RESOURCE_DUMP: .*: thread_2: threadfn: .* type:test: hold by 2 entities:
181 err: RESOURCE_DUMP:         .* thread thread_2:.* waiting
182 err: RESOURCE_DUMP:         .* main thread_1:.* recursive
183 err: BACKTRACE:
184 err: .*
185 return: !0
188 TEST "resource threaded, recursive/shared, multithreading/alpha" resourcethreaded_recursive_shared <<END
189 err: RESOURCE_ANNOUNCE: .*: thread_1: main: type: test@
190 err: RESOURCE_ENTER: .*: thread_1: main: type: test@.*: main: recursive
191 err: ECHO: .*: thread_1: main: create thread
192 err: ECHO: .*: thread_2: threadfn: thread startup
193 err: ECHO: .*: thread_2: threadfn: enter via wait
194 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: waiting
195 err: RESOURCE_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->shared
196 err: RESOURCE_ASSERT_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->shared: resource hold by another thread nonshared
197 err: RESOURCE_DUMP: .*: thread_2: threadfn: .* type:test: hold by 2 entities:
198 err: RESOURCE_DUMP:         .* thread thread_2:.* waiting
199 err: RESOURCE_DUMP:         .* main thread_1:.* recursive
200 err: BACKTRACE:
201 err: .*
202 return: !0
206 TEST "resource threaded, shared/waiting, multithreading/alpha" resourcethreaded_shared_waiting <<END
207 err: RESOURCE_ANNOUNCE: .*: thread_1: main: type: test@
208 err: RESOURCE_ENTER: .*: thread_1: main: type: test@.*: main: shared
209 err: ECHO: .*: thread_1: main: create thread
210 err: ECHO: .*: thread_2: threadfn: thread startup
211 err: ECHO: .*: thread_2: threadfn: enter direct
212 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: waiting
213 err: RESOURCE_LEAVE: .*: thread_2: threadfn: type: test@.*: thread: waiting
214 err: ECHO: .*: thread_2: threadfn: thread finished
215 err: ECHO: .*: thread_1: main: thread joined
216 err: RESOURCE_LEAVE: .*: thread_1: main: type: test@.*: main: shared
217 err: RESOURCE_FORGET: .*: thread_1: main: type: test@
220 TEST "resource threaded, shared/exclusive, multithreading/alpha" resourcethreaded_shared_exclusive <<END
221 err: RESOURCE_ANNOUNCE: .*: thread_1: main: type: test@
222 err: RESOURCE_ENTER: .*: thread_1: main: type: test@.*: main: shared
223 err: ECHO: .*: thread_1: main: create thread
224 err: ECHO: .*: thread_2: threadfn: thread startup
225 err: ECHO: .*: thread_2: threadfn: enter via wait
226 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: waiting
227 err: RESOURCE_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->exclusive
228 err: RESOURCE_ASSERT_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->exclusive: resource hold by another thread
229 err: RESOURCE_DUMP: .*: thread_2: threadfn: .* type:test: hold by 2 entities:
230 err: RESOURCE_DUMP:         .* thread thread_2:.* waiting
231 err: RESOURCE_DUMP:         .* main thread_1:.* shared
232 err: BACKTRACE:
233 err: .*
234 return: !0
237 TEST "resource threaded, shared/recursive, multithreading/alpha" resourcethreaded_shared_recursive <<END
238 err: RESOURCE_ANNOUNCE: .*: thread_1: main: type: test@
239 err: RESOURCE_ENTER: .*: thread_1: main: type: test@.*: main: shared
240 err: ECHO: .*: thread_1: main: create thread
241 err: ECHO: .*: thread_2: threadfn: thread startup
242 err: ECHO: .*: thread_2: threadfn: enter via wait
243 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: waiting
244 err: RESOURCE_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->recursive
245 err: RESOURCE_ASSERT_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->recursive: resource hold by another thread
246 err: RESOURCE_DUMP: .*: thread_2: threadfn: .* type:test: hold by 2 entities:
247 err: RESOURCE_DUMP:         .* thread thread_2:.* waiting
248 err: RESOURCE_DUMP:         .* main thread_1:.* shared
249 err: BACKTRACE:
250 err: .*
251 return: !0
254 TEST "resource threaded, shared/shared, multithreading/alpha" resourcethreaded_shared_shared <<END
255 err: RESOURCE_ANNOUNCE: .*: thread_1: main: type: test@
256 err: RESOURCE_ENTER: .*: thread_1: main: type: test@.*: main: shared
257 err: ECHO: .*: thread_1: main: create thread
258 err: ECHO: .*: thread_2: threadfn: thread startup
259 err: ECHO: .*: thread_2: threadfn: enter via wait
260 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: waiting
261 err: RESOURCE_STATE: .*: thread_2: threadfn: type: test@.*: thread: waiting->shared
262 err: RESOURCE_LEAVE: .*: thread_2: threadfn: type: test@.*: thread: shared
263 err: ECHO: .*: thread_2: threadfn: enter direct
264 err: RESOURCE_ENTER: .*: thread_2: threadfn: type: test@.*: thread: shared
265 err: RESOURCE_LEAVE: .*: thread_2: threadfn: type: test@.*: thread: shared
266 err: ECHO: .*: thread_2: threadfn: thread finished
267 err: ECHO: .*: thread_1: main: thread joined
268 err: RESOURCE_LEAVE: .*: thread_1: main: type: test@.*: main: shared
269 err: RESOURCE_FORGET: .*: thread_1: main: type: test@