source: extension/messagebuf/test/test_messagebuf2.c

このファイルの最終更新内容7 で kominami が 2015/09/12 9:22:12 に更新しました

TOPPERS/ASP 1.9.1

ファイルサイズ: 15.2 KB
 
1/*
2 *  TOPPERS Software
3 *      Toyohashi Open Platform for Embedded Real-Time Systems
4 *
5 *  Copyright (C) 2014 by Embedded and Real-Time Systems Laboratory
6 *              Graduate School of Information Science, Nagoya Univ., JAPAN
7 *
8 *  Ÿåµ­Ãøºîž¢ŒÔ€Ï¡€°Ê²Œ€Î(1)¡Á(4)€ÎŸò·ï€òËþ€¿€¹Ÿì¹ç€ËžÂ€ê¡€ËÜ¥œ¥Õ¥È¥Š¥§
9 *  ¥¢¡ÊËÜ¥œ¥Õ¥È¥Š¥§¥¢€ò²þÊÑ€·€¿€â€Î€òŽÞ€à¡¥°Ê²ŒÆ±€ž¡Ë€ò»ÈÍÑ¡ŠÊ£Àœ¡Š²þ
10 *  ÊÑ¡ŠºÆÇÛÉۡʰʲŒ¡€ÍøÍрȞƀ֡ˀ¹€ë€³€È€ò̵œþ€ÇµöÂú€¹€ë¡¥
11 *  (1) ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ò¥œ¡Œ¥¹¥³¡Œ¥É€Î·Á€ÇÍøÍÑ€¹€ëŸì¹ç€Ë€Ï¡€Ÿåµ­€ÎÃøºî
12 *      ž¢ÉœŒš¡€€³€ÎÍøÍÑŸò·ï€ª€è€Ó²Œµ­€Î̵ÊÝŸÚµ¬Äꀬ¡€€œ€Î€Þ€Þ€Î·Á€Ç¥œ¡Œ
13 *      ¥¹¥³¡Œ¥ÉÃæ€ËŽÞ€Þ€ì€Æ€€€ë€³€È¡¥
14 *  (2) ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ò¡€¥é¥€¥Ö¥é¥ê·ÁŒ°€Ê€É¡€ÂŸ€Î¥œ¥Õ¥È¥Š¥§¥¢³«È¯€Ë»È
15 *      Íрǀ­€ë·Á€ÇºÆÇÛÉÛ€¹€ëŸì¹ç€Ë€Ï¡€ºÆÇÛÉÛ€ËÈŒ€Š¥É¥­¥å¥á¥ó¥È¡ÊÍøÍÑ
16 *      ŒÔ¥Þ¥Ë¥å¥¢¥ë€Ê€É¡Ë€Ë¡€Ÿåµ­€ÎÃøºîž¢ÉœŒš¡€€³€ÎÍøÍÑŸò·ï€ª€è€Ó²Œµ­
17 *      €Î̵ÊÝŸÚµ¬Äê€ò·ÇºÜ€¹€ë€³€È¡¥
18 *  (3) ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ò¡€µ¡Žï€ËÁȀ߹þ€à€Ê€É¡€ÂŸ€Î¥œ¥Õ¥È¥Š¥§¥¢³«È¯€Ë»È
19 *      Íрǀ­€Ê€€·Á€ÇºÆÇÛÉÛ€¹€ëŸì¹ç€Ë€Ï¡€Œ¡€Î€€€º€ì€«€ÎŸò·ï€òËþ€¿€¹€³
20 *      €È¡¥
21 *    (a) ºÆÇÛÉÛ€ËÈŒ€Š¥É¥­¥å¥á¥ó¥È¡ÊÍøÍьԥޥ˥奢¥ë€Ê€É¡Ë€Ë¡€Ÿåµ­€ÎÃø
22 *        ºîž¢ÉœŒš¡€€³€ÎÍøÍÑŸò·ï€ª€è€Ó²Œµ­€Î̵ÊÝŸÚµ¬Äê€ò·ÇºÜ€¹€ë€³€È¡¥
23 *    (b) ºÆÇÛÉۀηÁÂÖ€ò¡€ÊÌ€ËÄê€á€ëÊýË¡€Ë€è€Ã€Æ¡€TOPPERS¥×¥í¥ž¥§¥¯¥È€Ë
24 *        Êó¹ð€¹€ë€³€È¡¥
25 *  (4) ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ÎÍøÍрˀè€êÄŸÀÜŪ€Þ€¿€ÏŽÖÀÜŪ€ËÀž€ž€ë€€€«€Ê€ë»
26 *      ³²€«€é€â¡€Ÿåµ­Ãøºîž¢ŒÔ€ª€è€ÓTOPPERS¥×¥í¥ž¥§¥¯¥È€òÌÈÀÕ€¹€ë€³€È¡¥
27 *      €Þ€¿¡€ËÜ¥œ¥Õ¥È¥Š¥§¥¢€Î¥æ¡Œ¥¶€Þ€¿€Ï¥š¥ó¥É¥æ¡Œ¥¶€«€é€Î€€€«€Ê€ëÍý
28 *      ͳ€ËŽð€Å€¯ÀÁµá€«€é€â¡€Ÿåµ­Ãøºîž¢ŒÔ€ª€è€ÓTOPPERS¥×¥í¥ž¥§¥¯¥È€ò
29 *      ÌÈÀÕ€¹€ë€³€È¡¥
30 *
31 *  ËÜ¥œ¥Õ¥È¥Š¥§¥¢€Ï¡€ÌµÊÝŸÚ€ÇÄó¶¡€µ€ì€Æ€€€ë€â€Î€Ç€¢€ë¡¥Ÿåµ­Ãøºîž¢ŒÔ€ª
32 *  €è€ÓTOPPERS¥×¥í¥ž¥§¥¯¥È€Ï¡€ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ËŽØ€·€Æ¡€ÆÃÄê€Î»ÈÍÑÌÜŪ
33 *  €ËÂЀ¹€ëŬ¹çÀ­€âŽÞ€á€Æ¡€€€€«€Ê€ëÊÝŸÚ€â¹Ô€ï€Ê€€¡¥€Þ€¿¡€ËÜ¥œ¥Õ¥È¥Š¥§
34 *  ¥¢€ÎÍøÍрˀè€êÄŸÀÜŪ€Þ€¿€ÏŽÖÀÜŪ€ËÀž€ž€¿€€€«€Ê€ë»³²€ËŽØ€·€Æ€â¡€€œ
35 *  €ÎÀÕÇ€€òÉé€ï€Ê€€¡¥
36 *
37 *  $Id$
38 */
39
40/*
41 *              ¥á¥Ã¥»¡Œ¥ž¥Ð¥Ã¥Õ¥¡€Î¥Æ¥¹¥È(2)
42 *
43 * ¡Ú¥Æ¥¹¥È€ÎÌÜŪ¡Û
44 *
45 *  FIFOœç¥á¥Ã¥»¡Œ¥ž¥Ð¥Ã¥Õ¥¡€ÎÁ÷¿®ÂÔ€Á¥¿¥¹¥¯€¬¡€¶¯À©Åª€ËÂÔ€Á²òœü€µ€ì€¿
46 *  Ÿì¹ç€ò°ìÄÌ€ê¥Æ¥¹¥È€¹€ë¡¥
47 *
48 * ¡Ú¥Æ¥¹¥È¹àÌÜ¡Û
49 *
50 *      (A) Á÷¿®ÂÔ€Á¥¿¥¹¥¯€¬¶¯À©œªÎ»¡Êter_tsk¡Ë
51 *              (A-1) Á÷¿®ÂÔ€Á¥¿¥¹¥¯€ÎÂÔ€Á²òœü€Ê€·
52 *              (A-2) Á÷¿®ÂÔ€Á¥¿¥¹¥¯¡Ê1€Ä€Þ€¿€ÏÊ£¿ô¡Ë€¬ÂÔ€Á²òœü¡Ê¥¿¥¹¥¯ÀÚŽ¹€š€Ê€·¡Ë
53 *              (A-3) Á÷¿®ÂÔ€Á¥¿¥¹¥¯¡Ê1€Ä€Þ€¿€ÏÊ£¿ô¡Ë€¬ÂÔ€Á²òœü¡Ê¥¿¥¹¥¯ÀÚŽ¹€š€¢€ê¡Ë
54 *      (B) Á÷¿®ÂÔ€Á¥¿¥¹¥¯€¬¶¯À©ÂÔ€Á²òœü¡Êrel_wai¡Ë
55 *              (B-1) Á÷¿®ÂÔ€Á¥¿¥¹¥¯€ÎÂÔ€Á²òœü€Ê€·
56 *              (B-2) Á÷¿®ÂÔ€Á¥¿¥¹¥¯¡Ê1€Ä€Þ€¿€ÏÊ£¿ô¡Ë€¬ÂÔ€Á²òœü¡Ê¥¿¥¹¥¯ÀÚŽ¹€š€Ê€·¡Ë
57 *              (B-3) Á÷¿®ÂÔ€Á¥¿¥¹¥¯¡Ê1€Ä€Þ€¿€ÏÊ£¿ô¡Ë€¬ÂÔ€Á²òœü¡Ê¥¿¥¹¥¯ÀÚŽ¹€š€¢€ê¡Ë
58 *      (C) Á÷¿®ÂÔ€Á¥¿¥¹¥¯€¬¶¯À©ÂÔ€Á²òœü¡Êirel_wai¡Ë
59 *              (C-1) Á÷¿®ÂÔ€Á¥¿¥¹¥¯€ÎÂÔ€Á²òœü€Ê€·
60 *              (C-2) Á÷¿®ÂÔ€Á¥¿¥¹¥¯¡Ê1€Ä€Þ€¿€ÏÊ£¿ô¡Ë€¬ÂÔ€Á²òœü¡Ê¥¿¥¹¥¯ÀÚŽ¹€š€Ê€·¡Ë
61 *              (C-3) Á÷¿®ÂÔ€Á¥¿¥¹¥¯¡Ê1€Ä€Þ€¿€ÏÊ£¿ô¡Ë€¬ÂÔ€Á²òœü¡Ê¥¿¥¹¥¯ÀÚŽ¹€š€¢€ê¡Ë
62 *      (D) Á÷¿®ÂÔ€Á¥¿¥¹¥¯€¬¥¿¥€¥à¥¢¥Š¥È€ÇÂÔ€Á²òœü
63 *              (D-1) Á÷¿®ÂÔ€Á¥¿¥¹¥¯€ÎÂÔ€Á²òœü€Ê€·
64 *              (D-2) Á÷¿®ÂÔ€Á¥¿¥¹¥¯¡Ê1€Ä€Þ€¿€ÏÊ£¿ô¡Ë€¬ÂÔ€Á²òœü¡Ê¥¿¥¹¥¯ÀÚŽ¹€š€Ê€·¡Ë
65 *              (D-3) Á÷¿®ÂÔ€Á¥¿¥¹¥¯¡Ê1€Ä€Þ€¿€ÏÊ£¿ô¡Ë€¬ÂÔ€Á²òœü¡Ê¥¿¥¹¥¯ÀÚŽ¹€š€¢€ê¡Ë
66 *
67 * ¡Ú»ÈÍѥ꥜¡Œ¥¹¡Û
68 *
69 *      TASK1: ¹âÍ¥ÀèÅÙ¥¿¥¹¥¯¡€¥á¥€¥ó¥¿¥¹¥¯¡€ºÇœé€«€éµ¯Æ°
70 *      TASK2: ÃæÍ¥ÀèÅÙ¥¿¥¹¥¯
71 *      TASK3: ÄãÍ¥ÀèÅÙ¥¿¥¹¥¯
72 *      MBF1: ¥á¥Ã¥»¡Œ¥ž¥Ð¥Ã¥Õ¥¡¡ÊTA_NULL°À­¡€ºÇÂç¥á¥Ã¥»¡Œ¥ž¥µ¥€¥º¡§26¡€¥á¥Ã
73 *                ¥»¡Œ¥ž¥Ð¥Ã¥Õ¥¡ŽÉÍýÎΰè€Î¥µ¥€¥º¡§26¢ªŒÂºÝ€Ë€Ï28¡Ë
74 *
75 * ¡Ú¥Æ¥¹¥È¥·¡Œ¥±¥ó¥¹¡Û
76 *
77 *      == TASK1¡ÊÍ¥ÀèÅÙ¡§¹â¡Ë==
78 *              call(set_bit_func(bit_kernel))
79 *      1:      act_tsk(TASK2)
80 *              act_tsk(TASK3)
81 *              tslp_tsk(1) -> E_TMOUT
82 *      == TASK2-1¡ÊÍ¥ÀèÅÙ¡§Ãæ¡Ë1²ó€á ==
83 *      2:      snd_mbf(MBF1, string1, 26)
84 *      == TASK3¡ÊÍ¥ÀèÅÙ¡§Äã¡Ë==
85 *      3:      snd_mbf(MBF1, string2, 26)
86 *      == TASK1¡Ê³€­¡Ë==
87 *      4:      ter_tsk(TASK2)                                                                  ... (A-1)
88 *              tslp_tsk(1) -> E_TMOUT
89 *      == TASK1¡Ê³€­¡Ë==
90 *      5:      rcv_mbf(MBF1, buf1) -> 26
91 *              assert(strncmp(buf1, string2, 26) == 0)
92 *              act_tsk(TASK2)
93 *              tslp_tsk(1) -> E_TMOUT
94 *      == TASK2-2¡ÊÍ¥ÀèÅÙ¡§Ãæ¡Ë2²ó€á ==
95 *      6:      snd_mbf(MBF1, string1, 26)
96 *      == TASK3¡Ê³€­¡Ë==
97 *      7:      snd_mbf(MBF1, string3, 10)
98 *      == TASK1¡Ê³€­¡Ë==
99 *      8:      ter_tsk(TASK2)                                                                  ... (A-2)
100 *              slp_tsk()
101 *      == TASK3¡Ê³€­¡Ë==
102 *      9:      rcv_mbf(MBF1, buf1) -> 10
103 *              assert(strncmp(buf1, string3, 10) == 0)
104 *      10:     act_tsk(TASK2)
105 *      == TASK2-3¡ÊÍ¥ÀèÅÙ¡§Ãæ¡Ë3²ó€á ==
106 *      11:     snd_mbf(MBF1, string1, 26)
107 *      == TASK3¡Ê³€­¡Ë==
108 *      12:     wup_tsk(TASK1)
109 *      == TASK1¡Ê³€­¡Ë==
110 *      13:     snd_mbf(MBF1, string3, 10)
111 *      == TASK3¡Ê³€­¡Ë==
112 *      14:     ter_tsk(TASK2)                                                                  ... (A-3)
113 *      == TASK1¡Ê³€­¡Ë==
114 *      15:     rcv_mbf(MBF1, buf1) -> 10
115 *              assert(strncmp(buf1, string3, 10) == 0)
116 *              act_tsk(TASK2)
117 *              tslp_tsk(1) -> E_TMOUT
118 *      == TASK2-4¡ÊÍ¥ÀèÅÙ¡§Ãæ¡Ë4²ó€á ==
119 *      16:     snd_mbf(MBF1, string1, 26) -> E_RLWAI
120 *      == TASK3¡Ê³€­¡Ë==
121 *      17:     snd_mbf(MBF1, string2, 26)
122 *      == TASK1¡Ê³€­¡Ë==
123 *      18:     rel_wai(TASK2)                                                                  ... (B-1)
124 *              tslp_tsk(1) -> E_TMOUT
125 *      == TASK2-4¡Ê³€­¡Ë==
126 *      19:     slp_tsk()
127 *      == TASK1¡Ê³€­¡Ë==
128 *      20:     rcv_mbf(MBF1, buf1) -> 26
129 *              assert(strncmp(buf1, string2, 26) == 0)
130 *              wup_tsk(TASK2)
131 *              tslp_tsk(1) -> E_TMOUT
132 *      == TASK2-4¡Ê³€­¡Ë==
133 *      21:     snd_mbf(MBF1, string1, 26) -> E_RLWAI
134 *      == TASK3¡Ê³€­¡Ë==
135 *      22:     snd_mbf(MBF1, string3, 10)
136 *      == TASK1¡Ê³€­¡Ë==
137 *      23:     rel_wai(TASK2)                                                                  ... (B-2)
138 *              slp_tsk()
139 *      == TASK2-4¡Ê³€­¡Ë==
140 *      24:     slp_tsk()
141 *      == TASK3¡Ê³€­¡Ë==
142 *      25:     rcv_mbf(MBF1, buf1) -> 10
143 *              assert(strncmp(buf1, string3, 10) == 0)
144 *      26:     wup_tsk(TASK2)
145 *      == TASK2-4¡Ê³€­¡Ë==
146 *      27:     snd_mbf(MBF1, string1, 26) -> E_RLWAI
147 *      == TASK3¡Ê³€­¡Ë==
148 *      28:     wup_tsk(TASK1)
149 *      == TASK1¡Ê³€­¡Ë==
150 *      29:     snd_mbf(MBF1, string3, 10)
151 *      == TASK3¡Ê³€­¡Ë==
152 *      30:     rel_wai(TASK2)                                                                  ... (B-3)
153 *      == TASK1¡Ê³€­¡Ë==
154 *      31:     rcv_mbf(MBF1, buf1) -> 10
155 *              assert(strncmp(buf1, string3, 10) == 0)
156 *              tslp_tsk(1) -> E_TMOUT
157 *      == TASK2-4¡Ê³€­¡Ë==
158 *      32:     snd_mbf(MBF1, string1, 26) -> E_RLWAI
159 *      == TASK3¡Ê³€­¡Ë==
160 *      33:     snd_mbf(MBF1, string2, 26)
161 *      == TASK1¡Ê³€­¡Ë==
162 *      34:     sta_alm(ALM1, 1U)
163 *              slp_tsk()
164 *      == ALM1-1 ==
165 *      35:     irel_wai(TASK2)                                                                 ... (C-1)
166 *              iwup_tsk(TASK1)
167 *              RETURN
168 *      == TASK1¡Ê³€­¡Ë==
169 *      36:     tslp_tsk(1) -> E_TMOUT
170 *      == TASK2-4¡Ê³€­¡Ë==
171 *      37:     slp_tsk()
172 *      == TASK1¡Ê³€­¡Ë==
173 *      38:     rcv_mbf(MBF1, buf1) -> 26
174 *              assert(strncmp(buf1, string2, 26) == 0)
175 *              wup_tsk(TASK2)
176 *              tslp_tsk(1) -> E_TMOUT
177 *      == TASK2-4¡Ê³€­¡Ë==
178 *      39:     snd_mbf(MBF1, string1, 26) -> E_RLWAI
179 *      == TASK3¡Ê³€­¡Ë==
180 *      40:     snd_mbf(MBF1, string3, 10)
181 *      == TASK1¡Ê³€­¡Ë==
182 *      41:     sta_alm(ALM1, 1U)
183 *              slp_tsk()
184 *      == ALM1-2 ==
185 *      42:     irel_wai(TASK2)                                                                 ... (C-2)
186 *              RETURN
187 *      == TASK2-4¡Ê³€­¡Ë==
188 *      43:     slp_tsk()
189 *      == TASK3¡Ê³€­¡Ë==
190 *      44:     rcv_mbf(MBF1, buf1) -> 10
191 *              assert(strncmp(buf1, string3, 10) == 0)
192 *      45:     wup_tsk(TASK2)
193 *      == TASK2-4¡Ê³€­¡Ë==
194 *      46:     snd_mbf(MBF1, string1, 26) -> E_RLWAI
195 *      == TASK3¡Ê³€­¡Ë==
196 *      47:     wup_tsk(TASK1)
197 *      == TASK1¡Ê³€­¡Ë==
198 *      48:     snd_mbf(MBF1, string3, 10)
199 *      == TASK3¡Ê³€­¡Ë==
200 *      49:     sta_alm(ALM1, 1U)
201 *              slp_tsk()
202 *      == ALM1-3 ==
203 *      50:     irel_wai(TASK2)                                                                 ... (C-3)
204 *              RETURN
205 *      == TASK1¡Ê³€­¡Ë==
206 *      51:     rcv_mbf(MBF1, buf1) -> 10
207 *              assert(strncmp(buf1, string3, 10) == 0)
208 *              wup_tsk(TASK3)
209 *              slp_tsk()
210 *      == TASK2-4¡Ê³€­¡Ë==
211  *     52:     tsnd_mbf(MBF1, string1, 26, 1) -> E_TMOUT               ... (D-1)
212 *      == TASK3¡Ê³€­¡Ë==
213 *      53:     snd_mbf(MBF1, string2, 26)
214 *      == TASK2-4¡Ê³€­¡Ë==
215 *      54:     tslp_tsk(1) -> E_TMOUT
216 *      == TASK2-4¡Ê³€­¡Ë==
217 *      55:     rcv_mbf(MBF1, buf1) -> 26
218 *              assert(strncmp(buf1, string2, 26) == 0)
219 *      56:     tsnd_mbf(MBF1, string1, 26, 1) -> E_TMOUT               ... (D-2)
220 *      == TASK3¡Ê³€­¡Ë==
221 *      57:     snd_mbf(MBF1, string3, 10)
222 *      == TASK2-4¡Ê³€­¡Ë==
223 *      58:     slp_tsk()
224 *      == TASK3¡Ê³€­¡Ë==
225 *      59:     rcv_mbf(MBF1, buf1) -> 10
226 *              assert(strncmp(buf1, string3, 10) == 0)
227 *      60:     wup_tsk(TASK2)
228 *      == TASK2-4¡Ê³€­¡Ë==
229 *      61:     tsnd_mbf(MBF1, string1, 26, 1) -> E_TMOUT               ... (D-3)
230 *      == TASK3¡Ê³€­¡Ë==
231 *      62:     wup_tsk(TASK1)
232 *      == TASK1¡Ê³€­¡Ë==
233 *      63:     snd_mbf(MBF1, string3, 10)
234 *      == TASK3¡Ê³€­¡Ë==
235 *      64:     slp_tsk()
236 *      == TASK1¡Ê³€­¡Ë==
237 *      65:     rcv_mbf(MBF1, buf1) -> 10
238 *              assert(strncmp(buf1, string3, 10) == 0)
239 *              slp_tsk()
240 *      == TASK2-4¡Ê³€­¡Ë==
241 *      66:     END
242 */
243
244#include <kernel.h>
245#include <t_syslog.h>
246#include "kernel_cfg.h"
247#include "test_lib.h"
248#include "test_messagebuf2.h"
249#include <string.h>
250
251const char string1[26] = "abcdefghijklmnopqrstuvwxyz";
252const char string2[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
253const char string3[16] = "0123456789abcdef";
254
255char buf1[26];
256
257extern ER       bit_kernel(void);
258
259/* DO NOT DELETE THIS LINE -- gentest depends on it. */
260
261static uint_t   alarm1_count = 0;
262
263void
264alarm1_handler(intptr_t exinf)
265{
266        ER_UINT ercd;
267
268        switch (++alarm1_count) {
269        case 1:
270                check_point(35);
271                ercd = irel_wai(TASK2);
272                check_ercd(ercd, E_OK);
273
274                ercd = iwup_tsk(TASK1);
275                check_ercd(ercd, E_OK);
276
277                return;
278
279                check_point(0);
280
281        case 2:
282                check_point(42);
283                ercd = irel_wai(TASK2);
284                check_ercd(ercd, E_OK);
285
286                return;
287
288                check_point(0);
289
290        case 3:
291                check_point(50);
292                ercd = irel_wai(TASK2);
293                check_ercd(ercd, E_OK);
294
295                return;
296
297                check_point(0);
298
299        default:
300                check_point(0);
301        }
302        check_point(0);
303}
304
305void
306task1(intptr_t exinf)
307{
308        ER_UINT ercd;
309
310        test_start(__FILE__);
311
312        set_bit_func(bit_kernel);
313
314        check_point(1);
315        ercd = act_tsk(TASK2);
316        check_ercd(ercd, E_OK);
317
318        ercd = act_tsk(TASK3);
319        check_ercd(ercd, E_OK);
320
321        ercd = tslp_tsk(1);
322        check_ercd(ercd, E_TMOUT);
323
324        check_point(4);
325        ercd = ter_tsk(TASK2);
326        check_ercd(ercd, E_OK);
327
328        ercd = tslp_tsk(1);
329        check_ercd(ercd, E_TMOUT);
330
331        check_point(5);
332        ercd = rcv_mbf(MBF1, buf1);
333        check_ercd(ercd, 26);
334
335        check_assert(strncmp(buf1, string2, 26) == 0);
336
337        ercd = act_tsk(TASK2);
338        check_ercd(ercd, E_OK);
339
340        ercd = tslp_tsk(1);
341        check_ercd(ercd, E_TMOUT);
342
343        check_point(8);
344        ercd = ter_tsk(TASK2);
345        check_ercd(ercd, E_OK);
346
347        ercd = slp_tsk();
348        check_ercd(ercd, E_OK);
349
350        check_point(13);
351        ercd = snd_mbf(MBF1, string3, 10);
352        check_ercd(ercd, E_OK);
353
354        check_point(15);
355        ercd = rcv_mbf(MBF1, buf1);
356        check_ercd(ercd, 10);
357
358        check_assert(strncmp(buf1, string3, 10) == 0);
359
360        ercd = act_tsk(TASK2);
361        check_ercd(ercd, E_OK);
362
363        ercd = tslp_tsk(1);
364        check_ercd(ercd, E_TMOUT);
365
366        check_point(18);
367        ercd = rel_wai(TASK2);
368        check_ercd(ercd, E_OK);
369
370        ercd = tslp_tsk(1);
371        check_ercd(ercd, E_TMOUT);
372
373        check_point(20);
374        ercd = rcv_mbf(MBF1, buf1);
375        check_ercd(ercd, 26);
376
377        check_assert(strncmp(buf1, string2, 26) == 0);
378
379        ercd = wup_tsk(TASK2);
380        check_ercd(ercd, E_OK);
381
382        ercd = tslp_tsk(1);
383        check_ercd(ercd, E_TMOUT);
384
385        check_point(23);
386        ercd = rel_wai(TASK2);
387        check_ercd(ercd, E_OK);
388
389        ercd = slp_tsk();
390        check_ercd(ercd, E_OK);
391
392        check_point(29);
393        ercd = snd_mbf(MBF1, string3, 10);
394        check_ercd(ercd, E_OK);
395
396        check_point(31);
397        ercd = rcv_mbf(MBF1, buf1);
398        check_ercd(ercd, 10);
399
400        check_assert(strncmp(buf1, string3, 10) == 0);
401
402        ercd = tslp_tsk(1);
403        check_ercd(ercd, E_TMOUT);
404
405        check_point(34);
406        ercd = sta_alm(ALM1, 1U);
407        check_ercd(ercd, E_OK);
408
409        ercd = slp_tsk();
410        check_ercd(ercd, E_OK);
411
412        check_point(36);
413        ercd = tslp_tsk(1);
414        check_ercd(ercd, E_TMOUT);
415
416        check_point(38);
417        ercd = rcv_mbf(MBF1, buf1);
418        check_ercd(ercd, 26);
419
420        check_assert(strncmp(buf1, string2, 26) == 0);
421
422        ercd = wup_tsk(TASK2);
423        check_ercd(ercd, E_OK);
424
425        ercd = tslp_tsk(1);
426        check_ercd(ercd, E_TMOUT);
427
428        check_point(41);
429        ercd = sta_alm(ALM1, 1U);
430        check_ercd(ercd, E_OK);
431
432        ercd = slp_tsk();
433        check_ercd(ercd, E_OK);
434
435        check_point(48);
436        ercd = snd_mbf(MBF1, string3, 10);
437        check_ercd(ercd, E_OK);
438
439        check_point(51);
440        ercd = rcv_mbf(MBF1, buf1);
441        check_ercd(ercd, 10);
442
443        check_assert(strncmp(buf1, string3, 10) == 0);
444
445        ercd = wup_tsk(TASK3);
446        check_ercd(ercd, E_OK);
447
448        ercd = slp_tsk();
449        check_ercd(ercd, E_OK);
450
451        check_point(63);
452        ercd = snd_mbf(MBF1, string3, 10);
453        check_ercd(ercd, E_OK);
454
455        check_point(65);
456        ercd = rcv_mbf(MBF1, buf1);
457        check_ercd(ercd, 10);
458
459        check_assert(strncmp(buf1, string3, 10) == 0);
460
461        ercd = slp_tsk();
462        check_ercd(ercd, E_OK);
463
464        check_point(0);
465}
466
467static uint_t   task2_count = 0;
468
469void
470task2(intptr_t exinf)
471{
472        ER_UINT ercd;
473
474        switch (++task2_count) {
475        case 1:
476                check_point(2);
477                ercd = snd_mbf(MBF1, string1, 26);
478                check_ercd(ercd, E_OK);
479
480                check_point(0);
481
482        case 2:
483                check_point(6);
484                ercd = snd_mbf(MBF1, string1, 26);
485                check_ercd(ercd, E_OK);
486
487                check_point(0);
488
489        case 3:
490                check_point(11);
491                ercd = snd_mbf(MBF1, string1, 26);
492                check_ercd(ercd, E_OK);
493
494                check_point(0);
495
496        case 4:
497                check_point(16);
498                ercd = snd_mbf(MBF1, string1, 26);
499                check_ercd(ercd, E_RLWAI);
500
501                check_point(19);
502                ercd = slp_tsk();
503                check_ercd(ercd, E_OK);
504
505                check_point(21);
506                ercd = snd_mbf(MBF1, string1, 26);
507                check_ercd(ercd, E_RLWAI);
508
509                check_point(24);
510                ercd = slp_tsk();
511                check_ercd(ercd, E_OK);
512
513                check_point(27);
514                ercd = snd_mbf(MBF1, string1, 26);
515                check_ercd(ercd, E_RLWAI);
516
517                check_point(32);
518                ercd = snd_mbf(MBF1, string1, 26);
519                check_ercd(ercd, E_RLWAI);
520
521                check_point(37);
522                ercd = slp_tsk();
523                check_ercd(ercd, E_OK);
524
525                check_point(39);
526                ercd = snd_mbf(MBF1, string1, 26);
527                check_ercd(ercd, E_RLWAI);
528
529                check_point(43);
530                ercd = slp_tsk();
531                check_ercd(ercd, E_OK);
532
533                check_point(46);
534                ercd = snd_mbf(MBF1, string1, 26);
535                check_ercd(ercd, E_RLWAI);
536
537                check_point(52);
538                ercd = tsnd_mbf(MBF1, string1, 26, 1);
539                check_ercd(ercd, E_TMOUT);
540
541                check_point(54);
542                ercd = tslp_tsk(1);
543                check_ercd(ercd, E_TMOUT);
544
545                check_point(55);
546                ercd = rcv_mbf(MBF1, buf1);
547                check_ercd(ercd, 26);
548
549                check_assert(strncmp(buf1, string2, 26) == 0);
550
551                check_point(56);
552                ercd = tsnd_mbf(MBF1, string1, 26, 1);
553                check_ercd(ercd, E_TMOUT);
554
555                check_point(58);
556                ercd = slp_tsk();
557                check_ercd(ercd, E_OK);
558
559                check_point(61);
560                ercd = tsnd_mbf(MBF1, string1, 26, 1);
561                check_ercd(ercd, E_TMOUT);
562
563                check_finish(66);
564                check_point(0);
565
566        default:
567                check_point(0);
568        }
569        check_point(0);
570}
571
572void
573task3(intptr_t exinf)
574{
575        ER_UINT ercd;
576
577        check_point(3);
578        ercd = snd_mbf(MBF1, string2, 26);
579        check_ercd(ercd, E_OK);
580
581        check_point(7);
582        ercd = snd_mbf(MBF1, string3, 10);
583        check_ercd(ercd, E_OK);
584
585        check_point(9);
586        ercd = rcv_mbf(MBF1, buf1);
587        check_ercd(ercd, 10);
588
589        check_assert(strncmp(buf1, string3, 10) == 0);
590
591        check_point(10);
592        ercd = act_tsk(TASK2);
593        check_ercd(ercd, E_OK);
594
595        check_point(12);
596        ercd = wup_tsk(TASK1);
597        check_ercd(ercd, E_OK);
598
599        check_point(14);
600        ercd = ter_tsk(TASK2);
601        check_ercd(ercd, E_OK);
602
603        check_point(17);
604        ercd = snd_mbf(MBF1, string2, 26);
605        check_ercd(ercd, E_OK);
606
607        check_point(22);
608        ercd = snd_mbf(MBF1, string3, 10);
609        check_ercd(ercd, E_OK);
610
611        check_point(25);
612        ercd = rcv_mbf(MBF1, buf1);
613        check_ercd(ercd, 10);
614
615        check_assert(strncmp(buf1, string3, 10) == 0);
616
617        check_point(26);
618        ercd = wup_tsk(TASK2);
619        check_ercd(ercd, E_OK);
620
621        check_point(28);
622        ercd = wup_tsk(TASK1);
623        check_ercd(ercd, E_OK);
624
625        check_point(30);
626        ercd = rel_wai(TASK2);
627        check_ercd(ercd, E_OK);
628
629        check_point(33);
630        ercd = snd_mbf(MBF1, string2, 26);
631        check_ercd(ercd, E_OK);
632
633        check_point(40);
634        ercd = snd_mbf(MBF1, string3, 10);
635        check_ercd(ercd, E_OK);
636
637        check_point(44);
638        ercd = rcv_mbf(MBF1, buf1);
639        check_ercd(ercd, 10);
640
641        check_assert(strncmp(buf1, string3, 10) == 0);
642
643        check_point(45);
644        ercd = wup_tsk(TASK2);
645        check_ercd(ercd, E_OK);
646
647        check_point(47);
648        ercd = wup_tsk(TASK1);
649        check_ercd(ercd, E_OK);
650
651        check_point(49);
652        ercd = sta_alm(ALM1, 1U);
653        check_ercd(ercd, E_OK);
654
655        ercd = slp_tsk();
656        check_ercd(ercd, E_OK);
657
658        check_point(53);
659        ercd = snd_mbf(MBF1, string2, 26);
660        check_ercd(ercd, E_OK);
661
662        check_point(57);
663        ercd = snd_mbf(MBF1, string3, 10);
664        check_ercd(ercd, E_OK);
665
666        check_point(59);
667        ercd = rcv_mbf(MBF1, buf1);
668        check_ercd(ercd, 10);
669
670        check_assert(strncmp(buf1, string3, 10) == 0);
671
672        check_point(60);
673        ercd = wup_tsk(TASK2);
674        check_ercd(ercd, E_OK);
675
676        check_point(62);
677        ercd = wup_tsk(TASK1);
678        check_ercd(ercd, E_OK);
679
680        check_point(64);
681        ercd = slp_tsk();
682        check_ercd(ercd, E_OK);
683
684        check_point(0);
685}
詳しい使い方は TracBrowser を参照してください。