test_AtomSampleViewer_periodic_dx12.py 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373
  1. """
  2. All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
  3. its licensors.
  4. For complete copyright and license terms please see the LICENSE at the root of this
  5. distribution (the "License"). All use of this software is governed by the License,
  6. or, if provided, by the license below or the license accompanying this file. Do not
  7. remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
  8. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  9. """
  10. import logging
  11. import os
  12. import subprocess
  13. import pytest
  14. import ly_test_tools.environment.process_utils as process_utils
  15. RENDER_HARDWARE_INTERFACE = 'dx12'
  16. logger = logging.getLogger(__name__)
  17. def teardown():
  18. process_utils.kill_processes_named(['AssetProcessor', 'AtomSampleViewerStandalone'], ignore_extensions=True)
  19. @pytest.mark.parametrize('launcher_platform', ['windows'])
  20. @pytest.mark.parametrize("project", ["AtomSampleViewer"])
  21. @pytest.mark.usefixtures("setup_atomsampleviewer_assets", "clean_atomsampleviewer_logs")
  22. class TestDX12AutomationPeriodicSuite:
  23. @pytest.mark.test_case_id('C35638262')
  24. def test_C35638262_dx12_FullTestSuite(self, request, workspace, editor, launcher_platform):
  25. test_script = '_FullTestSuite.bv.luac'
  26. cmd = os.path.join(workspace.paths.build_directory(),
  27. 'AtomSampleViewerStandalone.exe '
  28. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  29. f'--runtestsuite scripts/{test_script} '
  30. '--exitontestend')
  31. request.addfinalizer(teardown)
  32. try:
  33. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  34. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  35. assert return_code == 0
  36. except subprocess.CalledProcessError as e:
  37. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  38. raise e
  39. @pytest.mark.test_case_id('C35638243')
  40. def test_C35638243_dx12_AreaLightTest(self, request, workspace, editor, launcher_platform):
  41. test_script = 'AreaLightTest.bv.luac'
  42. cmd = os.path.join(workspace.paths.build_directory(),
  43. 'AtomSampleViewerStandalone.exe '
  44. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  45. f'--runtestsuite scripts/{test_script} '
  46. '--exitontestend')
  47. request.addfinalizer(teardown)
  48. try:
  49. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  50. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  51. assert return_code == 0
  52. except subprocess.CalledProcessError as e:
  53. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  54. raise e
  55. @pytest.mark.test_case_id('C35638244')
  56. def test_C35638244_dx12_CheckerboardTest(self, request, workspace, editor, launcher_platform):
  57. test_script = 'CheckerboardTest.bv.luac'
  58. cmd = os.path.join(workspace.paths.build_directory(),
  59. 'AtomSampleViewerStandalone.exe '
  60. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  61. f'--runtestsuite scripts/{test_script} '
  62. '--exitontestend')
  63. request.addfinalizer(teardown)
  64. try:
  65. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  66. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  67. assert return_code == 0
  68. except subprocess.CalledProcessError as e:
  69. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  70. raise e
  71. @pytest.mark.test_case_id('C35638246')
  72. def test_C35638246_dx12_Decals(self, request, workspace, editor, launcher_platform):
  73. test_script = 'Decals.bv.luac'
  74. cmd = os.path.join(workspace.paths.build_directory(),
  75. 'AtomSampleViewerStandalone.exe '
  76. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  77. f'--runtestsuite scripts/{test_script} '
  78. '--exitontestend')
  79. request.addfinalizer(teardown)
  80. try:
  81. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  82. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  83. assert return_code == 0
  84. except subprocess.CalledProcessError as e:
  85. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  86. raise e
  87. @pytest.mark.test_case_id('C35638247')
  88. def test_C35638247_dx12_DiffuseGITest(self, request, workspace, editor, launcher_platform):
  89. test_script = 'DiffuseGITest.bv.luac'
  90. cmd = os.path.join(workspace.paths.build_directory(),
  91. 'AtomSampleViewerStandalone.exe '
  92. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  93. f'--runtestsuite scripts/{test_script} '
  94. '--exitontestend')
  95. request.addfinalizer(teardown)
  96. try:
  97. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  98. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  99. assert return_code == 0
  100. except subprocess.CalledProcessError as e:
  101. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  102. raise e
  103. @pytest.mark.test_case_id('C35638248')
  104. def test_C35638248_dx12_DynamicDraw(self, request, workspace, editor, launcher_platform):
  105. test_script = 'DynamicDraw.bv.luac'
  106. cmd = os.path.join(workspace.paths.build_directory(),
  107. 'AtomSampleViewerStandalone.exe '
  108. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  109. f'--runtestsuite scripts/{test_script} '
  110. '--exitontestend')
  111. request.addfinalizer(teardown)
  112. try:
  113. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  114. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  115. assert return_code == 0
  116. except subprocess.CalledProcessError as e:
  117. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  118. raise e
  119. @pytest.mark.test_case_id('C35638249')
  120. def test_C35638249_dx12_DynamicMaterialTest(self, request, workspace, editor, launcher_platform):
  121. test_script = 'DynamicMaterialTest.bv.luac'
  122. cmd = os.path.join(workspace.paths.build_directory(),
  123. 'AtomSampleViewerStandalone.exe '
  124. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  125. f'--runtestsuite scripts/{test_script} '
  126. '--exitontestend')
  127. request.addfinalizer(teardown)
  128. try:
  129. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  130. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  131. assert return_code == 0
  132. except subprocess.CalledProcessError as e:
  133. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  134. raise e
  135. @pytest.mark.test_case_id('C35638250')
  136. def test_C35638250_dx12_LightCulling(self, request, workspace, editor, launcher_platform):
  137. test_script = 'LightCulling.bv.luac'
  138. cmd = os.path.join(workspace.paths.build_directory(),
  139. 'AtomSampleViewerStandalone.exe '
  140. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  141. f'--runtestsuite scripts/{test_script} '
  142. '--exitontestend')
  143. request.addfinalizer(teardown)
  144. try:
  145. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  146. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  147. assert return_code == 0
  148. except subprocess.CalledProcessError as e:
  149. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  150. raise e
  151. @pytest.mark.test_case_id('C35638251')
  152. def test_C35638251_dx12_MaterialHotReloadTest(self, request, workspace, editor, launcher_platform):
  153. test_script = 'MaterialHotReloadTest.bv.luac'
  154. cmd = os.path.join(workspace.paths.build_directory(),
  155. 'AtomSampleViewerStandalone.exe '
  156. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  157. f'--runtestsuite scripts/{test_script} '
  158. '--exitontestend')
  159. request.addfinalizer(teardown)
  160. try:
  161. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  162. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  163. assert return_code == 0
  164. except subprocess.CalledProcessError as e:
  165. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  166. raise e
  167. @pytest.mark.test_case_id('C35638252')
  168. def test_C35638252_dx12_MaterialScreenshotTests(self, request, workspace, editor, launcher_platform):
  169. test_script = 'MaterialScreenshotTests.bv.luac'
  170. cmd = os.path.join(workspace.paths.build_directory(),
  171. 'AtomSampleViewerStandalone.exe '
  172. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  173. f'--runtestsuite scripts/{test_script} '
  174. '--exitontestend')
  175. request.addfinalizer(teardown)
  176. try:
  177. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  178. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  179. assert return_code == 0
  180. except subprocess.CalledProcessError as e:
  181. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  182. raise e
  183. @pytest.mark.test_case_id('C35638253')
  184. def test_C35638253_dx12_MSAA_RPI_Test(self, request, workspace, editor, launcher_platform):
  185. test_script = 'MSAA_RPI_Test.bv.luac'
  186. cmd = os.path.join(workspace.paths.build_directory(),
  187. 'AtomSampleViewerStandalone.exe '
  188. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  189. f'--runtestsuite scripts/{test_script} '
  190. '--exitontestend')
  191. request.addfinalizer(teardown)
  192. try:
  193. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  194. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  195. assert return_code == 0
  196. except subprocess.CalledProcessError as e:
  197. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  198. raise e
  199. @pytest.mark.test_case_id('C35638254')
  200. def test_C35638254_dx12_MultiRenderPipeline(self, request, workspace, editor, launcher_platform):
  201. test_script = 'MultiRenderPipeline.bv.luac'
  202. cmd = os.path.join(workspace.paths.build_directory(),
  203. 'AtomSampleViewerStandalone.exe '
  204. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  205. f'--runtestsuite scripts/{test_script} '
  206. '--exitontestend')
  207. request.addfinalizer(teardown)
  208. try:
  209. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  210. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  211. assert return_code == 0
  212. except subprocess.CalledProcessError as e:
  213. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  214. raise e
  215. @pytest.mark.test_case_id('C35638255')
  216. def test_C35638255_dx12_MultiScene(self, request, workspace, editor, launcher_platform):
  217. test_script = 'MultiScene.bv.luac'
  218. cmd = os.path.join(workspace.paths.build_directory(),
  219. 'AtomSampleViewerStandalone.exe '
  220. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  221. f'--runtestsuite scripts/{test_script} '
  222. '--exitontestend')
  223. request.addfinalizer(teardown)
  224. try:
  225. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  226. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  227. assert return_code == 0
  228. except subprocess.CalledProcessError as e:
  229. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  230. raise e
  231. @pytest.mark.test_case_id('C35638256')
  232. def test_C35638256_dx12_ParallaxTest(self, request, workspace, editor, launcher_platform):
  233. test_script = 'ParallaxTest.bv.luac'
  234. cmd = os.path.join(workspace.paths.build_directory(),
  235. 'AtomSampleViewerStandalone.exe '
  236. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  237. f'--runtestsuite scripts/{test_script} '
  238. '--exitontestend')
  239. request.addfinalizer(teardown)
  240. try:
  241. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  242. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  243. assert return_code == 0
  244. except subprocess.CalledProcessError as e:
  245. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  246. raise e
  247. @pytest.mark.test_case_id('C35638257')
  248. def test_C35638257_dx12_SceneReloadSoakTest(self, request, workspace, editor, launcher_platform):
  249. test_script = 'SceneReloadSoakTest.bv.luac'
  250. cmd = os.path.join(workspace.paths.build_directory(),
  251. 'AtomSampleViewerStandalone.exe '
  252. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  253. f'--runtestsuite scripts/{test_script} '
  254. '--exitontestend')
  255. request.addfinalizer(teardown)
  256. try:
  257. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  258. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  259. assert return_code == 0
  260. except subprocess.CalledProcessError as e:
  261. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  262. raise e
  263. @pytest.mark.test_case_id('C35638258')
  264. def test_C35638258_dx12_ShadowedBistroTest(self, request, workspace, editor, launcher_platform):
  265. test_script = 'ShadowedBistroTest.bv.luac'
  266. cmd = os.path.join(workspace.paths.build_directory(),
  267. 'AtomSampleViewerStandalone.exe '
  268. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  269. f'--runtestsuite scripts/{test_script} '
  270. '--exitontestend')
  271. request.addfinalizer(teardown)
  272. try:
  273. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  274. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  275. assert return_code == 0
  276. except subprocess.CalledProcessError as e:
  277. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  278. raise e
  279. @pytest.mark.test_case_id('C35638259')
  280. def test_C35638259_dx12_ShadowTest(self, request, workspace, editor, launcher_platform):
  281. test_script = 'ShadowTest.bv.luac'
  282. cmd = os.path.join(workspace.paths.build_directory(),
  283. 'AtomSampleViewerStandalone.exe '
  284. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  285. f'--runtestsuite scripts/{test_script} '
  286. '--exitontestend')
  287. request.addfinalizer(teardown)
  288. try:
  289. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  290. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  291. assert return_code == 0
  292. except subprocess.CalledProcessError as e:
  293. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  294. raise e
  295. @pytest.mark.test_case_id('C35638260')
  296. def test_C35638260_dx12_StreamingImageTest(self, request, workspace, editor, launcher_platform):
  297. test_script = 'StreamingImageTest.bv.luac'
  298. cmd = os.path.join(workspace.paths.build_directory(),
  299. 'AtomSampleViewerStandalone.exe '
  300. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  301. f'--runtestsuite scripts/{test_script} '
  302. '--exitontestend')
  303. request.addfinalizer(teardown)
  304. try:
  305. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  306. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  307. assert return_code == 0
  308. except subprocess.CalledProcessError as e:
  309. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  310. raise e
  311. @pytest.mark.test_case_id('C35638261')
  312. def test_C35638261_dx12_TransparentTest(self, request, workspace, editor, launcher_platform):
  313. test_script = 'TransparentTest.bv.luac'
  314. cmd = os.path.join(workspace.paths.build_directory(),
  315. 'AtomSampleViewerStandalone.exe '
  316. f'--rhi {RENDER_HARDWARE_INTERFACE} '
  317. f'--runtestsuite scripts/{test_script} '
  318. '--exitontestend')
  319. request.addfinalizer(teardown)
  320. try:
  321. return_code = process_utils.check_call(cmd, stderr=subprocess.STDOUT, encoding='UTF-8', shell=True)
  322. logger.debug(f"AtomSampleViewer {test_script} test command got response return code : {return_code}")
  323. assert return_code == 0
  324. except subprocess.CalledProcessError as e:
  325. logger.error(f'AtomSampleViewer lua test "{test_script}" had a failure.\n')
  326. raise e