mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +00:00 
			
		
		
		
	fix flakey
This commit is contained in:
		| @@ -52,10 +52,16 @@ void SchedulerBulkCleanupComponent::trigger_bulk_cleanup() { | ||||
|   }); | ||||
|  | ||||
|   // Also schedule some normal timeouts to ensure scheduler keeps working after cleanup | ||||
|   static int post_cleanup_count = 0; | ||||
|   for (int i = 0; i < 5; i++) { | ||||
|     std::string name = "post_cleanup_" + std::to_string(i); | ||||
|     App.scheduler.set_timeout(this, name, 50 + i * 25, | ||||
|                               [i]() { ESP_LOGI(TAG, "Post-cleanup timeout %d executed correctly", i); }); | ||||
|     App.scheduler.set_timeout(this, name, 50 + i * 25, [i]() { | ||||
|       ESP_LOGI(TAG, "Post-cleanup timeout %d executed correctly", i); | ||||
|       post_cleanup_count++; | ||||
|       if (post_cleanup_count >= 5) { | ||||
|         ESP_LOGI(TAG, "All post-cleanup timeouts completed - test finished"); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -64,14 +64,13 @@ async def test_scheduler_bulk_cleanup( | ||||
|             match = re.search(r"Post-cleanup timeout (\d+) executed correctly", line) | ||||
|             if match: | ||||
|                 post_cleanup_executed += 1 | ||||
|                 # All 5 post-cleanup timeouts have executed | ||||
|                 if post_cleanup_executed >= 5 and not test_complete_future.done(): | ||||
|                     test_complete_future.set_result(None) | ||||
|  | ||||
|         # Check for bulk cleanup completion (but don't end test yet) | ||||
|         if "Bulk cleanup test complete" in line: | ||||
|             # This just means the interval finished, not that all timeouts executed | ||||
|             pass | ||||
|         # Check for final test completion | ||||
|         if ( | ||||
|             "All post-cleanup timeouts completed - test finished" in line | ||||
|             and not test_complete_future.done() | ||||
|         ): | ||||
|             test_complete_future.set_result(None) | ||||
|  | ||||
|     async with ( | ||||
|         run_compiled(yaml_config, line_callback=on_log_line), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user