From 0c95f5b81b27bf6a9009963d383d5e02284b8283 Mon Sep 17 00:00:00 2001 From: Guillaume Gautier Date: Wed, 22 Jan 2025 08:33:30 -0300 Subject: [PATCH] CI check bitstream md5 --- CMakeLists.txt | 4 +- CMakePresets.json | 4 +- README.md | 10 +- src/lib/mapEncoding/CMakeLists.txt | 8 +- tests/CMakeLists.txt | 120 +++++++++++++-- tests/ci_test.cmake | 228 ++++++++++++++--------------- tests/ref_md5.csv | 13 ++ 7 files changed, 243 insertions(+), 144 deletions(-) create mode 100644 tests/ref_md5.csv diff --git a/CMakeLists.txt b/CMakeLists.txt index ab3ffaa..5b02352 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,13 +4,15 @@ cmake_minimum_required(VERSION 3.22) include(ExternalProject) set(uvgVPCCenc_VER 1.0.0) -set(uvgVPCCenc_DESCR "uvgVPCCenc is a Real-Time V-PCC encoder library written in C++.") +set(uvgVPCCenc_DESCR "uvgVPCCenc is an open-source real-time V-PCC encoder library written in C++ from scratch.") set(uvgVPCCenc_URL "https://github.com/ultravideo/uvgVPCCenc") set(KVAZAAR_REPO_URL "https://github.com/ultravideo/kvazaar.git") set(KVAZAAR_REPO_TAGS "bb836ff1422f247b490230e9d429a2d6658cd1a1") set(KVAZAAR_EP_UPDATE_DISCONNECTED ON) +set(PCCSUM_EP_UPDATE_DISCONNECTED ON) +set(TMC2_EP_UPDATE_DISCONNECTED ON) option(BUILD_SHARED_LIBS "Build using shared uvgVPCCenc library" ON) diff --git a/CMakePresets.json b/CMakePresets.json index 7fffe37..ba629bb 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -16,6 +16,7 @@ "CMAKE_BUILD_TYPE":"RelWithDebInfo", "CMAKE_EXPORT_COMPILE_COMMANDS":true, "ENABLE_TESTING":false, + "CHECK_PC_MD5": false, "ENABLE_CI_TESTING":false, "ENABLE_MY_TESTING":false, "MY_TEST_PATH": "" @@ -52,6 +53,7 @@ "CMAKE_BUILD_TYPE":"RelWithDebInfo", "BUILD_SHARED_LIBS":false, "ENABLE_TESTING":true, + "CHECK_PC_MD5": false, "ENABLE_CI_TESTING":true, "ENABLE_MY_TESTING":false } @@ -95,7 +97,7 @@ "name":"base-test", "hidden":true, "execution":{ - "stopOnFailure":true + "stopOnFailure":false } }, { diff --git a/README.md b/README.md index bdc389c..70976e6 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ uvgVPCCenc uvgVPCCenc is an academic open-source volumetric video encoder for the state of the art Video-based Point-Compression (V-PCC) standard. uvgVPCCenc is being developed in C++ under the BSD-3-Clause license. -The uvgVPCC encoder accepts point cloud frames as input (with geometry being positive integers), supports all voxel sizes, and runs on Linux and macOS. In version 1.0, the focus is on building a functional encoding pipeline using only essential tools and algorithms inspired by the TMC2 reference software. Prioritizing practical encoding, we’ve omitted lossless tools and those adding significant computational complexity such as geometry reconstruction. In the future we plan on developing innovative methods to reduce the massive complexity of the V-PCC encoding process. +The uvgVPCC encoder accepts point cloud frames as input (with geometry being positive integers), supports all voxel sizes, and runs on Linux. In version 1.0, the focus is on building a functional encoding pipeline using only essential tools and algorithms inspired by the TMC2 reference software. Prioritizing practical encoding, we’ve omitted lossless tools and those adding significant computational complexity such as geometry reconstruction. In the future we plan on developing innovative methods to reduce the massive complexity of the V-PCC encoding process. uvgVPCCenc serves as a research platform for new coding tool development and other encoder research activities as well as provides a high-quality and practical V-PCC encoder for the public to use. @@ -26,20 +26,12 @@ On Debian/Ubuntu: ``` sudo apt install cmake ninja ``` -On MacOS: -``` -brew install cmake ninja -``` To generate the documentation, ```doxygen``` and ```graphviz``` are required. On Debian/Ubuntu: ``` sudo apt install doxygen graphviz ``` -On MacOS: -``` -brew install doxygen graphviz -``` ### Compile and test uvgVPCCenc To compile and test the encoder, please use following commands: diff --git a/src/lib/mapEncoding/CMakeLists.txt b/src/lib/mapEncoding/CMakeLists.txt index 7dd4eee..82e50a4 100644 --- a/src/lib/mapEncoding/CMakeLists.txt +++ b/src/lib/mapEncoding/CMakeLists.txt @@ -34,14 +34,14 @@ add_library(${KVAZAAR_STDIO_LIB} STATIC # Add kvazaar as an external project fetched from Git ExternalProject_Add( kvazaar - PREFIX ${CMAKE_BINARY_DIR}/external + PREFIX ${CMAKE_BINARY_DIR}/external/kvazaar GIT_REPOSITORY ${KVAZAAR_REPO_URL} GIT_TAG ${KVAZAAR_REPO_TAGS} - BUILD_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/include/${STDIO_PREFIX}_stdio.h ${CMAKE_BINARY_DIR}/external/src/kvazaar/src/stdio.h + BUILD_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/include/${STDIO_PREFIX}_stdio.h ${CMAKE_BINARY_DIR}/external/kvazaar/src/kvazaar/src/stdio.h COMMAND ${CMAKE_COMMAND} --build . --target kvazaar INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/include # Create directory for headers - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/external/src/kvazaar/src/kvazaar.h ${CMAKE_CURRENT_BINARY_DIR}/include/ # Copy main header file - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/external/src/kvazaar-build/libkvazaar.a ${CMAKE_CURRENT_BINARY_DIR}/ # Copy static library file + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/external/kvazaar/src/kvazaar/src/kvazaar.h ${CMAKE_CURRENT_BINARY_DIR}/include/ # Copy main header file + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/external/kvazaar/src/kvazaar-build/libkvazaar.a ${CMAKE_CURRENT_BINARY_DIR}/ # Copy static library file BUILD_BYPRODUCTS libkvazaar.a UPDATE_DISCONNECTED ${KVAZAAR_EP_UPDATE_DISCONNECTED} CMAKE_ARGS diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 9448b50..7b09b1c 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,3 +1,114 @@ +# Add the external utility +if(CHECK_PC_MD5) + +ExternalProject_Add( + tmc2 + PREFIX ${CMAKE_BINARY_DIR}/external/tmc2 + GIT_REPOSITORY https://github.com/MPEGGroup/mpeg-pcc-tmc2/ + GIT_TAG release-v24.0 + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/external/tmc2/install + UPDATE_DISCONNECTED ${TMC2_EP_UPDATE_DISCONNECTED} + LOG_DOWNLOAD ON + LOG_UPDATE ON + LOG_PATCH ON + LOG_CONFIGURE ON + LOG_BUILD ON + LOG_INSTALL ON + LOG_TEST ON + LOG_MERGED_STDOUTERR ON + LOG_OUTPUT_ON_FAILURE ON + VERBATIM +) + +ExternalProject_Add( + pccsum + PREFIX ${CMAKE_BINARY_DIR}/external/pccsum + GIT_REPOSITORY git@gitlab.tuni.fi:cs/ultravideo/pcc/utils/pccsum.git + GIT_TAG main + INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/external/pccsum/install + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/external/pccsum/src/pccsum-build/src/app/appPccsum ${CMAKE_BINARY_DIR}/external/pccsum/install + UPDATE_DISCONNECTED ${PCCSUM_EP_UPDATE_DISCONNECTED} + LOG_DOWNLOAD ON + LOG_UPDATE ON + LOG_PATCH ON + LOG_CONFIGURE ON + LOG_BUILD ON + LOG_INSTALL ON + LOG_TEST ON + LOG_MERGED_STDOUTERR ON + LOG_OUTPUT_ON_FAILURE ON + VERBATIM +) +endif() + +function(get_ref_md5 ref_file test_name md5_bitstream md5_pc) + file(READ ${ref_file} csv_content) + string(REPLACE "\n" ";" csv_lines ${csv_content}) # Split rows into list + + foreach(line IN LISTS csv_lines) + string(REPLACE "," ";" fields ${line}) + list(GET fields 0 current_test_name) + if(current_test_name STREQUAL ${test_name}) + + list(GET fields 1 extracted_md5_bitstream) + list(GET fields 2 extracted_md5_pc) + + set(${md5_bitstream} ${extracted_md5_bitstream} PARENT_SCOPE) + set(${md5_pc} ${extracted_md5_pc} PARENT_SCOPE) + return() + endif() + endforeach() + set(${md5_bitstream} "" PARENT_SCOPE) + set(${md5_pc} "" PARENT_SCOPE) + message(WARNING "Test name '${test_name}' not found in ${ref_file}.") +endfunction() + +macro(add_test_macro test_name test_input test_nbframe test_startFrame test_nbthread test_nbloop test_uvgvpccencParam test_timeout) + get_ref_md5(${CMAKE_SOURCE_DIR}/tests/ref_md5.csv ${test_name} md5_bitstream md5_pc) + + add_test(NAME ${test_name}_encoding + COMMAND uvgVPCCenc + -i ${test_input} + -n ${test_nbframe} + -s ${test_startFrame} + -o ${TEST_OUTPUT_BITSTREAM_DIR}/${test_name}.vpcc + -t ${test_nbthread} + -l ${test_nbloop} + --uvgvpcc ${test_uvgvpccencParam} + ) + set_tests_properties(${test_name}_encoding PROPERTIES TIMEOUT ${test_timeout}) + + if(md5_bitstream STREQUAL "") + message(FATAL_ERROR "Error: ${test_name} md5_bitstream is empty. Cannot proceed with the test.") + endif() + + add_test(NAME ${test_name}_md5_bitstream + COMMAND ${CMAKE_COMMAND} -E md5sum ${TEST_OUTPUT_BITSTREAM_DIR}/${test_name}.vpcc + ) + set_tests_properties(${test_name}_md5_bitstream + PROPERTIES PASS_REGULAR_EXPRESSION "^${md5_bitstream}" + ) + if(CHECK_PC_MD5) + if(md5_pc STREQUAL "") + message(FATAL_ERROR "Error: ${test_name} md5_pc is empty. Cannot proceed with the test.") + endif() + add_test(NAME ${test_name}_decoding + COMMAND echo decode + ) + set_tests_properties(${test_name}_encoding PROPERTIES TIMEOUT ${test_timeout}) + + add_test(NAME ${test_name}_md5_pc + COMMAND echo pccsum + ) + set_tests_properties(${test_name}_md5_pc + PROPERTIES PASS_REGULAR_EXPRESSION "^${md5_pc}" + ) + endif(CHECK_PC_MD5) + +endmacro() + + + if(ENABLE_CI_TESTING) include(${CMAKE_SOURCE_DIR}/tests/ci_test.cmake) endif() @@ -17,13 +128,4 @@ if(ENABLE_MY_TESTING) "Template can be found at ${CMAKE_SOURCE_DIR}/tests/template.cmake." ) endif() -endif() -# Get the number of tests -get_property(test_count GLOBAL PROPERTY TESTS) - -# Check and print the number of tests -if(test_count) - message(STATUS "Number of tests found: ${test_count}") -else() - message(STATUS "No tests found.") endif() \ No newline at end of file diff --git a/tests/ci_test.cmake b/tests/ci_test.cmake index 2c203c1..25d48f4 100644 --- a/tests/ci_test.cmake +++ b/tests/ci_test.cmake @@ -20,146 +20,134 @@ file(MAKE_DIRECTORY ${TEST_OUTPUT_BITSTREAM_DIR}) message(STATUS "Defining tests in ci_test.cmake") # Voxel 9 Tests -add_test(NAME ReadyForWinter_vox9_fast_RA_16-22-2 - COMMAND uvgVPCCenc - -i ${TEST_OUTPUT_DIR}/UVG-VPC/ReadyForWinter/ply_vox9/ply_xyz_rgb/ReadyForWinter_UVG_vox9_25_0_250_%04d.ply - -n 2 - -s 0 - -o ${TEST_OUTPUT_BITSTREAM_DIR}/ReadyForWinter_vox9_fast_RA_16-22-2.vpcc - -t 1 - -l 1 - --uvgvpcc presetName=fast,mode=RA,rate=16-22-2 +add_test_macro( + ReadyForWinter_vox9_fast_RA_16-22-2 + ${TEST_OUTPUT_DIR}/UVG-VPC/ReadyForWinter/ply_vox9/ply_xyz_rgb/ReadyForWinter_UVG_vox9_25_0_250_%04d.ply + 2 + 0 + 1 + 1 + presetName=fast,mode=RA,rate=16-22-2 + 120 ) -set_tests_properties(ReadyForWinter_vox9_fast_RA_16-22-2 PROPERTIES TIMEOUT 120) -add_test(NAME ReadyForWinter_vox9_slow_RA_32-42-4 - COMMAND uvgVPCCenc - -i ${TEST_OUTPUT_DIR}/UVG-VPC/ReadyForWinter/ply_vox9/ply_xyz_rgb/ReadyForWinter_UVG_vox9_25_0_250_%04d.ply - -n 2 - -s 0 - -o ${TEST_OUTPUT_BITSTREAM_DIR}/ReadyForWinter_vox9_slow_RA_32-42-4.vpcc - -t 1 - -l 1 - --uvgvpcc presetName=slow,mode=RA,rate=32-42-4 +add_test_macro( + ReadyForWinter_vox9_slow_RA_32-42-4 + ${TEST_OUTPUT_DIR}/UVG-VPC/ReadyForWinter/ply_vox9/ply_xyz_rgb/ReadyForWinter_UVG_vox9_25_0_250_%04d.ply + 2 + 0 + 1 + 1 + presetName=slow,mode=RA,rate=32-42-4 + 120 ) -set_tests_properties(ReadyForWinter_vox9_slow_RA_32-42-4 PROPERTIES TIMEOUT 120) -add_test(NAME ReadyForWinter_vox9_fast_AI_32-42-4 - COMMAND uvgVPCCenc - -i ${TEST_OUTPUT_DIR}/UVG-VPC/ReadyForWinter/ply_vox9/ply_xyz_rgb/ReadyForWinter_UVG_vox9_25_0_250_%04d.ply - -n 20 - -s 0 - -o ${TEST_OUTPUT_BITSTREAM_DIR}/ReadyForWinter_vox9_fast_AI_32-42-4.vpcc - -t 2 - -l 1 - --uvgvpcc presetName=fast,mode=AI,rate=32-42-4 +add_test_macro( + ReadyForWinter_vox9_fast_AI_32-42-4 + ${TEST_OUTPUT_DIR}/UVG-VPC/ReadyForWinter/ply_vox9/ply_xyz_rgb/ReadyForWinter_UVG_vox9_25_0_250_%04d.ply + 20 + 0 + 2 + 1 + presetName=fast,mode=AI,rate=32-42-4 + 120 ) -set_tests_properties(ReadyForWinter_vox9_fast_AI_32-42-4 PROPERTIES TIMEOUT 120) -add_test(NAME ReadyForWinter_vox9_slow_AI_16-22-2 - COMMAND uvgVPCCenc - -i ${TEST_OUTPUT_DIR}/UVG-VPC/ReadyForWinter/ply_vox9/ply_xyz_rgb/ReadyForWinter_UVG_vox9_25_0_250_%04d.ply - -n 2 - -s 0 - -o ${TEST_OUTPUT_BITSTREAM_DIR}/ReadyForWinter_vox9_slow_AI_16-22-2.vpcc - -t 1 - -l 1 - --uvgvpcc presetName=slow,mode=AI,rate=16-22-2 +add_test_macro( + ReadyForWinter_vox9_slow_AI_16-22-2 + ${TEST_OUTPUT_DIR}/UVG-VPC/ReadyForWinter/ply_vox9/ply_xyz_rgb/ReadyForWinter_UVG_vox9_25_0_250_%04d.ply + 2 + 0 + 1 + 1 + presetName=slow,mode=AI,rate=16-22-2 + 120 ) -set_tests_properties(ReadyForWinter_vox9_slow_AI_16-22-2 PROPERTIES TIMEOUT 120) -add_test(NAME FlowerWave_vox10_fast_RA_32-42-4 - COMMAND uvgVPCCenc - -i ${TEST_OUTPUT_DIR}/UVG-VPC/FlowerWave/ply_vox10/ply_xyz_rgb/FlowerWave_UVG_vox10_25_0_250_%04d.ply - -n 10 - -s 0 - -o ${TEST_OUTPUT_BITSTREAM_DIR}/FlowerWave_vox10_fast_RA_32-42-4.vpcc - -t 1 - -l 1 - --uvgvpcc presetName=fast,mode=RA,rate=32-42-4 +add_test_macro( + FlowerWave_vox10_fast_RA_32-42-4 + ${TEST_OUTPUT_DIR}/UVG-VPC/FlowerWave/ply_vox10/ply_xyz_rgb/FlowerWave_UVG_vox10_25_0_250_%04d.ply + 10 + 0 + 1 + 1 + presetName=fast,mode=RA,rate=32-42-4 + 120 ) -set_tests_properties(FlowerWave_vox10_fast_RA_32-42-4 PROPERTIES TIMEOUT 120) -add_test(NAME Gymnast_vox10_slow_RA_16-22-2 - COMMAND uvgVPCCenc - -i ${TEST_OUTPUT_DIR}/UVG-VPC/Gymnast/ply_vox10/ply_xyz_rgb/Gymnast_UVG_vox10_25_0_250_%04d.ply - -n 2 - -s 0 - -o ${TEST_OUTPUT_BITSTREAM_DIR}/Gymnast_vox10_slow_RA_16-22-2.vpcc - -t 1 - -l 1 - --uvgvpcc presetName=slow,mode=RA,rate=16-22-2 +add_test_macro( + Gymnast_vox10_slow_RA_16-22-2 + ${TEST_OUTPUT_DIR}/UVG-VPC/Gymnast/ply_vox10/ply_xyz_rgb/Gymnast_UVG_vox10_25_0_250_%04d.ply + 2 + 0 + 1 + 1 + presetName=slow,mode=RA,rate=16-22-2 + 120 ) -set_tests_properties(Gymnast_vox10_slow_RA_16-22-2 PROPERTIES TIMEOUT 120) -add_test(NAME Gymnast_vox10_fast_AI_32-42-4 - COMMAND uvgVPCCenc - -i ${TEST_OUTPUT_DIR}/UVG-VPC/Gymnast/ply_vox10/ply_xyz_rgb/Gymnast_UVG_vox10_25_0_250_%04d.ply - -n 18 - -s 0 - -o ${TEST_OUTPUT_BITSTREAM_DIR}/Gymnast_vox10_fast_AI_32-42-4.vpcc - -t 1 - -l 1 - --uvgvpcc presetName=fast,mode=AI,rate=32-42-4 +add_test_macro( + Gymnast_vox10_fast_AI_32-42-4 + ${TEST_OUTPUT_DIR}/UVG-VPC/Gymnast/ply_vox10/ply_xyz_rgb/Gymnast_UVG_vox10_25_0_250_%04d.ply + 18 + 0 + 1 + 1 + presetName=fast,mode=AI,rate=32-42-4 + 120 ) -set_tests_properties(Gymnast_vox10_fast_AI_32-42-4 PROPERTIES TIMEOUT 120) -add_test(NAME FlowerWave_vox10_fast_AI_16-22-2 - COMMAND uvgVPCCenc - -i ${TEST_OUTPUT_DIR}/UVG-VPC/FlowerWave/ply_vox10/ply_xyz_rgb/FlowerWave_UVG_vox10_25_0_250_%04d.ply - -n 2 - -s 0 - -o ${TEST_OUTPUT_BITSTREAM_DIR}/FlowerWave_vox10_fast_AI_16-22-2.vpcc - -t 2 - -l 1 - --uvgvpcc presetName=slow,mode=AI,rate=16-22-2 +add_test_macro( + FlowerWave_vox10_fast_AI_16-22-2 + ${TEST_OUTPUT_DIR}/UVG-VPC/FlowerWave/ply_vox10/ply_xyz_rgb/FlowerWave_UVG_vox10_25_0_250_%04d.ply + 2 + 0 + 2 + 1 + presetName=slow,mode=AI,rate=16-22-2 + 120 ) -set_tests_properties(FlowerWave_vox10_fast_AI_16-22-2 PROPERTIES TIMEOUT 120) -add_test(NAME CasualSquat_vox11_fast_RA_16-22-2 - COMMAND uvgVPCCenc - -i ${TEST_OUTPUT_DIR}/UVG-VPC/CasualSquat/ply_vox11/ply_xyz_rgb/CasualSquat_UVG_vox11_25_0_250_%04d.ply - -n 2 - -s 0 - -o ${TEST_OUTPUT_BITSTREAM_DIR}/CasualSquat_vox11_fast_RA_16-22-2.vpcc - -t 2 - -l 1 - --uvgvpcc presetName=fast,mode=RA,rate=16-22-2 +add_test_macro( + CasualSquat_vox11_fast_RA_16-22-2 + ${TEST_OUTPUT_DIR}/UVG-VPC/CasualSquat/ply_vox11/ply_xyz_rgb/CasualSquat_UVG_vox11_25_0_250_%04d.ply + 2 + 0 + 2 + 1 + presetName=fast,mode=RA,rate=16-22-2 + 120 ) -set_tests_properties(CasualSquat_vox11_fast_RA_16-22-2 PROPERTIES TIMEOUT 120) -add_test(NAME BlueBackpack_vox11_slow_RA_16-22-2 - COMMAND uvgVPCCenc - -i ${TEST_OUTPUT_DIR}/UVG-VPC/BlueBackpack/ply_vox11/ply_xyz_rgb/BlueBackpack_UVG_vox11_25_0_250_%04d.ply - -n 2 - -s 0 - -o ${TEST_OUTPUT_BITSTREAM_DIR}/BlueBackpack_vox11_slow_RA_16-22-2.vpcc - -t 1 - -l 1 - --uvgvpcc presetName=slow,mode=RA,rate=16-22-2 +add_test_macro( + BlueBackpack_vox11_slow_RA_16-22-2 + ${TEST_OUTPUT_DIR}/UVG-VPC/BlueBackpack/ply_vox11/ply_xyz_rgb/BlueBackpack_UVG_vox11_25_0_250_%04d.ply + 2 + 0 + 1 + 1 + presetName=slow,mode=RA,rate=16-22-2 + 120 ) -set_tests_properties(BlueBackpack_vox11_slow_RA_16-22-2 PROPERTIES TIMEOUT 120) -add_test(NAME BlueBackpack_vox11_slow_AI_32-42-4 - COMMAND uvgVPCCenc - -i ${TEST_OUTPUT_DIR}/UVG-VPC/BlueBackpack/ply_vox11/ply_xyz_rgb/BlueBackpack_UVG_vox11_25_0_250_%04d.ply - -n 1 - -s 0 - -o ${TEST_OUTPUT_BITSTREAM_DIR}/BlueBackpack_vox11_slow_AI_32-42-4.vpcc - -t 1 - -l 1 - --uvgvpcc presetName=fast,mode=AI,rate=32-42-4 +add_test_macro( + BlueBackpack_vox11_slow_AI_32-42-4 + ${TEST_OUTPUT_DIR}/UVG-VPC/BlueBackpack/ply_vox11/ply_xyz_rgb/BlueBackpack_UVG_vox11_25_0_250_%04d.ply + 1 + 0 + 1 + 1 + presetName=fast,mode=AI,rate=32-42-4 + 120 ) -set_tests_properties(BlueBackpack_vox11_slow_AI_32-42-4 PROPERTIES TIMEOUT 120) -add_test(NAME CasualSquat_vox11_slow_AI_32-42-4 - COMMAND uvgVPCCenc - -i ${TEST_OUTPUT_DIR}/UVG-VPC/CasualSquat/ply_vox11/ply_xyz_rgb/CasualSquat_UVG_vox11_25_0_250_%04d.ply - -n 1 - -s 0 - -o ${TEST_OUTPUT_BITSTREAM_DIR}/CasualSquat_vox11_slow_AI_32-42-4.vpcc - -t 2 - -l 1 - --uvgvpcc presetName=slow,mode=AI,rate=32-42-4 +add_test_macro( + CasualSquat_vox11_slow_AI_32-42-4 + ${TEST_OUTPUT_DIR}/UVG-VPC/CasualSquat/ply_vox11/ply_xyz_rgb/CasualSquat_UVG_vox11_25_0_250_%04d.ply + 1 + 0 + 2 + 1 + presetName=slow,mode=AI,rate=32-42-4 + 120 ) -set_tests_properties(CasualSquat_vox11_slow_AI_32-42-4 PROPERTIES TIMEOUT 120) \ No newline at end of file diff --git a/tests/ref_md5.csv b/tests/ref_md5.csv new file mode 100644 index 0000000..22e037e --- /dev/null +++ b/tests/ref_md5.csv @@ -0,0 +1,13 @@ +test_name,md5_bitstream,md5_pc; +ReadyForWinter_vox9_fast_RA_16-22-2,9a71f01e6977037cafa290556b726b64,; +ReadyForWinter_vox9_slow_RA_32-42-4,479227f556dd955dd60d26394c9108ef,; +ReadyForWinter_vox9_fast_AI_32-42-4,2fa5ae3344dbd7703e8eae60cd228672,; +ReadyForWinter_vox9_slow_AI_16-22-2,73b01e11299f8b462b206afd7aaf7d34,; +FlowerWave_vox10_fast_RA_32-42-4,70a9852d126a6a895a41e9fb02937d23,; +Gymnast_vox10_slow_RA_16-22-2,8df2dd1215184875557f114d28659513,; +Gymnast_vox10_fast_AI_32-42-4,7c488e8c9a8912ecceb0bab74c4040a6,; +FlowerWave_vox10_fast_AI_16-22-2,9b8dfcc76e9d4f0d96d941582b2e0428,; +CasualSquat_vox11_fast_RA_16-22-2,418b37d3ccad8f401a0f8f9922c03aea,; +BlueBackpack_vox11_slow_RA_16-22-2,c9b321a4f81e680634ff470310379df5,; +BlueBackpack_vox11_slow_AI_32-42-4,2615e98fd2dc5f3e96633f306522e9f6,; +CasualSquat_vox11_slow_AI_32-42-4,0f8b0f48e9a9405d897d89dd9b87f194,; \ No newline at end of file