source: asp3_wo_tecs/trunk/test/test_raster2.c@ 302

Last change on this file since 302 was 302, checked in by ertl-honda, 7 years ago

TECSレスのASP3の開発のため以下のtrunkからコピー
http://dev.toppers.jp/svn/asp3/branches/WO_TECS-3.C.0

File size: 16.2 KB
Line 
1/*
2 * TOPPERS Software
3 * Toyohashi Open Platform for Embedded Real-Time Systems
4 *
5 * Copyright (C) 2014-2015 by Embedded and Real-Time Systems Laboratory
6 * Graduate School of Information Science, Nagoya Univ., JAPAN
7 *
8 * 上記著作権者
9は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
10 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
11 * 変・再é…
12å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
15 * スコード中に含まれていること.
16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
17 * 用できる形で再é…
18å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
19å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
20 * 者
21マニュアルなど)に,上記の著作権表示,この利用条件および下記
22 * の無保証規定を掲載すること.
23 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
24 * 用できない形で再é…
25å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
26 * と.
27 * (a) 再é…
28å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
29マニュアルなど)に,上記の著
30 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
31 * (b) 再é…
32å¸ƒã®å½¢æ…
33‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
34 * 報告すること.
35 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
36 * 害からも,上記著作権者
37およびTOPPERSプロジェクトをå…
38è²¬ã™ã‚‹ã“と.
39 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
40 * 由に基づく請求からも,上記著作権者
41およびTOPPERSプロジェクトを
42 * å…
43è²¬ã™ã‚‹ã“と.
44 *
45 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
46お
47 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
48 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
49 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
50 * の責任を負わない.
51 *
52 * $Id: test_raster2.c 310 2015-02-08 13:46:46Z ertl-hiro $
53 */
54
55/*
56 * タスク終了要求機能に関するテスト(2)
57 *
58 * 【テストの目的】
59 *
60 * dis_terの振舞いのテスト[NGKI3482]
61 * ・dis_terに関するすべての要求をテストする.
62 * ・dis_ter関数のC1カバレッジを達成する.
63 * ena_terの振舞いのテスト[NGKI3487]
64 * ・ena_terに関するすべての要求をテストする.
65 * ・ena_ter関数のC1カバレッジを達成する.
66 * sns_terの振舞いのテスト[NGKI3494]
67 * ・sns_terに関するすべての要求をテストする.
68 * ・sns_ter関数のC1カバレッジを達成する.
69 * タスク終了時に行うべき処理に関するテスト
70 * ・タスク終了時に行うべき処理に関するすべての要求をテストする.
71 * ・task_terminate関数のC1カバレッジを達成する(ena_terから呼び出し
72 * た場合に実行されることがないパスを除く).
73 * ディスパッチ保留状æ…
74‹ã®è§£é™¤ã«ä¼´ã†ã‚¿ã‚¹ã‚¯çµ‚了のテスト
75 * ・dis_dspとchg_ipmでタスクが終了することをテストする.
76 *
77 * 【テスト項
78目】
79 *
80 * (A) dis_terのエラー検出
81 * (A-1) 非タスクコンテキストからの呼出し[NGKI3483]
82 * (A-2) CPUロック状æ…
83‹ã‹ã‚‰ã®å‘¼å‡ºã—ï¼»NGKI3484ï¼½
84 * (B) dis_terによるタスク終了禁止フラグのセット
85 * (B-1) 自タスクのタスク終了禁止フラグがセット[NGKI3486]
86 * (C) ena_terのエラー検出
87 * (C-1) 非タスクコンテキストからの呼出し[NGKI3488]
88 * (C-2) CPUロック状æ…
89‹ã‹ã‚‰ã®å‘¼å‡ºã—ï¼»NGKI3489ï¼½
90 * (D) ena_terによるタスク終了禁止フラグのクリア
91 * (D-1) 自タスクのタスク終了禁止フラグがクリア[NGKI3491]
92 * (E) ena_terによるタスク終了[NGKI3683]
93 * (E-1) 自タスクが実行可能状æ…
94‹ã‹ã‚‰ä¼‘止状æ…
95‹ã«ï¼»NGKI1178ï¼½
96 * (E-2) ロックしているミューテックスのロック解除[NGKI2019]
97 * (E-3) (E-2)の処理により待
98ち解除されたタスクに切換え
99 * (F) ena_terによるタスク終了と再起動
100 * (F-1) 自タスクが実行可能状æ…
101‹ã«
102 * (F-2) (F-1)の時に起動要求キューイング数が1減少[NGKI1180]
103 * (F-3) 自タスクが実行状æ…
104‹ã«
105 * (G) タスクコンテキストから呼び出したsns_terの振舞い
106 * (G-1) タスク終了禁止状æ…
107‹ã®å ´åˆã«trueが返る[NGKI3495ï¼½
108 * (G-2) タスク終了許可状æ…
109‹ã®å ´åˆã«falseが返る[NGKI3495ï¼½
110 * (H) 非タスクコンテキストから呼び出したsns_terの振舞い
111 * (H-1) タスク終了禁止状æ…
112‹ã®å ´åˆã«trueが返る[NGKI3495ï¼½
113 * (H-2) タスク終了許可状æ…
114‹ã®å ´åˆã«falseが返る[NGKI3495ï¼½
115 * (H-3) 実行状æ…
116‹ã®ã‚¿ã‚¹ã‚¯ãŒãªã„場合にtrueが返る[NGKI3496ï¼½
117 * (I) ena_dspによるタスク終了[NGKI3683]
118 * (I-1) 自タスクが実行可能状æ…
119‹ã‹ã‚‰ä¼‘止状æ…
120‹ã«ï¼»NGKI1178ï¼½
121 * (J) chg_ipmによるタスク終了[NGKI3683]
122 * (J-1) 自タスクが実行可能状æ…
123‹ã‹ã‚‰ä¼‘止状æ…
124‹ã«ï¼»NGKI1178ï¼½
125 * ASPカーネルに適用されない要求:
126 * [NGKI3485][NGKI3490][NGKI3497]
127 *
128 * 【使用リソース】
129 *
130 * TASK1: 中優å…
131ˆåº¦ã‚¿ã‚¹ã‚¯ï¼ŒTA_ACT属性
132 * TASK2: 低優å…
133ˆåº¦ã‚¿ã‚¹ã‚¯
134 * TASK3: 高優å…
135ˆåº¦ã‚¿ã‚¹ã‚¯
136 * ALM1: アラームハンドラ
137 * MTX1: ミューテックス
138 *
139 * 【テストシーケンス】
140 *
141 * == TASK1 ==
142 * 1: sta_alm(ALM1, 10000U)
143 * slp_tsk()
144 * == ALM1-1(1回目)==
145 * 2: dis_ter() -> E_CTX ... (A-1)
146 * ena_ter() -> E_CTX ... (C-1)
147 * assert(sns_ter() == true) ... (H-3)
148 * wup_tsk(TASK1)
149 * RETURN
150 * == TASK1(続き)==
151 * 3: loc_cpu()
152 * dis_ter() -> E_CTX ... (A-2)
153 * ena_ter() -> E_CTX ... (C-2)
154 * unl_cpu()
155 * assert(sns_ter() == false)
156 * 4: dis_ter() ... (B-1)
157 * assert(sns_ter() == true) ... (G-1)
158 * ref_tsk(TSK_SELF, &rtsk)
159 * assert(rtsk.tskstat == TTS_RUN)
160 * assert(rtsk.raster == false)
161 * assert(rtsk.dister == true)
162 * 5: ena_ter() ... (D-1)
163 * assert(sns_ter() == false) ... (G-2)
164 * ref_tsk(TSK_SELF, &rtsk)
165 * assert(rtsk.tskstat == TTS_RUN)
166 * assert(rtsk.raster == false)
167 * assert(rtsk.dister == false)
168 * 6: act_tsk(TASK2)
169 * slp_tsk()
170 * == TASK2-1(1回目)==
171 * 7: dis_ter()
172 * wup_tsk(TASK1)
173 * == TASK1(続き)==
174 * 8: ras_ter(TASK2)
175 * tslp_tsk(10000U) -> E_TMOUT
176 * == TASK2-1(続き)==
177 * 9: ena_ter() ... (E-1)
178 * == TASK1(続き)==
179 * 10: ref_tsk(TASK2, &rtsk)
180 * assert(rtsk.tskstat == TTS_DMT)
181 * 11: act_tsk(TASK2)
182 * slp_tsk()
183 * == TASK2-2(2回目)==
184 * 12: dis_ter()
185 * loc_mtx(MTX1)
186 * wup_tsk(TASK1)
187 * == TASK1(続き)==
188 * 13: act_tsk(TASK3)
189 * == TASK3-1(1回目)==
190 * 14: loc_mtx(MTX1)
191 * == TASK1(続き)==
192 * 15: ras_ter(TASK2)
193 * slp_tsk()
194 * == TASK2-2(続き)==
195 * 16: ena_ter() ... (E-2)(E-3)
196 * == TASK3-1(続き)==
197 * 17: wup_tsk(TASK1)
198 * ext_tsk()
199 * == TASK1(続き)==
200 * 18: act_tsk(TASK2)
201 * act_tsk(TASK2)
202 * ref_tsk(TASK2, &rtsk)
203 * assert(rtsk.tskstat == TTS_RDY)
204 * assert(rtsk.actcnt == 1U)
205 * slp_tsk()
206 * == TASK2-3(3回目)==
207 * 19: dis_ter()
208 * wup_tsk(TASK1)
209 * == TASK1(続き)==
210 * 20: ras_ter(TASK2)
211 * chg_pri(TASK2, TASK3_PRIORITY)
212 * == TASK2-3(続き)==
213 * 21: ena_ter() ... (F-1)
214 * == TASK1(続き)==
215 * 22: ref_tsk(TASK2, &rtsk)
216 * assert(rtsk.tskstat == TTS_RDY)
217 * assert(rtsk.actcnt == 0U) ... (F-2)
218 * act_tsk(TASK2)
219 * slp_tsk()
220 * == TASK2-4(4回目)==
221 * 23: dis_ter()
222 * wup_tsk(TASK1)
223 * == TASK1(続き)==
224 * 24: ras_ter(TASK2)
225 * tslp_tsk(10000U) -> E_TMOUT
226 * == TASK2-4(続き)==
227 * 25: ena_ter() ... (F-3)
228 * == TASK2-5(5回目)==
229 * 26: dis_ter()
230 * DO(while(true))
231 * == TASK1(続き)==
232 * 27: sta_alm(ALM1, 10000U)
233 * slp_tsk()
234 * == ALM1-2(2回目)==
235 * 28: assert(sns_ter() == true) ... (H-1)
236 * wup_tsk(TASK1)
237 * RETURN
238 * == TASK1(続き)==
239 * 29: ter_tsk(TASK2)
240 * act_tsk(TASK2)
241 * tslp_tsk(10000U) -> E_TMOUT
242 * == TASK2-6(6回目)==
243 * 30: ena_ter()
244 * DO(while(true))
245 * == TASK1(続き)==
246 * 31: sta_alm(ALM1, 10000U)
247 * slp_tsk()
248 * == ALM1-3(3回目)==
249 * 32: assert(sns_ter() == false) ... (H-2)
250 * wup_tsk(TASK1)
251 * RETURN
252 * == TASK1(続き)==
253 * 33: ter_tsk(TASK2)
254 * act_tsk(TASK2)
255 * slp_tsk()
256 * == TASK2-7(7回目)==
257 * 34: dis_ter()
258 * wup_tsk(TASK1)
259 * == TASK1(続き)==
260 * 35: ras_ter(TASK2)
261 * tslp_tsk(10000U) -> E_TMOUT
262 * == TASK2-7(続き)==
263 * 36: dis_dsp()
264 * ena_ter()
265 * ena_dsp() ... (I-1)
266 * == TASK1(続き)==
267 * 37: ref_tsk(TASK2, &rtsk)
268 * assert(rtsk.tskstat == TTS_DMT)
269 * 38: act_tsk(TASK2)
270 * slp_tsk()
271 * == TASK2-8(8回目)==
272 * 39: dis_ter()
273 * wup_tsk(TASK1)
274 * == TASK1(続き)==
275 * 40: ras_ter(TASK2)
276 * tslp_tsk(10000U) -> E_TMOUT
277 * == TASK2-8(続き)==
278 * 41: chg_ipm(TMAX_INTPRI)
279 * ena_ter()
280 * chg_ipm(TIPM_ENAALL) ... (I-1)
281 * == TASK1(続き)==
282 * 42: ref_tsk(TASK2, &rtsk)
283 * assert(rtsk.tskstat == TTS_DMT)
284 * 43: END
285 */
286
287#include <kernel.h>
288#include <t_syslog.h>
289#include "syssvc/test_svc.h"
290#include "kernel_cfg.h"
291#include "test_raster2.h"
292
293/* DO NOT DELETE THIS LINE -- gentest depends on it. */
294
295static uint_t alarm1_count = 0;
296
297void
298alarm1_handler(intptr_t exinf)
299{
300 ER_UINT ercd;
301
302 switch (++alarm1_count) {
303 case 1:
304 check_point(2);
305 ercd = dis_ter();
306 check_ercd(ercd, E_CTX);
307
308 ercd = ena_ter();
309 check_ercd(ercd, E_CTX);
310
311 check_assert(sns_ter() == true);
312
313 ercd = wup_tsk(TASK1);
314 check_ercd(ercd, E_OK);
315
316 return;
317
318 check_point(0);
319
320 case 2:
321 check_point(28);
322 check_assert(sns_ter() == true);
323
324 ercd = wup_tsk(TASK1);
325 check_ercd(ercd, E_OK);
326
327 return;
328
329 check_point(0);
330
331 case 3:
332 check_point(32);
333 check_assert(sns_ter() == false);
334
335 ercd = wup_tsk(TASK1);
336 check_ercd(ercd, E_OK);
337
338 return;
339
340 check_point(0);
341
342 default:
343 check_point(0);
344 }
345 check_point(0);
346}
347
348void
349task1(intptr_t exinf)
350{
351 ER_UINT ercd;
352 T_RTSK rtsk;
353
354 test_start(__FILE__);
355
356 check_point(1);
357 ercd = sta_alm(ALM1, 10000U);
358 check_ercd(ercd, E_OK);
359
360 ercd = slp_tsk();
361 check_ercd(ercd, E_OK);
362
363 check_point(3);
364 ercd = loc_cpu();
365 check_ercd(ercd, E_OK);
366
367 ercd = dis_ter();
368 check_ercd(ercd, E_CTX);
369
370 ercd = ena_ter();
371 check_ercd(ercd, E_CTX);
372
373 ercd = unl_cpu();
374 check_ercd(ercd, E_OK);
375
376 check_assert(sns_ter() == false);
377
378 check_point(4);
379 ercd = dis_ter();
380 check_ercd(ercd, E_OK);
381
382 check_assert(sns_ter() == true);
383
384 ercd = ref_tsk(TSK_SELF, &rtsk);
385 check_ercd(ercd, E_OK);
386
387 check_assert(rtsk.tskstat == TTS_RUN);
388
389 check_assert(rtsk.raster == false);
390
391 check_assert(rtsk.dister == true);
392
393 check_point(5);
394 ercd = ena_ter();
395 check_ercd(ercd, E_OK);
396
397 check_assert(sns_ter() == false);
398
399 ercd = ref_tsk(TSK_SELF, &rtsk);
400 check_ercd(ercd, E_OK);
401
402 check_assert(rtsk.tskstat == TTS_RUN);
403
404 check_assert(rtsk.raster == false);
405
406 check_assert(rtsk.dister == false);
407
408 check_point(6);
409 ercd = act_tsk(TASK2);
410 check_ercd(ercd, E_OK);
411
412 ercd = slp_tsk();
413 check_ercd(ercd, E_OK);
414
415 check_point(8);
416 ercd = ras_ter(TASK2);
417 check_ercd(ercd, E_OK);
418
419 ercd = tslp_tsk(10000U);
420 check_ercd(ercd, E_TMOUT);
421
422 check_point(10);
423 ercd = ref_tsk(TASK2, &rtsk);
424 check_ercd(ercd, E_OK);
425
426 check_assert(rtsk.tskstat == TTS_DMT);
427
428 check_point(11);
429 ercd = act_tsk(TASK2);
430 check_ercd(ercd, E_OK);
431
432 ercd = slp_tsk();
433 check_ercd(ercd, E_OK);
434
435 check_point(13);
436 ercd = act_tsk(TASK3);
437 check_ercd(ercd, E_OK);
438
439 check_point(15);
440 ercd = ras_ter(TASK2);
441 check_ercd(ercd, E_OK);
442
443 ercd = slp_tsk();
444 check_ercd(ercd, E_OK);
445
446 check_point(18);
447 ercd = act_tsk(TASK2);
448 check_ercd(ercd, E_OK);
449
450 ercd = act_tsk(TASK2);
451 check_ercd(ercd, E_OK);
452
453 ercd = ref_tsk(TASK2, &rtsk);
454 check_ercd(ercd, E_OK);
455
456 check_assert(rtsk.tskstat == TTS_RDY);
457
458 check_assert(rtsk.actcnt == 1U);
459
460 ercd = slp_tsk();
461 check_ercd(ercd, E_OK);
462
463 check_point(20);
464 ercd = ras_ter(TASK2);
465 check_ercd(ercd, E_OK);
466
467 ercd = chg_pri(TASK2, TASK3_PRIORITY);
468 check_ercd(ercd, E_OK);
469
470 check_point(22);
471 ercd = ref_tsk(TASK2, &rtsk);
472 check_ercd(ercd, E_OK);
473
474 check_assert(rtsk.tskstat == TTS_RDY);
475
476 check_assert(rtsk.actcnt == 0U);
477
478 ercd = act_tsk(TASK2);
479 check_ercd(ercd, E_OK);
480
481 ercd = slp_tsk();
482 check_ercd(ercd, E_OK);
483
484 check_point(24);
485 ercd = ras_ter(TASK2);
486 check_ercd(ercd, E_OK);
487
488 ercd = tslp_tsk(10000U);
489 check_ercd(ercd, E_TMOUT);
490
491 check_point(27);
492 ercd = sta_alm(ALM1, 10000U);
493 check_ercd(ercd, E_OK);
494
495 ercd = slp_tsk();
496 check_ercd(ercd, E_OK);
497
498 check_point(29);
499 ercd = ter_tsk(TASK2);
500 check_ercd(ercd, E_OK);
501
502 ercd = act_tsk(TASK2);
503 check_ercd(ercd, E_OK);
504
505 ercd = tslp_tsk(10000U);
506 check_ercd(ercd, E_TMOUT);
507
508 check_point(31);
509 ercd = sta_alm(ALM1, 10000U);
510 check_ercd(ercd, E_OK);
511
512 ercd = slp_tsk();
513 check_ercd(ercd, E_OK);
514
515 check_point(33);
516 ercd = ter_tsk(TASK2);
517 check_ercd(ercd, E_OK);
518
519 ercd = act_tsk(TASK2);
520 check_ercd(ercd, E_OK);
521
522 ercd = slp_tsk();
523 check_ercd(ercd, E_OK);
524
525 check_point(35);
526 ercd = ras_ter(TASK2);
527 check_ercd(ercd, E_OK);
528
529 ercd = tslp_tsk(10000U);
530 check_ercd(ercd, E_TMOUT);
531
532 check_point(37);
533 ercd = ref_tsk(TASK2, &rtsk);
534 check_ercd(ercd, E_OK);
535
536 check_assert(rtsk.tskstat == TTS_DMT);
537
538 check_point(38);
539 ercd = act_tsk(TASK2);
540 check_ercd(ercd, E_OK);
541
542 ercd = slp_tsk();
543 check_ercd(ercd, E_OK);
544
545 check_point(40);
546 ercd = ras_ter(TASK2);
547 check_ercd(ercd, E_OK);
548
549 ercd = tslp_tsk(10000U);
550 check_ercd(ercd, E_TMOUT);
551
552 check_point(42);
553 ercd = ref_tsk(TASK2, &rtsk);
554 check_ercd(ercd, E_OK);
555
556 check_assert(rtsk.tskstat == TTS_DMT);
557
558 check_finish(43);
559 check_point(0);
560}
561
562static uint_t task2_count = 0;
563
564void
565task2(intptr_t exinf)
566{
567 ER_UINT ercd;
568
569 switch (++task2_count) {
570 case 1:
571 check_point(7);
572 ercd = dis_ter();
573 check_ercd(ercd, E_OK);
574
575 ercd = wup_tsk(TASK1);
576 check_ercd(ercd, E_OK);
577
578 check_point(9);
579 ercd = ena_ter();
580 check_ercd(ercd, E_OK);
581
582 check_point(0);
583
584 case 2:
585 check_point(12);
586 ercd = dis_ter();
587 check_ercd(ercd, E_OK);
588
589 ercd = loc_mtx(MTX1);
590 check_ercd(ercd, E_OK);
591
592 ercd = wup_tsk(TASK1);
593 check_ercd(ercd, E_OK);
594
595 check_point(16);
596 ercd = ena_ter();
597 check_ercd(ercd, E_OK);
598
599 check_point(0);
600
601 case 3:
602 check_point(19);
603 ercd = dis_ter();
604 check_ercd(ercd, E_OK);
605
606 ercd = wup_tsk(TASK1);
607 check_ercd(ercd, E_OK);
608
609 check_point(21);
610 ercd = ena_ter();
611 check_ercd(ercd, E_OK);
612
613 check_point(0);
614
615 case 4:
616 check_point(23);
617 ercd = dis_ter();
618 check_ercd(ercd, E_OK);
619
620 ercd = wup_tsk(TASK1);
621 check_ercd(ercd, E_OK);
622
623 check_point(25);
624 ercd = ena_ter();
625 check_ercd(ercd, E_OK);
626
627 check_point(0);
628
629 case 5:
630 check_point(26);
631 ercd = dis_ter();
632 check_ercd(ercd, E_OK);
633
634 while(true);
635
636 check_point(0);
637
638 case 6:
639 check_point(30);
640 ercd = ena_ter();
641 check_ercd(ercd, E_OK);
642
643 while(true);
644
645 check_point(0);
646
647 case 7:
648 check_point(34);
649 ercd = dis_ter();
650 check_ercd(ercd, E_OK);
651
652 ercd = wup_tsk(TASK1);
653 check_ercd(ercd, E_OK);
654
655 check_point(36);
656 ercd = dis_dsp();
657 check_ercd(ercd, E_OK);
658
659 ercd = ena_ter();
660 check_ercd(ercd, E_OK);
661
662 ercd = ena_dsp();
663 check_ercd(ercd, E_OK);
664
665 check_point(0);
666
667 case 8:
668 check_point(39);
669 ercd = dis_ter();
670 check_ercd(ercd, E_OK);
671
672 ercd = wup_tsk(TASK1);
673 check_ercd(ercd, E_OK);
674
675 check_point(41);
676 ercd = chg_ipm(TMAX_INTPRI);
677 check_ercd(ercd, E_OK);
678
679 ercd = ena_ter();
680 check_ercd(ercd, E_OK);
681
682 ercd = chg_ipm(TIPM_ENAALL);
683 check_ercd(ercd, E_OK);
684
685 check_point(0);
686
687 default:
688 check_point(0);
689 }
690 check_point(0);
691}
692
693static uint_t task3_count = 0;
694
695void
696task3(intptr_t exinf)
697{
698 ER_UINT ercd;
699
700 switch (++task3_count) {
701 case 1:
702 check_point(14);
703 ercd = loc_mtx(MTX1);
704 check_ercd(ercd, E_OK);
705
706 check_point(17);
707 ercd = wup_tsk(TASK1);
708 check_ercd(ercd, E_OK);
709
710 ercd = ext_tsk();
711 check_ercd(ercd, E_OK);
712
713 check_point(0);
714
715 default:
716 check_point(0);
717 }
718 check_point(0);
719}
Note: See TracBrowser for help on using the repository browser.