From b63e6e394cc4f6f60d7a1abebf06823d130fcf20 Mon Sep 17 00:00:00 2001 From: Kiriti Gowda Date: Thu, 14 Dec 2023 07:42:52 -0800 Subject: [PATCH] rocDecode Test Package (#140) * rocDecode Test Package * Jenkins - Add Test Package * CTest for Package [ROCm/rocdecode commit: 90fcd668a57b600300640da7842f2721e617fff0] --- projects/rocdecode/.jenkins/common.groovy | 3 ++ projects/rocdecode/CMakeLists.txt | 39 +++++++++++++---- projects/rocdecode/test/CMakeLists.txt | 51 +++++++++++++++++++++++ 3 files changed, 84 insertions(+), 9 deletions(-) create mode 100644 projects/rocdecode/test/CMakeLists.txt diff --git a/projects/rocdecode/.jenkins/common.groovy b/projects/rocdecode/.jenkins/common.groovy index 2d3a36556f..c6bd83831d 100644 --- a/projects/rocdecode/.jenkins/common.groovy +++ b/projects/rocdecode/.jenkins/common.groovy @@ -96,12 +96,15 @@ def runPackageCommand(platform, project) { sudo make package mkdir -p package mv rocdecode-dev*.${packageType} package/${osType}-rocdecode-dev.${packageType} + mv rocdecode-test*.${packageType} package/${osType}-rocdecode-test.${packageType} mv ${packageRunTime}.${packageType} package/${osType}-rocdecode.${packageType} mv Testing/Temporary/LastTest.log package/${osType}-LastTest.log mv Testing/Temporary/LastTestsFailed.log package/${osType}-LastTestsFailed.log ${packageDetail} package/${osType}-rocdecode-dev.${packageType} + ${packageDetail} package/${osType}-rocdecode-test.${packageType} ${packageDetail} package/${osType}-rocdecode.${packageType} ${packageInfo} package/${osType}-rocdecode-dev.${packageType} + ${packageInfo} package/${osType}-rocdecode-test.${packageType} ${packageInfo} package/${osType}-rocdecode.${packageType} """ diff --git a/projects/rocdecode/CMakeLists.txt b/projects/rocdecode/CMakeLists.txt index 4b261ed3f2..f4a2949fc2 100644 --- a/projects/rocdecode/CMakeLists.txt +++ b/projects/rocdecode/CMakeLists.txt @@ -145,11 +145,14 @@ if(HIP_FOUND AND Libva_FOUND AND Libdrm_FOUND) install(DIRECTORY utils/rocvideodecode DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/utils COMPONENT dev) install(DIRECTORY samples/videoDecode DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/samples COMPONENT dev) install(FILES data/videos/AMD_driving_virtual_20-H265.mp4 DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/video COMPONENT dev) - # set license information - {ROCM_PATH}/share/doc/rocdecode + # install license information - {ROCM_PATH}/share/doc/rocdecode set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") - install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${CMAKE_INSTALL_DOCDIR}-asan COMPONENT asan) install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT runtime) - install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT dev) + install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${CMAKE_INSTALL_DOCDIR}-asan COMPONENT asan) + install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${CMAKE_INSTALL_DOCDIR}-dev COMPONENT dev) + install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${CMAKE_INSTALL_DOCDIR}-test COMPONENT test) + # install test cmake + install(FILES test/CMakeLists.txt DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test COMPONENT test) message("-- ${White}AMD ROCm rocDecode -- CMAKE_CXX_FLAGS:${CMAKE_CXX_FLAGS}${ColourReset}") message("-- ${White}AMD ROCm rocDecode -- Link Libraries: ${LINK_LIBRARY_LIST}${ColourReset}") @@ -212,10 +215,13 @@ if(HIP_FOUND AND Libva_FOUND AND Libdrm_FOUND) set(CPACK_DEBIAN_RUNTIME_PACKAGE_DEPENDS "rocm-core, ${rocDecode_DEBIAN_PACKAGE_LIST}") set(CPACK_DEBIAN_DEV_PACKAGE_NAME "${PROJECT_NAME}-dev") set(CPACK_DEBIAN_DEV_PACKAGE_DEPENDS - "rocm-core, ${PROJECT_NAME}, ${rocDecode_DEBIAN_PACKAGE_LIST}, ${rocDecode_DEBIAN_DEV_PACKAGE_LIST}") + "rocm-core, ${PROJECT_NAME}, ${rocDecode_DEBIAN_DEV_PACKAGE_LIST}") # Debian package - specific variable for ASAN set(CPACK_DEBIAN_ASAN_PACKAGE_NAME "${PROJECT_NAME}-asan" ) set(CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS "rocm-core-asan, ${rocDecode_DEBIAN_PACKAGE_LIST}" ) + # Debian package - Test + set(CPACK_DEBIAN_TEST_PACKAGE_NAME "${PROJECT_NAME}-test" ) + set(CPACK_DEBIAN_TEST_PACKAGE_DEPENDS "rocm-core, ${CPACK_DEBIAN_DEV_PACKAGE_NAME}" ) # RPM package set(CPACK_RPM_COMPONENT_INSTALL ON) set(CPACK_RPM_RUNTIME_PACKAGE_NAME "${PROJECT_NAME}") @@ -223,28 +229,37 @@ if(HIP_FOUND AND Libva_FOUND AND Libdrm_FOUND) set(CPACK_RPM_RUNTIME_PACKAGE_PROVIDES "${PROJECT_NAME}") set(CPACK_RPM_RUNTIME_PACKAGE_OBSOLETES "${PROJECT_NAME}") set(CPACK_RPM_DEV_PACKAGE_NAME "${PROJECT_NAME}-devel") - set(CPACK_RPM_DEV_PACKAGE_REQUIRES "rocm-core, ${PROJECT_NAME}, ${rocDecode_RPM_PACKAGE_LIST}") + set(CPACK_RPM_DEV_PACKAGE_REQUIRES "rocm-core, ${PROJECT_NAME}") set(CPACK_RPM_DEV_PACKAGE_PROVIDES "${PROJECT_NAME}-devel") set(CPACK_RPM_DEV_PACKAGE_OBSOLETES "${PROJECT_NAME}-devel") set(CPACK_RPM_PACKAGE_LICENSE "MIT" ) # RPM package specific variable for ASAN set(CPACK_RPM_ASAN_PACKAGE_NAME "${PROJECT_NAME}-asan" ) set(CPACK_RPM_ASAN_PACKAGE_REQUIRES "rocm-core-asan, ${rocDecode_RPM_PACKAGE_LIST}" ) + set(CPACK_RPM_ASAN_PACKAGE_PROVIDES "${PROJECT_NAME}-asan") + set(CPACK_RPM_ASAN_PACKAGE_OBSOLETES "${PROJECT_NAME}-asan") + # RPM package specific variable for Test + set(CPACK_RPM_TEST_PACKAGE_NAME "${PROJECT_NAME}-test" ) + set(CPACK_RPM_TEST_PACKAGE_REQUIRES "rocm-core, ${CPACK_RPM_DEV_PACKAGE_NAME}" ) + set(CPACK_RPM_TEST_PACKAGE_PROVIDES "${PROJECT_NAME}-test") + set(CPACK_RPM_TEST_PACKAGE_OBSOLETES "${PROJECT_NAME}-test") if(NOT ROCM_DEP_ROCMCORE) string(REGEX REPLACE ",? ?rocm-core," "" CPACK_RPM_RUNTIME_PACKAGE_REQUIRES ${CPACK_RPM_RUNTIME_PACKAGE_REQUIRES}) string(REGEX REPLACE ",? ?rocm-core-asan," "" CPACK_RPM_ASAN_PACKAGE_REQUIRES ${CPACK_RPM_ASAN_PACKAGE_REQUIRES}) string(REGEX REPLACE ",? ?rocm-core," "" CPACK_RPM_DEV_PACKAGE_REQUIRES ${CPACK_RPM_DEV_PACKAGE_REQUIRES}) + string(REGEX REPLACE ",? ?rocm-core," "" CPACK_RPM_TEST_PACKAGE_REQUIRES ${CPACK_RPM_TEST_PACKAGE_REQUIRES}) string(REGEX REPLACE ",? ?rocm-core," "" CPACK_DEBIAN_RUNTIME_PACKAGE_DEPENDS ${CPACK_DEBIAN_RUNTIME_PACKAGE_DEPENDS}) string(REGEX REPLACE ",? ?rocm-core-asan," "" CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS ${CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS}) string(REGEX REPLACE ",? ?rocm-core," "" CPACK_DEBIAN_DEV_PACKAGE_DEPENDS ${CPACK_DEBIAN_DEV_PACKAGE_DEPENDS}) + string(REGEX REPLACE ",? ?rocm-core," "" CPACK_DEBIAN_TEST_PACKAGE_DEPENDS ${CPACK_DEBIAN_TEST_PACKAGE_DEPENDS}) endif() if(ENABLE_ASAN_PACKAGING) # ASAN Package requires asan component with only libraries and license file set(CPACK_COMPONENTS_ALL asan) else() - set(CPACK_COMPONENTS_ALL runtime dev) + set(CPACK_COMPONENTS_ALL runtime dev test) endif() set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") @@ -279,17 +294,23 @@ if(HIP_FOUND AND Libva_FOUND AND Libdrm_FOUND) cpack_add_component(runtime DISPLAY_NAME "rocDecode Runtime Package" DESCRIPTION "AMD rocDecode is a high performance video decode SDK for AMD GPUs. \ - rocDecode runtime package provides rocDecode library and license.txt") +rocDecode runtime package provides rocDecode library and license.txt") cpack_add_component(dev DISPLAY_NAME "rocDecode Develop Package" DESCRIPTION "AMD rocDecode is a high performance video decode SDK for AMD GPUs. \ - rocDecode develop package provides rocDecode library, header files, samples, and license.txt") +rocDecode develop package provides rocDecode library, header files, samples, and license.txt") cpack_add_component(asan DISPLAY_NAME "rocDecode ASAN Package" DESCRIPTION "AMD rocDecode is a high performance video decode SDK for AMD GPUs. \ - rocDecode ASAN package provides rocDecode ASAN libraries") +rocDecode ASAN package provides rocDecode ASAN libraries") + + cpack_add_component(test + DISPLAY_NAME "rocDecode Test Package" + DESCRIPTION "AMD rocDecode is a high performance video decode SDK for AMD GPUs. \ +rocDecode Test package provides rocDecode Test Components") + else() message("-- ${Red}AMD ROCm rocDecode -- unmet dependencies${ColourReset}") if(NOT HIP_FOUND) diff --git a/projects/rocdecode/test/CMakeLists.txt b/projects/rocdecode/test/CMakeLists.txt new file mode 100644 index 0000000000..7543f38764 --- /dev/null +++ b/projects/rocdecode/test/CMakeLists.txt @@ -0,0 +1,51 @@ +# ############################################################################## +# Copyright (c) 2023 Advanced Micro Devices, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ############################################################################## +cmake_minimum_required(VERSION 3.5) + +project(rocdecode-test) + +# make test with CTest +enable_testing() +include(CTest) + +# ROCM Path +if(DEFINED ENV{ROCM_PATH}) + set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "Default ROCm installation path") +elseif(ROCM_PATH) + message("-- INFO:ROCM_PATH Set -- ${ROCM_PATH}") +else() + set(ROCM_PATH /opt/rocm CACHE PATH "Default ROCm installation path") +endif() + +# videoDecode +add_test( + NAME + video_decode-H265 + COMMAND + "${CMAKE_CTEST_COMMAND}" + --build-and-test "${ROCM_PATH}/share/rocdecode/samples/videoDecode" + "${CMAKE_CURRENT_BINARY_DIR}/videoDecode" + --build-generator "${CMAKE_GENERATOR}" + --test-command "videodecode" + -i ${ROCM_PATH}/share/rocdecode/video/AMD_driving_virtual_20-H265.mp4 +) \ No newline at end of file