| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | from __future__ import print_function | 
					
						
							| 
									
										
										
										
											2019-11-27 11:58:07 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | import ttfw_idf | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Timer events | 
					
						
							|  |  |  | TIMER_EVENT_LIMIT = 3 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  | TIMER_EXPIRY_HANDLING = 'TIMER_EVENTS:TIMER_EVENT_EXPIRY: timer_expiry_handler, executed {} out of ' + str(TIMER_EVENT_LIMIT) + ' times' | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Task events | 
					
						
							|  |  |  | TASK_ITERATION_LIMIT = 5 | 
					
						
							|  |  |  | TASK_UNREGISTRATION_LIMIT = 3 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  | TASK_ITERATION_POST = 'TASK_EVENTS:TASK_ITERATION_EVENT: posting to default loop, {} out of ' + str(TASK_ITERATION_LIMIT) | 
					
						
							|  |  |  | TASK_ITERATION_HANDLING = 'TASK_EVENTS:TASK_ITERATION_EVENT: task_iteration_handler, executed {} times' | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-04 08:32:48 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | def _test_timer_events(dut): | 
					
						
							|  |  |  |     dut.start_app() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  |     print('Checking timer events posting and handling') | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  |     dut.expect('setting up') | 
					
						
							|  |  |  |     dut.expect('starting event sources') | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  |     print('Finished setup') | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  |     dut.expect('TIMER_EVENTS:TIMER_EVENT_STARTED: posting to default loop') | 
					
						
							|  |  |  |     print('Posted timer started event') | 
					
						
							|  |  |  |     dut.expect('TIMER_EVENTS:TIMER_EVENT_STARTED: timer_started_handler, instance 0') | 
					
						
							|  |  |  |     dut.expect('TIMER_EVENTS:TIMER_EVENT_STARTED: timer_started_handler, instance 1') | 
					
						
							|  |  |  |     dut.expect('TIMER_EVENTS:TIMER_EVENT_STARTED: timer_started_handler_2') | 
					
						
							|  |  |  |     dut.expect('TIMER_EVENTS:TIMER_EVENT_STARTED: timer_any_handler') | 
					
						
							|  |  |  |     dut.expect('TIMER_EVENTS:TIMER_EVENT_STARTED: all_event_handler') | 
					
						
							|  |  |  |     print('Handled timer started event') | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     for expiries in range(1, TIMER_EVENT_LIMIT + 1): | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  |         dut.expect('TIMER_EVENTS:TIMER_EVENT_EXPIRY: posting to default loop') | 
					
						
							|  |  |  |         print('Posted timer expiry event {} out of {}'.format(expiries, TIMER_EVENT_LIMIT)) | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-13 10:51:31 +08:00
										 |  |  |         if expiries >= TIMER_EVENT_LIMIT: | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  |             dut.expect('TIMER_EVENTS:TIMER_EVENT_STOPPED: posting to default loop') | 
					
						
							|  |  |  |             print('Posted timer stopped event') | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-13 10:51:31 +08:00
										 |  |  |         dut.expect(TIMER_EXPIRY_HANDLING.format(expiries)) | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  |         dut.expect('TIMER_EVENTS:TIMER_EVENT_EXPIRY: timer_any_handler') | 
					
						
							|  |  |  |         dut.expect('TIMER_EVENTS:TIMER_EVENT_EXPIRY: all_event_handler') | 
					
						
							| 
									
										
										
										
											2019-02-13 10:51:31 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  |         print('Handled timer expiry event {} out of {}'.format(expiries, TIMER_EVENT_LIMIT)) | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  |     dut.expect('TIMER_EVENTS:TIMER_EVENT_STOPPED: timer_stopped_handler') | 
					
						
							|  |  |  |     dut.expect('TIMER_EVENTS:TIMER_EVENT_STOPPED: deleted timer event source') | 
					
						
							|  |  |  |     print('Handled timer stopped event') | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-04 08:32:48 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | def _test_iteration_events(dut): | 
					
						
							|  |  |  |     dut.start_app() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  |     print('Checking iteration events posting and handling') | 
					
						
							|  |  |  |     dut.expect('setting up') | 
					
						
							|  |  |  |     dut.expect('starting event sources') | 
					
						
							|  |  |  |     print('Finished setup') | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     for iteration in range(1, TASK_ITERATION_LIMIT + 1): | 
					
						
							|  |  |  |         dut.expect(TASK_ITERATION_POST.format(iteration)) | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  |         print('Posted iteration {} out of {}'.format(iteration, TASK_ITERATION_LIMIT)) | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if iteration < TASK_UNREGISTRATION_LIMIT: | 
					
						
							| 
									
										
										
										
											2019-02-13 10:51:31 +08:00
										 |  |  |             dut.expect(TASK_ITERATION_HANDLING.format(iteration)) | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  |             dut.expect('TASK_EVENTS:TASK_ITERATION_EVENT: all_event_handler') | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  |         elif iteration == TASK_UNREGISTRATION_LIMIT: | 
					
						
							| 
									
										
										
										
											2021-03-12 14:05:17 +08:00
										 |  |  |             dut.expect_all('TASK_EVENTS:TASK_ITERATION_EVENT: unregistering task_iteration_handler', | 
					
						
							|  |  |  |                            'TASK_EVENTS:TASK_ITERATION_EVENT: all_event_handler') | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  |             print('Unregistered handler at iteration {} out of {}'.format(iteration, TASK_ITERATION_LIMIT)) | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  |         else: | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  |             dut.expect('TASK_EVENTS:TASK_ITERATION_EVENT: all_event_handler') | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  |         print('Handled iteration {} out of {}'.format(iteration, TASK_ITERATION_LIMIT)) | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-26 10:49:01 +08:00
										 |  |  |     dut.expect('TASK_EVENTS:TASK_ITERATION_EVENT: deleting task event source') | 
					
						
							|  |  |  |     print('Deleted task event source') | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-04 08:32:48 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-29 18:50:25 +08:00
										 |  |  | @ttfw_idf.idf_example_test(env_tag='Example_GENERIC', target=['esp32', 'esp32c3']) | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | def test_default_event_loop_example(env, extra_data): | 
					
						
							| 
									
										
										
										
											2019-10-15 15:12:53 +08:00
										 |  |  |     dut = env.get_dut('default_event_loop', 'examples/system/esp_event/default_event_loop') | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     _test_iteration_events(dut) | 
					
						
							|  |  |  |     _test_timer_events(dut) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-04 08:32:48 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-26 13:14:19 +08:00
										 |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  |     test_default_event_loop_example() |