136: /*==================================================
137:  * TEST 2
138:  * scan後 eventually lock/end/off
139:  *
140:  * SPEC:
141:  * AG(state = SCANNING ->
142:  *    AF(state = LOCKED |
143:  *       state = HIGH |
144:  *       state = OFF))
145:  *==================================================*/
146: 
147: void test_scan_eventually_stops(void)
148: {
149:     RadioState s;
150: 
151:     s = STATE_HIGH;
152: 
153:     s = radio_transition(s, EVENT_SCAN);
154: 
155:     assert(s == STATE_SCANNING);
156: 
157:     s = radio_transition(s, EVENT_LOCK);
158: 
159:     assert(
160:         s == STATE_LOCKED ||
161:         s == STATE_HIGH ||
162:         s == STATE_OFF);
163: 
164:     s = STATE_HIGH;
165: 
166:     s = radio_transition(s, EVENT_SCAN);
167: 
168:     s = radio_transition(s, EVENT_END);
169: 
170:     assert(
171:         s == STATE_HIGH ||
172:         s == STATE_LOCKED ||
173:         s == STATE_OFF);
174: 
175:     printf("PASS: scan eventually stops\n");
176: }
