From c3fe375e8ff13c024faae837a0037f4117cba6ff Mon Sep 17 00:00:00 2001 From: jromnoa Date: Tue, 18 May 2021 17:19:40 -0700 Subject: [PATCH] add some extra general.idle_wait() and general.idle_wait_frames() calls to increase test stability to stop race condition / intermittent failure in test --- ...ydra_AtomEditorComponents_AddedToEntity.py | 23 ++++++++++++------- .../atom_renderer/test_Atom_MainSuite.py | 2 +- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/AutomatedTesting/Gem/PythonTests/atom_renderer/atom_hydra_scripts/hydra_AtomEditorComponents_AddedToEntity.py b/AutomatedTesting/Gem/PythonTests/atom_renderer/atom_hydra_scripts/hydra_AtomEditorComponents_AddedToEntity.py index e701ff8d16..f09da298f8 100644 --- a/AutomatedTesting/Gem/PythonTests/atom_renderer/atom_hydra_scripts/hydra_AtomEditorComponents_AddedToEntity.py +++ b/AutomatedTesting/Gem/PythonTests/atom_renderer/atom_hydra_scripts/hydra_AtomEditorComponents_AddedToEntity.py @@ -63,13 +63,13 @@ def run(): # undo component addition general.undo() - TestHelper.wait_for_condition(lambda: not hydra.has_components(new_entity.id, [component_name]), 2.0) + TestHelper.wait_for_condition(lambda: not hydra.has_components(new_entity.id, [component_name]), 1.5) general.log(f"{component_name}_test: Component removed after UNDO: " f"{not hydra.has_components(new_entity.id, [component_name])}") # redo component addition general.redo() - TestHelper.wait_for_condition(lambda: hydra.has_components(new_entity.id, [component_name]), 2.0) + TestHelper.wait_for_condition(lambda: hydra.has_components(new_entity.id, [component_name]), 1.5) general.log(f"{component_name}_test: Component added after REDO: " f"{hydra.has_components(new_entity.id, [component_name])}") @@ -77,10 +77,10 @@ def run(): def verify_enter_exit_game_mode(component_name): general.enter_game_mode() - TestHelper.wait_for_condition(lambda: general.is_in_game_mode(), 1.0) + TestHelper.wait_for_condition(lambda: general.is_in_game_mode(), 1.5) general.log(f"{component_name}_test: Entered game mode: {general.is_in_game_mode()}") general.exit_game_mode() - TestHelper.wait_for_condition(lambda: not general.is_in_game_mode(), 1.0) + TestHelper.wait_for_condition(lambda: not general.is_in_game_mode(), 1.5) general.log(f"{component_name}_test: Exit game mode: {not general.is_in_game_mode()}") def verify_hide_unhide_entity(component_name, entity_obj): @@ -97,16 +97,16 @@ def run(): def verify_deletion_undo_redo(component_name, entity_obj): editor.ToolsApplicationRequestBus(bus.Broadcast, "DeleteEntityById", entity_obj.id) - TestHelper.wait_for_condition(lambda: not hydra.find_entity_by_name(entity_obj.name), 1.0) + TestHelper.wait_for_condition(lambda: not hydra.find_entity_by_name(entity_obj.name), 1.5) general.log(f"{component_name}_test: Entity deleted: {not hydra.find_entity_by_name(entity_obj.name)}") general.undo() - TestHelper.wait_for_condition(lambda: hydra.find_entity_by_name(entity_obj.name) is not None, 1.0) + TestHelper.wait_for_condition(lambda: hydra.find_entity_by_name(entity_obj.name) is not None, 1.5) general.log(f"{component_name}_test: UNDO entity deletion works: " f"{hydra.find_entity_by_name(entity_obj.name) is not None}") general.redo() - TestHelper.wait_for_condition(lambda: not hydra.find_entity_by_name(entity_obj.name), 1.0) + TestHelper.wait_for_condition(lambda: not hydra.find_entity_by_name(entity_obj.name), 1.5) general.log(f"{component_name}_test: REDO entity deletion works: " f"{not hydra.find_entity_by_name(entity_obj.name)}") @@ -120,7 +120,7 @@ def run(): f"{not is_component_enabled(entity_obj.components[0])}") for component in components_to_add: entity_obj.add_component(component) - TestHelper.wait_for_condition(lambda: is_component_enabled(entity_obj.components[0]), 1.0) + TestHelper.wait_for_condition(lambda: is_component_enabled(entity_obj.components[0]), 1.5) general.log( f"{component_name}_test: Entity enabled after adding " f"required components: {is_component_enabled(entity_obj.components[0])}" @@ -135,7 +135,9 @@ def run(): # Delete all existing entities initially search_filter = azlmbr.entity.SearchFilter() all_entities = entity.SearchBus(azlmbr.bus.Broadcast, "SearchEntities", search_filter) + general.idle_wait_frames(1) editor.ToolsApplicationRequestBus(bus.Broadcast, "DeleteEntities", all_entities) + general.idle_wait_frames(1) class ComponentTests: """Test launcher for each component.""" @@ -147,9 +149,11 @@ def run(): def run_component_tests(self): # Run common and additional tests entity_obj = create_entity_undo_redo_component_addition(self.component_name) + general.idle_wait(0.5) # Enter/Exit game mode test verify_enter_exit_game_mode(self.component_name) + general.idle_wait(0.5) # Any additional tests are executed here for test in self.additional_tests: @@ -157,13 +161,16 @@ def run(): # Hide/Unhide entity test verify_hide_unhide_entity(self.component_name, entity_obj) + general.idle_wait(0.5) # Deletion/Undo/Redo test verify_deletion_undo_redo(self.component_name, entity_obj) + general.idle_wait(0.5) # DepthOfField Component camera_entity = hydra.Entity("camera_entity") camera_entity.create_entity(math.Vector3(512.0, 512.0, 34.0), ["Camera"]) + general.idle_wait(0.5) depth_of_field = "DepthOfField" ComponentTests( depth_of_field, diff --git a/AutomatedTesting/Gem/PythonTests/atom_renderer/test_Atom_MainSuite.py b/AutomatedTesting/Gem/PythonTests/atom_renderer/test_Atom_MainSuite.py index 0b75760e05..7589375ee9 100644 --- a/AutomatedTesting/Gem/PythonTests/atom_renderer/test_Atom_MainSuite.py +++ b/AutomatedTesting/Gem/PythonTests/atom_renderer/test_Atom_MainSuite.py @@ -163,7 +163,7 @@ class TestAtomEditorComponentsMain(object): ] unexpected_lines = [ - "failed to open", + "Trace::Error", "Traceback (most recent call last):", ]