|
@@ -19,10 +19,51 @@ from Tools.LyTestTools.ly_test_tools.log.log_monitor import LogMonitor
|
|
|
|
|
|
import Tools.LyTestTools.ly_test_tools.environment.waiter as waiter
|
|
import Tools.LyTestTools.ly_test_tools.environment.waiter as waiter
|
|
|
|
|
|
|
|
+# Saves the level cache folder.
|
|
|
|
+# These artifacts will be saved in the test results so developers can access the level assets
|
|
|
|
+# to debug should the test ever fail.
|
|
|
|
+def save_multiplayer_level_cache_folder_artifact(workspace, multiplayer_level):
|
|
|
|
+ level_cache_folder_path = os.path.join(workspace.paths.platform_cache(), "levels", "multiplayer", multiplayer_level)
|
|
|
|
+
|
|
|
|
+ if os.path.exists(level_cache_folder_path):
|
|
|
|
+ workspace.artifact_manager.save_artifact(level_cache_folder_path)
|
|
|
|
+ else:
|
|
|
|
+ pytest.fail(f"Failed to find level asset cache for '{multiplayer_level}', located here: '{level_cache_folder_path}'! Make sure AssetProcessor successfully built the level.")
|
|
|
|
+
|
|
|
|
+
|
|
@pytest.mark.SUITE_sandbox
|
|
@pytest.mark.SUITE_sandbox
|
|
@pytest.mark.parametrize("project", ["AutomatedTesting"])
|
|
@pytest.mark.parametrize("project", ["AutomatedTesting"])
|
|
@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
|
|
@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
|
|
class TestAutomation(EditorTestSuite):
|
|
class TestAutomation(EditorTestSuite):
|
|
|
|
+ class test_Multiplayer_AutoComponent_NetworkInput(EditorSingleTest):
|
|
|
|
+ from .tests import Multiplayer_AutoComponent_NetworkInput as test_module
|
|
|
|
+
|
|
|
|
+ @classmethod
|
|
|
|
+ def setup(cls, instance, request, workspace, editor, editor_test_results, launcher_platform):
|
|
|
|
+ save_multiplayer_level_cache_folder_artifact(workspace, "autocomponent_networkinput")
|
|
|
|
+
|
|
|
|
+ @pytest.mark.xfail(reason="GHI #9869: Test periodically fails")
|
|
|
|
+ class test_Multiplayer_AutoComponent_RPC(EditorSingleTest):
|
|
|
|
+ from .tests import Multiplayer_AutoComponent_RPC as test_module
|
|
|
|
+
|
|
|
|
+ @classmethod
|
|
|
|
+ def setup(cls, instance, request, workspace, editor, editor_test_results, launcher_platform):
|
|
|
|
+ save_multiplayer_level_cache_folder_artifact(workspace, "autocomponent_rpc")
|
|
|
|
+
|
|
|
|
+ class test_Multiplayer_BasicConnectivity_Connects(EditorSingleTest):
|
|
|
|
+ from .tests import Multiplayer_BasicConnectivity_Connects as test_module
|
|
|
|
+
|
|
|
|
+ @classmethod
|
|
|
|
+ def setup(cls, instance, request, workspace, editor, editor_test_results, launcher_platform):
|
|
|
|
+ save_multiplayer_level_cache_folder_artifact(workspace, "basicconnectivity_connects")
|
|
|
|
+
|
|
|
|
+ class test_Multiplayer_SimpleNetworkLevelEntity(EditorSingleTest):
|
|
|
|
+ from .tests import Multiplayer_SimpleNetworkLevelEntity as test_module
|
|
|
|
+
|
|
|
|
+ @classmethod
|
|
|
|
+ def setup(cls, instance, request, workspace, editor, editor_test_results, launcher_platform):
|
|
|
|
+ save_multiplayer_level_cache_folder_artifact(workspace, "simplenetworklevelentity")
|
|
|
|
+
|
|
def test_Multiplayer_SimpleGameServerLauncher_ConnectsSuccessfully(self, workspace, launcher_platform, crash_log_watchdog):
|
|
def test_Multiplayer_SimpleGameServerLauncher_ConnectsSuccessfully(self, workspace, launcher_platform, crash_log_watchdog):
|
|
unexpected_lines = []
|
|
unexpected_lines = []
|
|
expected_lines = ["New outgoing connection to remote address:"]
|
|
expected_lines = ["New outgoing connection to remote address:"]
|