2
0

TestSuite_Main_GPU.py 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. """
  2. Copyright (c) Contributors to the Open 3D Engine Project.
  3. For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. SPDX-License-Identifier: Apache-2.0 OR MIT
  5. """
  6. import logging
  7. import os
  8. import pytest
  9. import ly_test_tools.environment.file_system as file_system
  10. from ly_test_tools.o3de.atom_tools_test import AtomToolsTestSuite, AtomToolsSingleTest
  11. from ly_test_tools.o3de.editor_test import EditorSingleTest, EditorTestSuite, EditorBatchedTest
  12. from Atom.atom_utils.atom_component_helper import create_screenshots_archive, golden_images_directory
  13. DEFAULT_SUBFOLDER_PATH = 'user/PythonTests/Automated/Screenshots'
  14. logger = logging.getLogger(__name__)
  15. @pytest.mark.parametrize("project", ["AutomatedTesting"])
  16. @pytest.mark.parametrize("launcher_platform", ['windows_editor'])
  17. class TestAutomation(EditorTestSuite):
  18. # Remove -BatchMode from global_extra_cmdline_args since we need rendering for these tests.
  19. global_extra_cmdline_args = [] # Default is ["-BatchMode", "-autotest_mode"]
  20. use_null_renderer = False # Default is True
  21. @pytest.mark.test_case_id("C34525095")
  22. @pytest.mark.skip(reason="These are old GPU tests that are going to be changed in a future update.")
  23. class AtomGPU_LightComponent_AreaLightScreenshotsMatchGoldenImages_DX12(EditorSingleTest):
  24. from Atom.tests import hydra_AtomGPU_AreaLightScreenshotTest as test_module
  25. extra_cmdline_args = ["-rhi=dx12"]
  26. # Custom setup/teardown to remove old screenshots and establish paths to golden images
  27. def setup(self, request, workspace):
  28. self.screenshot_directory = os.path.join(workspace.paths.project(), DEFAULT_SUBFOLDER_PATH)
  29. def wrap_run(self, request, workspace, editor_test_results):
  30. yield
  31. create_screenshots_archive(self.screenshot_directory)
  32. @pytest.mark.test_case_id("C34525095")
  33. @pytest.mark.skip(reason="These are old GPU tests that are going to be changed in a future update.")
  34. class AtomGPU_LightComponent_AreaLightScreenshotsMatchGoldenImages_Vulkan(EditorSingleTest):
  35. from Atom.tests import hydra_AtomGPU_AreaLightScreenshotTest as test_module
  36. extra_cmdline_args = ["-rhi=vulkan"]
  37. # Custom setup/teardown to remove old screenshots and establish paths to golden images
  38. def setup(self, request, workspace):
  39. self.screenshot_directory = os.path.join(workspace.paths.project(), DEFAULT_SUBFOLDER_PATH)
  40. def wrap_run(self, request, workspace, editor_test_results):
  41. yield
  42. create_screenshots_archive(self.screenshot_directory)
  43. @pytest.mark.test_case_id("C34525110")
  44. @pytest.mark.skip(reason="These are old GPU tests that are going to be changed in a future update.")
  45. class AtomGPU_LightComponent_SpotLightScreenshotsMatchGoldenImages_DX12(EditorSingleTest):
  46. from Atom.tests import hydra_AtomGPU_SpotLightScreenshotTest as test_module
  47. extra_cmdline_args = ["-rhi=dx12"]
  48. # Custom setup/teardown to remove old screenshots and establish paths to golden images
  49. def setup(self, request, workspace):
  50. self.screenshot_directory = os.path.join(workspace.paths.project(), DEFAULT_SUBFOLDER_PATH)
  51. def wrap_run(self, request, workspace, editor_test_results):
  52. yield
  53. create_screenshots_archive(self.screenshot_directory)
  54. @pytest.mark.test_case_id("C34525110")
  55. @pytest.mark.skip(reason="These are old GPU tests that are going to be changed in a future update.")
  56. class AtomGPU_LightComponent_SpotLightScreenshotsMatchGoldenImages_Vulkan(EditorSingleTest):
  57. from Atom.tests import hydra_AtomGPU_SpotLightScreenshotTest as test_module
  58. extra_cmdline_args = ["-rhi=vulkan"]
  59. # Custom setup/teardown to remove old screenshots and establish paths to golden images
  60. def setup(self, request, workspace):
  61. self.screenshot_directory = os.path.join(workspace.paths.project(), DEFAULT_SUBFOLDER_PATH)
  62. def wrap_run(self, request, workspace, editor_test_results):
  63. yield
  64. create_screenshots_archive(self.screenshot_directory)
  65. class AtomEditorComponents_HDRColorGrading_Generate_Activate_LUT(EditorBatchedTest):
  66. from Atom.tests import periodic_AtomEditorComponents_HDRColorGradingAdded as test_module
  67. @pytest.mark.parametrize("project", ["AutomatedTesting"])
  68. @pytest.mark.parametrize("launcher_platform", ['windows_atom_tools'])
  69. class TestMaterialEditor(AtomToolsTestSuite):
  70. # Remove -BatchMode from global_extra_cmdline_args since we need rendering for these tests.
  71. global_extra_cmdline_args = []
  72. use_null_renderer = False
  73. log_name = "material_editor_test.log"
  74. atom_tools_executable_name = "MaterialEditor"
  75. class MaterialEditor_Atom_LaunchMaterialEditorDX12(AtomToolsSingleTest):
  76. extra_cmdline_args = ["-rhi=dx12"]
  77. from Atom.tests import MaterialEditor_Atom_LaunchMaterialEditor as test_module
  78. class MaterialEditor_Atom_LaunchMaterialEditorVulkan(AtomToolsSingleTest):
  79. extra_cmdline_args = ["-rhi=Vulkan"]
  80. from Atom.tests import MaterialEditor_Atom_LaunchMaterialEditor as test_module
  81. @pytest.mark.parametrize("project", ["AutomatedTesting"])
  82. @pytest.mark.parametrize("launcher_platform", ['windows_atom_tools'])
  83. class TestMaterialCanvas(AtomToolsTestSuite):
  84. # Remove -BatchMode from global_extra_cmdline_args since we need rendering for these tests.
  85. global_extra_cmdline_args = []
  86. use_null_renderer = False
  87. log_name = "material_canvas_test.log"
  88. atom_tools_executable_name = "MaterialCanvas"
  89. class MaterialCanvas_Atom_LaunchMaterialCanvasDX12(AtomToolsSingleTest):
  90. extra_cmdline_args = ["-rhi=dx12"]
  91. from Atom.tests import MaterialCanvas_Atom_LaunchMaterialCanvas as test_module
  92. class MaterialCanvas_Atom_LaunchMaterialCanvasVulkan(AtomToolsSingleTest):
  93. extra_cmdline_args = ["-rhi=Vulkan"]
  94. from Atom.tests import MaterialCanvas_Atom_LaunchMaterialCanvas as test_module