mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +00:00 
			
		
		
		
	cover
This commit is contained in:
		
							
								
								
									
										36
									
								
								tests/integration/fixtures/defer_fifo_simple.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								tests/integration/fixtures/defer_fifo_simple.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | ||||
| esphome: | ||||
|   name: defer-fifo-simple | ||||
|   on_boot: | ||||
|     - lambda: |- | ||||
|         // Simple test: defer 10 items and verify they execute in order | ||||
|         static int execution_order = 0; | ||||
|         static bool test_passed = true; | ||||
|  | ||||
|         for (int i = 0; i < 10; i++) { | ||||
|           int expected = i; | ||||
|           App.scheduler.set_timeout((Component*)nullptr, nullptr, 0, [expected]() { | ||||
|             ESP_LOGD("defer_test", "Deferred item %d executed, order %d", expected, execution_order); | ||||
|             if (execution_order != expected) { | ||||
|               ESP_LOGE("defer_test", "FIFO violation: expected %d but got execution order %d", expected, execution_order); | ||||
|               test_passed = false; | ||||
|             } | ||||
|             execution_order++; | ||||
|  | ||||
|             if (execution_order == 10) { | ||||
|               if (test_passed) { | ||||
|                 ESP_LOGI("defer_test", "✓ FIFO order test PASSED - all 10 items executed in correct order"); | ||||
|               } else { | ||||
|                 ESP_LOGE("defer_test", "✗ FIFO order test FAILED - items executed out of order"); | ||||
|               } | ||||
|             } | ||||
|           }); | ||||
|         } | ||||
|  | ||||
|         ESP_LOGD("defer_test", "Deferred 10 items, waiting for execution..."); | ||||
|  | ||||
| host: | ||||
|  | ||||
| logger: | ||||
|   level: DEBUG | ||||
|  | ||||
| api: | ||||
							
								
								
									
										29
									
								
								tests/integration/test_defer_fifo_simple.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								tests/integration/test_defer_fifo_simple.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | ||||
| """Simple test that defer() maintains FIFO order.""" | ||||
|  | ||||
| import asyncio | ||||
|  | ||||
| import pytest | ||||
|  | ||||
| from .types import APIClientConnectedFactory, RunCompiledFunction | ||||
|  | ||||
|  | ||||
| @pytest.mark.asyncio | ||||
| async def test_defer_fifo_simple( | ||||
|     yaml_config: str, | ||||
|     run_compiled: RunCompiledFunction, | ||||
|     api_client_connected: APIClientConnectedFactory, | ||||
| ) -> None: | ||||
|     """Test that defer() maintains FIFO order with a simple test.""" | ||||
|  | ||||
|     async with run_compiled(yaml_config), api_client_connected() as client: | ||||
|         # Just verify we can connect and the device is running | ||||
|         device_info = await client.device_info() | ||||
|         assert device_info is not None | ||||
|         assert device_info.name == "defer-fifo-simple" | ||||
|  | ||||
|         # Give the test component time to run | ||||
|         await asyncio.sleep(5) | ||||
|  | ||||
|         # The component will log results, we mainly want to ensure | ||||
|         # it doesn't crash and completes successfully | ||||
|         print("Defer FIFO simple test completed") | ||||
		Reference in New Issue
	
	Block a user