1# $FreeBSD: releng/10.2/lib/libkse/test/mutex_d.exp 172491 2007-10-09 13:42:34Z obrien $
2
3Testing pthread_mutex_init
4--------------------------
5  Protocol PTHREAD_PRIO_NONE, Type POSIX (type not specified) - PASS
6  Protocol PTHREAD_PRIO_NONE, Type SS2 PTHREAD_MUTEX_DEFAULT - PASS
7  Protocol PTHREAD_PRIO_NONE, Type SS2 PTHREAD_MUTEX_ERRORCHECK - PASS
8  Protocol PTHREAD_PRIO_NONE, Type SS2 PTHREAD_MUTEX_NORMAL - PASS
9  Protocol PTHREAD_PRIO_NONE, Type SS2 PTHREAD_MUTEX_RECURSIVE - PASS
10  Protocol PTHREAD_PRIO_INHERIT, Type POSIX (type not specified) - PASS
11  Protocol PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_DEFAULT - PASS
12  Protocol PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_ERRORCHECK - PASS
13  Protocol PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_NORMAL - PASS
14  Protocol PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_RECURSIVE - PASS
15  Protocol PTHREAD_PRIO_PROTECT, Type POSIX (type not specified) - PASS
16  Protocol PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_DEFAULT - PASS
17  Protocol PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_ERRORCHECK - PASS
18  Protocol PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_NORMAL - PASS
19  Protocol PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_RECURSIVE - PASS
20
21Testing pthread_mutex_destroy
22-----------------------------
23  Protocol PTHREAD_PRIO_NONE, Type POSIX (type not specified)
24    Destruction of unused mutex - PASS
25    Destruction of mutex locked by self - PASS
26    Destruction of mutex locked by another thread - PASS
27    Destruction of mutex while being used in cond_wait - PASS
28  Protocol PTHREAD_PRIO_NONE, Type SS2 PTHREAD_MUTEX_DEFAULT
29    Destruction of unused mutex - PASS
30    Destruction of mutex locked by self - PASS
31    Destruction of mutex locked by another thread - PASS
32    Destruction of mutex while being used in cond_wait - PASS
33  Protocol PTHREAD_PRIO_NONE, Type SS2 PTHREAD_MUTEX_ERRORCHECK
34    Destruction of unused mutex - PASS
35    Destruction of mutex locked by self - PASS
36    Destruction of mutex locked by another thread - PASS
37    Destruction of mutex while being used in cond_wait - PASS
38  Protocol PTHREAD_PRIO_NONE, Type SS2 PTHREAD_MUTEX_NORMAL
39    Destruction of unused mutex - PASS
40    Destruction of mutex locked by self - PASS
41    Destruction of mutex locked by another thread - PASS
42    Destruction of mutex while being used in cond_wait - PASS
43  Protocol PTHREAD_PRIO_NONE, Type SS2 PTHREAD_MUTEX_RECURSIVE
44    Destruction of unused mutex - PASS
45    Destruction of mutex locked by self - PASS
46    Destruction of mutex locked by another thread - PASS
47    Destruction of mutex while being used in cond_wait - PASS
48  Protocol PTHREAD_PRIO_INHERIT, Type POSIX (type not specified)
49    Destruction of unused mutex - PASS
50    Destruction of mutex locked by self - PASS
51    Destruction of mutex locked by another thread - PASS
52    Destruction of mutex while being used in cond_wait - PASS
53  Protocol PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_DEFAULT
54    Destruction of unused mutex - PASS
55    Destruction of mutex locked by self - PASS
56    Destruction of mutex locked by another thread - PASS
57    Destruction of mutex while being used in cond_wait - PASS
58  Protocol PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_ERRORCHECK
59    Destruction of unused mutex - PASS
60    Destruction of mutex locked by self - PASS
61    Destruction of mutex locked by another thread - PASS
62    Destruction of mutex while being used in cond_wait - PASS
63  Protocol PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_NORMAL
64    Destruction of unused mutex - PASS
65    Destruction of mutex locked by self - PASS
66    Destruction of mutex locked by another thread - PASS
67    Destruction of mutex while being used in cond_wait - PASS
68  Protocol PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_RECURSIVE
69    Destruction of unused mutex - PASS
70    Destruction of mutex locked by self - PASS
71    Destruction of mutex locked by another thread - PASS
72    Destruction of mutex while being used in cond_wait - PASS
73  Protocol PTHREAD_PRIO_PROTECT, Type POSIX (type not specified)
74    Destruction of unused mutex - PASS
75    Destruction of mutex locked by self - PASS
76    Destruction of mutex locked by another thread - PASS
77    Destruction of mutex while being used in cond_wait - PASS
78  Protocol PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_DEFAULT
79    Destruction of unused mutex - PASS
80    Destruction of mutex locked by self - PASS
81    Destruction of mutex locked by another thread - PASS
82    Destruction of mutex while being used in cond_wait - PASS
83  Protocol PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_ERRORCHECK
84    Destruction of unused mutex - PASS
85    Destruction of mutex locked by self - PASS
86    Destruction of mutex locked by another thread - PASS
87    Destruction of mutex while being used in cond_wait - PASS
88  Protocol PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_NORMAL
89    Destruction of unused mutex - PASS
90    Destruction of mutex locked by self - PASS
91    Destruction of mutex locked by another thread - PASS
92    Destruction of mutex while being used in cond_wait - PASS
93  Protocol PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_RECURSIVE
94    Destruction of unused mutex - PASS
95    Destruction of mutex locked by self - PASS
96    Destruction of mutex locked by another thread - PASS
97    Destruction of mutex while being used in cond_wait - PASS
98
99Testing pthread_mutex_lock
100--------------------------
101  Protocol PTHREAD_PRIO_NONE, Type POSIX (type not specified)
102    Lock on unlocked mutex - PASS
103    Lock on invalid mutex - PASS
104    Lock on mutex held by self - PASS
105  Protocol PTHREAD_PRIO_NONE, Type SS2 PTHREAD_MUTEX_DEFAULT
106    Lock on unlocked mutex - PASS
107    Lock on invalid mutex - PASS
108    Lock on mutex held by self - PASS
109  Protocol PTHREAD_PRIO_NONE, Type SS2 PTHREAD_MUTEX_ERRORCHECK
110    Lock on unlocked mutex - PASS
111    Lock on invalid mutex - PASS
112    Lock on mutex held by self - PASS
113  Protocol PTHREAD_PRIO_NONE, Type SS2 PTHREAD_MUTEX_NORMAL
114    Lock on unlocked mutex - PASS
115    Lock on invalid mutex - PASS
116    Lock on mutex held by self - PASS
117  Protocol PTHREAD_PRIO_NONE, Type SS2 PTHREAD_MUTEX_RECURSIVE
118    Lock on unlocked mutex - PASS
119    Lock on invalid mutex - PASS
120    Lock on mutex held by self - PASS
121  Protocol PTHREAD_PRIO_INHERIT, Type POSIX (type not specified)
122    Lock on unlocked mutex - PASS
123    Lock on invalid mutex - PASS
124    Lock on mutex held by self - PASS
125  Protocol PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_DEFAULT
126    Lock on unlocked mutex - PASS
127    Lock on invalid mutex - PASS
128    Lock on mutex held by self - PASS
129  Protocol PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_ERRORCHECK
130    Lock on unlocked mutex - PASS
131    Lock on invalid mutex - PASS
132    Lock on mutex held by self - PASS
133  Protocol PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_NORMAL
134    Lock on unlocked mutex - PASS
135    Lock on invalid mutex - PASS
136    Lock on mutex held by self - PASS
137  Protocol PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_RECURSIVE
138    Lock on unlocked mutex - PASS
139    Lock on invalid mutex - PASS
140    Lock on mutex held by self - PASS
141  Protocol PTHREAD_PRIO_PROTECT, Type POSIX (type not specified)
142    Lock on unlocked mutex - PASS
143    Lock on invalid mutex - PASS
144    Lock on mutex held by self - PASS
145  Protocol PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_DEFAULT
146    Lock on unlocked mutex - PASS
147    Lock on invalid mutex - PASS
148    Lock on mutex held by self - PASS
149  Protocol PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_ERRORCHECK
150    Lock on unlocked mutex - PASS
151    Lock on invalid mutex - PASS
152    Lock on mutex held by self - PASS
153  Protocol PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_NORMAL
154    Lock on unlocked mutex - PASS
155    Lock on invalid mutex - PASS
156    Lock on mutex held by self - PASS
157  Protocol PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_RECURSIVE
158    Lock on unlocked mutex - PASS
159    Lock on invalid mutex - PASS
160    Lock on mutex held by self - PASS
161
162Testing pthread_mutex_unlock
163----------------------------
164  Protocol PTHREAD_PRIO_NONE, Type POSIX (type not specified)
165    Unlock on mutex held by self - PASS
166    Unlock on invalid mutex - PASS
167    Unlock on mutex locked by another thread - PASS
168  Protocol PTHREAD_PRIO_NONE, Type SS2 PTHREAD_MUTEX_DEFAULT
169    Unlock on mutex held by self - PASS
170    Unlock on invalid mutex - PASS
171    Unlock on mutex locked by another thread - PASS
172  Protocol PTHREAD_PRIO_NONE, Type SS2 PTHREAD_MUTEX_ERRORCHECK
173    Unlock on mutex held by self - PASS
174    Unlock on invalid mutex - PASS
175    Unlock on mutex locked by another thread - PASS
176  Protocol PTHREAD_PRIO_NONE, Type SS2 PTHREAD_MUTEX_NORMAL
177    Unlock on mutex held by self - PASS
178    Unlock on invalid mutex - PASS
179    Unlock on mutex locked by another thread - PASS
180  Protocol PTHREAD_PRIO_NONE, Type SS2 PTHREAD_MUTEX_RECURSIVE
181    Unlock on mutex held by self - PASS
182    Unlock on invalid mutex - PASS
183    Unlock on mutex locked by another thread - PASS
184  Protocol PTHREAD_PRIO_INHERIT, Type POSIX (type not specified)
185    Unlock on mutex held by self - PASS
186    Unlock on invalid mutex - PASS
187    Unlock on mutex locked by another thread - PASS
188  Protocol PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_DEFAULT
189    Unlock on mutex held by self - PASS
190    Unlock on invalid mutex - PASS
191    Unlock on mutex locked by another thread - PASS
192  Protocol PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_ERRORCHECK
193    Unlock on mutex held by self - PASS
194    Unlock on invalid mutex - PASS
195    Unlock on mutex locked by another thread - PASS
196  Protocol PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_NORMAL
197    Unlock on mutex held by self - PASS
198    Unlock on invalid mutex - PASS
199    Unlock on mutex locked by another thread - PASS
200  Protocol PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_RECURSIVE
201    Unlock on mutex held by self - PASS
202    Unlock on invalid mutex - PASS
203    Unlock on mutex locked by another thread - PASS
204  Protocol PTHREAD_PRIO_PROTECT, Type POSIX (type not specified)
205    Unlock on mutex held by self - PASS
206    Unlock on invalid mutex - PASS
207    Unlock on mutex locked by another thread - PASS
208  Protocol PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_DEFAULT
209    Unlock on mutex held by self - PASS
210    Unlock on invalid mutex - PASS
211    Unlock on mutex locked by another thread - PASS
212  Protocol PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_ERRORCHECK
213    Unlock on mutex held by self - PASS
214    Unlock on invalid mutex - PASS
215    Unlock on mutex locked by another thread - PASS
216  Protocol PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_NORMAL
217    Unlock on mutex held by self - PASS
218    Unlock on invalid mutex - PASS
219    Unlock on mutex locked by another thread - PASS
220  Protocol PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_RECURSIVE
221    Unlock on mutex held by self - PASS
222    Unlock on invalid mutex - PASS
223    Unlock on mutex locked by another thread - PASS
224
225Testing queueing order
226----------------------
227  Queueing order on a mutex - PASS
228  Queueing order on a condition variable - PASS
229
230Testing priority inheritence
231----------------------------
232  Protype PTHREAD_PRIO_INHERIT, Type POSIX (type not specified)
233    Simple inheritence test - PASS
234    Inheritence test with change of priority - PASS
235  Protype PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_DEFAULT
236    Simple inheritence test - PASS
237    Inheritence test with change of priority - PASS
238  Protype PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_ERRORCHECK
239    Simple inheritence test - PASS
240    Inheritence test with change of priority - PASS
241  Protype PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_NORMAL
242    Simple inheritence test - PASS
243    Inheritence test with change of priority - PASS
244  Protype PTHREAD_PRIO_INHERIT, Type SS2 PTHREAD_MUTEX_RECURSIVE
245    Simple inheritence test - PASS
246    Inheritence test with change of priority - PASS
247
248Testing priority ceilings
249-------------------------
250  Protype PTHREAD_PRIO_PROTECT, Type POSIX (type not specified)
251    Lock with ceiling priority < thread priority - PASS
252    Lock with ceiling priority = thread priority - PASS
253    Lock with ceiling priority > thread priority - PASS
254    Preemption with ceiling priority < thread priority - PASS
255    Preemption with ceiling priority = thread priority - PASS
256    SCHED_FIFO scheduling and ceiling priority = thread priority - PASS
257    SCHED_FIFO scheduling and ceiling priority > thread priority - PASS
258  Protype PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_DEFAULT
259    Lock with ceiling priority < thread priority - PASS
260    Lock with ceiling priority = thread priority - PASS
261    Lock with ceiling priority > thread priority - PASS
262    Preemption with ceiling priority < thread priority - PASS
263    Preemption with ceiling priority = thread priority - PASS
264    SCHED_FIFO scheduling and ceiling priority = thread priority - PASS
265    SCHED_FIFO scheduling and ceiling priority > thread priority - PASS
266  Protype PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_ERRORCHECK
267    Lock with ceiling priority < thread priority - PASS
268    Lock with ceiling priority = thread priority - PASS
269    Lock with ceiling priority > thread priority - PASS
270    Preemption with ceiling priority < thread priority - PASS
271    Preemption with ceiling priority = thread priority - PASS
272    SCHED_FIFO scheduling and ceiling priority = thread priority - PASS
273    SCHED_FIFO scheduling and ceiling priority > thread priority - PASS
274  Protype PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_NORMAL
275    Lock with ceiling priority < thread priority - PASS
276    Lock with ceiling priority = thread priority - PASS
277    Lock with ceiling priority > thread priority - PASS
278    Preemption with ceiling priority < thread priority - PASS
279    Preemption with ceiling priority = thread priority - PASS
280    SCHED_FIFO scheduling and ceiling priority = thread priority - PASS
281    SCHED_FIFO scheduling and ceiling priority > thread priority - PASS
282  Protype PTHREAD_PRIO_PROTECT, Type SS2 PTHREAD_MUTEX_RECURSIVE
283    Lock with ceiling priority < thread priority - PASS
284    Lock with ceiling priority = thread priority - PASS
285    Lock with ceiling priority > thread priority - PASS
286    Preemption with ceiling priority < thread priority - PASS
287    Preemption with ceiling priority = thread priority - PASS
288    SCHED_FIFO scheduling and ceiling priority = thread priority - PASS
289    SCHED_FIFO scheduling and ceiling priority > thread priority - PASS
290
291Total tests 212, passed 212, failed 0
292