Skip to content

Commit

Permalink
Issues/0130 add unit test for OpenEXR_CTL/exrdpx (#133)
Browse files Browse the repository at this point in the history
* add exrdpx unit tests - closes #130 

* update ctlrender unittest names

* add exrdpx valgrind tests

* fix typo - closes #132
  • Loading branch information
michaeldsmith authored Jun 16, 2023
1 parent 18e481d commit fddefc7
Show file tree
Hide file tree
Showing 12 changed files with 503 additions and 30 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
debug
build
unittest/ctlrender/output
unittest/exrdpx/output
.DS_Store
.vscode
Testing
Expand Down
2 changes: 1 addition & 1 deletion OpenEXR_CTL/exrdpx/dpxToExr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ dpxToExr (const char dpxFileName[],

if (verbose)
{
cout << "applyging CTL transforms:";
cout << "applying CTL transforms:";

for (int i = 0; i < transformNames.size(); ++i)
cout << " " << transformNames[i];
Expand Down
2 changes: 1 addition & 1 deletion OpenEXR_CTL/exrdpx/exrToDpx.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ exrToDpx (const char exrFileName[],

if (verbose)
{
cout << "applyging CTL transforms:";
cout << "applying CTL transforms:";

for (int i = 0; i < transformNames.size(); ++i)
cout << " " << transformNames[i];
Expand Down
22 changes: 21 additions & 1 deletion resources/test/scripts/run_valgrind.sh
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,21 @@ valgrind -s --error-exitcode=1 --leak-check=full --track-origins=yes --show-leak
test_18_status=$?
test_18_label="ctlrender-rgba-exr32-to-exr32"

cd ../exrdpx
cp ../../OpenEXR_CTL/exrdpx/*.ctl .
valgrind -s --error-exitcode=1 --leak-check=full --track-origins=yes --show-leak-kinds=all ../../OpenEXR_CTL/exrdpx/exrdpx ../../../unittest/exrdpx/marci-512.dpx ./output/marci-512.dpx.exr
test_19_status=$?
test_19_label="exrdpx-dpx-to-exr"

valgrind -s --error-exitcode=1 --leak-check=full --track-origins=yes --show-leak-kinds=all ../../OpenEXR_CTL/exrdpx/exrdpx ../../../unittest/exrdpx/marci-512.exr ./output/marci-512.exr.dpx
test_20_status=$?
test_20_label="exrdpx-exr-to-dpx"

# go back to initial path
cd $SCRIPTPATH

# return valgrind exit codes
if [ $test_01_status -eq 0 ] && [ $test_02_status -eq 0 ] && [ $test_03_status -eq 0 ] && [ $test_04_status -eq 0 ] && [ $test_05_status -eq 0 ] && [ $test_06_status -eq 0 ] && [ $test_07_status -eq 0 ] && [ $test_08_status -eq 0 ] && [ $test_09_status -eq 0 ] && [ $test_10_status -eq 0 ] && [ $test_11_status -eq 0 ] && [ $test_12_status -eq 0 ] && [ $test_13_status -eq 0 ] && [ $test_14_status -eq 0 ] && [ $test_15_status -eq 0 ] && [ $test_16_status -eq 0 ] && [ $test_17_status -eq 0 ] && [ $test_18_status -eq 0 ]
if [ $test_01_status -eq 0 ] && [ $test_02_status -eq 0 ] && [ $test_03_status -eq 0 ] && [ $test_04_status -eq 0 ] && [ $test_05_status -eq 0 ] && [ $test_06_status -eq 0 ] && [ $test_07_status -eq 0 ] && [ $test_08_status -eq 0 ] && [ $test_09_status -eq 0 ] && [ $test_10_status -eq 0 ] && [ $test_11_status -eq 0 ] && [ $test_12_status -eq 0 ] && [ $test_13_status -eq 0 ] && [ $test_14_status -eq 0 ] && [ $test_15_status -eq 0 ] && [ $test_16_status -eq 0 ] && [ $test_17_status -eq 0 ] && [ $test_18_status -eq 0 ] && [ $test_19_status -eq 0 ] && [ $test_20_status -eq 0 ]
then
echo "Success: valgrind detected no errors"
exit 0
Expand Down Expand Up @@ -183,5 +193,15 @@ else
echo "$test_18_label: valgrind detected errors"
fi

if [ $test_19_status -ne 0 ]
then
echo "$test_19_label: valgrind detected errors"
fi

if [ $test_20_status -ne 0 ]
then
echo "$test_20_label: valgrind detected errors"
fi

exit 1
fi
1 change: 1 addition & 0 deletions unittest/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@ add_subdirectory(IlmCtlMath)
add_subdirectory(IlmImfCtl)
if (CTL_BUILD_TOOLS)
add_subdirectory(ctlrender)
add_subdirectory(exrdpx)
endif()

55 changes: 28 additions & 27 deletions unittest/ctlrender/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
if(NOT DEFINED CTLRENDER_PATH)
set(CTLRENDER_PATH "${CMAKE_BINARY_DIR}/ctlrender/ctlrender")
message("ctlrender test executable: ${CTLRENDER_PATH}")
endif()

find_package(TIFF)
Expand All @@ -13,10 +14,10 @@ elseif( NOT TARGET TIFF::TIFF AND NOT OpenEXR_FOUND )
message(WARNING "LibTIFF not found, OpenEXR not found, not including TIF or EXR files in ctlrender unit tests")
endif()

set(OUTPUT_FOLDER "${CMAKE_BINARY_DIR}/unittest/ctlrender/output")
message("Test output folder will be created at: ${OUTPUT_FOLDER}")
add_custom_target(build-time-make-directory ALL
COMMAND ${CMAKE_COMMAND} -E make_directory ${OUTPUT_FOLDER})
set(CTLRENDER_OUTPUT_FOLDER "${CMAKE_BINARY_DIR}/unittest/ctlrender/output")
message("ctlrender test output folder will be created at: ${CTLRENDER_OUTPUT_FOLDER}")
add_custom_target(ctlrender-build-time-make-directory ALL
COMMAND ${CMAKE_COMMAND} -E make_directory ${CTLRENDER_OUTPUT_FOLDER})

set(TEST_FILES "${PROJECT_SOURCE_DIR}/unittest/ctlrender")

Expand All @@ -33,36 +34,36 @@ foreach(J tiff8 tiff16 tiff32 dpx8 dpx10 dpx12 dpx16)
elseif(NOT TARGET TIFF::TIFF AND ${FILE_NAME_EXTENSION} STREQUAL "tif")
message("Skipping ${J} because tiff support was not detected")
else()
add_test(NAME "${I}->${J}_unity" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format ${J} -force "${TEST_FILES}/${I}" "${OUTPUT_FOLDER}/${FILE_NAME}_${J}.${EXTENSION}")
add_test(NAME "ctlrender-${I}->${J}_unity" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format ${J} -force "${TEST_FILES}/${I}" "${CTLRENDER_OUTPUT_FOLDER}/${FILE_NAME}_${J}.${EXTENSION}")
endif()
endforeach(I)

# Test tiff32 conversions
if(TARGET TIFF::TIFF)
add_test(NAME "tiff32->${J}" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format ${J} -force "${TEST_FILES}/bars_photoshop_32_be_planar.tif" "${OUTPUT_FOLDER}/bars_tiff32_${J}.${EXTENSION}")
add_test(NAME "ctlrender-tiff32->${J}" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format ${J} -force "${TEST_FILES}/bars_photoshop_32_be_planar.tif" "${CTLRENDER_OUTPUT_FOLDER}/bars_tiff32_${J}.${EXTENSION}")
if(NOT ${J} STREQUAL "tiff32")
add_test(NAME "${J}->tiff32" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format tiff32 -force "${OUTPUT_FOLDER}/bars_tiff32_${J}.${EXTENSION}" "${OUTPUT_FOLDER}/bars_tiff32_${J}_tiff32.tiff")
add_test(NAME "ctlrender-${J}->tiff32" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format tiff32 -force "${CTLRENDER_OUTPUT_FOLDER}/bars_tiff32_${J}.${EXTENSION}" "${CTLRENDER_OUTPUT_FOLDER}/bars_tiff32_${J}_tiff32.tiff")
endif()
endif()
endforeach(J)

if(OpenEXR_FOUND)
# Test EXR->EXR conversions
add_test(NAME "EXR->EXR" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format exr -force "${TEST_FILES}/bars_photoshop.exr" "${OUTPUT_FOLDER}/bars_exr_exr.exr")
add_test(NAME "EXR->EXR16" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format exr16 -force "${TEST_FILES}/bars_photoshop.exr" "${OUTPUT_FOLDER}/bars_exr_exr16.exr")
add_test(NAME "EXR->EXR32" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format exr32 -force "${TEST_FILES}/bars_photoshop.exr" "${OUTPUT_FOLDER}/bars_exr_exr32.exr")
add_test(NAME "ctlrender-EXR->EXR" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format exr -force "${TEST_FILES}/bars_photoshop.exr" "${CTLRENDER_OUTPUT_FOLDER}/bars_exr_exr.exr")
add_test(NAME "ctlrender-EXR->EXR16" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format exr16 -force "${TEST_FILES}/bars_photoshop.exr" "${CTLRENDER_OUTPUT_FOLDER}/bars_exr_exr16.exr")
add_test(NAME "ctlrender-EXR->EXR32" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format exr32 -force "${TEST_FILES}/bars_photoshop.exr" "${CTLRENDER_OUTPUT_FOLDER}/bars_exr_exr32.exr")

# RGB Tests
add_test(NAME "EXR16->EXR16" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format exr16 -force "${TEST_FILES}/colorbars_nuke_rgb_exr16.exr" "${OUTPUT_FOLDER}/bars_rgb_exr16_to_exr16.exr")
add_test(NAME "EXR16->EXR32" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format exr32 -force "${TEST_FILES}/colorbars_nuke_rgb_exr16.exr" "${OUTPUT_FOLDER}/bars_rgb_exr16_to_exr32.exr")
add_test(NAME "EXR32->EXR16" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format exr16 -force "${TEST_FILES}/colorbars_nuke_rgb_exr32.exr" "${OUTPUT_FOLDER}/bars_rgb_exr32_to_exr16.exr")
add_test(NAME "EXR32->EXR32" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format exr32 -force "${TEST_FILES}/colorbars_nuke_rgb_exr32.exr" "${OUTPUT_FOLDER}/bars_rgb_exr32_to_exr32.exr")
add_test(NAME "ctlrender-EXR16->EXR16" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format exr16 -force "${TEST_FILES}/colorbars_nuke_rgb_exr16.exr" "${CTLRENDER_OUTPUT_FOLDER}/bars_rgb_exr16_to_exr16.exr")
add_test(NAME "ctlrender-EXR16->EXR32" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format exr32 -force "${TEST_FILES}/colorbars_nuke_rgb_exr16.exr" "${CTLRENDER_OUTPUT_FOLDER}/bars_rgb_exr16_to_exr32.exr")
add_test(NAME "ctlrender-EXR32->EXR16" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format exr16 -force "${TEST_FILES}/colorbars_nuke_rgb_exr32.exr" "${CTLRENDER_OUTPUT_FOLDER}/bars_rgb_exr32_to_exr16.exr")
add_test(NAME "ctlrender-EXR32->EXR32" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format exr32 -force "${TEST_FILES}/colorbars_nuke_rgb_exr32.exr" "${CTLRENDER_OUTPUT_FOLDER}/bars_rgb_exr32_to_exr32.exr")

# RGBA Tests
add_test(NAME "EXR_RGBA16->EXR_RGBA_16" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity_with_alpha.ctl" -format exr16 -force "${TEST_FILES}/colorbars_nuke_rgba_exr16.exr" "${OUTPUT_FOLDER}/bars_rgba_exr16_to_exr16.exr")
add_test(NAME "EXR_RGBA16->EXR_RGBA_32" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity_with_alpha.ctl" -format exr32 -force "${TEST_FILES}/colorbars_nuke_rgba_exr16.exr" "${OUTPUT_FOLDER}/bars_rgba_exr16_to_exr32.exr")
add_test(NAME "EXR_RGBA32->EXR_RGBA_16" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity_with_alpha.ctl" -format exr16 -force "${TEST_FILES}/colorbars_nuke_rgba_exr32.exr" "${OUTPUT_FOLDER}/bars_rgba_exr32_to_exr16.exr")
add_test(NAME "EXR_RGBA32->EXR_RGBA_32" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity_with_alpha.ctl" -format exr32 -force "${TEST_FILES}/colorbars_nuke_rgba_exr32.exr" "${OUTPUT_FOLDER}/bars_rgba_exr32_to_exr32.exr")
add_test(NAME "ctlrender-EXR_RGBA16->EXR_RGBA_16" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity_with_alpha.ctl" -format exr16 -force "${TEST_FILES}/colorbars_nuke_rgba_exr16.exr" "${CTLRENDER_OUTPUT_FOLDER}/bars_rgba_exr16_to_exr16.exr")
add_test(NAME "ctlrender-EXR_RGBA16->EXR_RGBA_32" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity_with_alpha.ctl" -format exr32 -force "${TEST_FILES}/colorbars_nuke_rgba_exr16.exr" "${CTLRENDER_OUTPUT_FOLDER}/bars_rgba_exr16_to_exr32.exr")
add_test(NAME "ctlrender-EXR_RGBA32->EXR_RGBA_16" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity_with_alpha.ctl" -format exr16 -force "${TEST_FILES}/colorbars_nuke_rgba_exr32.exr" "${CTLRENDER_OUTPUT_FOLDER}/bars_rgba_exr32_to_exr16.exr")
add_test(NAME "ctlrender-EXR_RGBA32->EXR_RGBA_32" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity_with_alpha.ctl" -format exr32 -force "${TEST_FILES}/colorbars_nuke_rgba_exr32.exr" "${CTLRENDER_OUTPUT_FOLDER}/bars_rgba_exr32_to_exr32.exr")
endif()

# test TIFF32 to EXR and EXR to TIFF32 support
Expand All @@ -81,36 +82,36 @@ if (OpenEXR_FOUND AND TARGET TIFF::TIFF)
if(${J} MATCHES "tif.*" AND FILE_NAME_EXTENSION STREQUAL "tif")
continue()
endif()
add_test(NAME "EXR<->TIF_${I}->${J}" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format ${J} -force "${TEST_FILES}/${I}" "${OUTPUT_FOLDER}/${FILE_NAME}_${J}_exr_tif_conversion_test.${EXTENSION}")
add_test(NAME "ctlrender-EXR<->TIF_${I}->${J}" COMMAND ${CTLRENDER_PATH} -ctl "${TEST_FILES}/unity.ctl" -format ${J} -force "${TEST_FILES}/${I}" "${CTLRENDER_OUTPUT_FOLDER}/${FILE_NAME}_${J}_exr_tif_conversion_test.${EXTENSION}")
endforeach()
endforeach()
endif()

add_test(NAME "ctlrender-ctl-function-name-is-filename" COMMAND ctlrender -force -format exr32 -ctl "${TEST_FILES}/functionname_is_filename.ctl" "${TEST_FILES}/bars_photoshop.exr" out.exr)
add_test(NAME "ctlrender-ctl-function-name-is-filename" COMMAND ctlrender -force -format exr32 -ctl "${TEST_FILES}/functionname_is_filename.ctl" "${TEST_FILES}/bars_photoshop.exr" "${CTLRENDER_OUTPUT_FOLDER}/functionname_is_filename.exr")

add_test(NAME "ctlrender-ctl-function-name-is-incorrect" COMMAND ctlrender -force -format exr32 -ctl "${TEST_FILES}/incorrect_function_name.ctl" "${TEST_FILES}/bars_photoshop.exr" out.exr)
add_test(NAME "ctlrender-ctl-function-name-is-incorrect" COMMAND ctlrender -force -format exr32 -ctl "${TEST_FILES}/incorrect_function_name.ctl" "${TEST_FILES}/bars_photoshop.exr" "${CTLRENDER_OUTPUT_FOLDER}/incorrect_function_name.exr")
set_tests_properties("ctlrender-ctl-function-name-is-incorrect" PROPERTIES WILL_FAIL TRUE)

# Test for invalid input file names
add_test(NAME "ctlrender-invalid-input-filename-dpx" COMMAND ctlrender -force -format dpx -ctl "${TEST_FILES}/unity.ctl" "${TEST_FILES}/invalid_filename.dpx" "${TEST_FILES}/invalid_filename_out.dpx")
add_test(NAME "ctlrender-invalid-input-filename-dpx" COMMAND ctlrender -force -format dpx -ctl "${TEST_FILES}/unity.ctl" "${TEST_FILES}/invalid_filename.dpx" "${CTLRENDER_OUTPUT_FOLDER}/invalid_filename_out.dpx")
set_tests_properties("ctlrender-invalid-input-filename-dpx" PROPERTIES WILL_FAIL TRUE)
if(TARGET TIFF::TIFF)
add_test(NAME "ctlrender-invalid-input-filename-tiff" COMMAND ctlrender -force -format tiff -ctl "${TEST_FILES}/unity.ctl" "${TEST_FILES}/invalid_filename.tif" "${TEST_FILES}/invalid_filename_out.tif")
add_test(NAME "ctlrender-invalid-input-filename-tiff" COMMAND ctlrender -force -format tiff -ctl "${TEST_FILES}/unity.ctl" "${TEST_FILES}/invalid_filename.tif" "${CTLRENDER_OUTPUT_FOLDER}/invalid_filename_out.tif")
set_tests_properties("ctlrender-invalid-input-filename-tiff" PROPERTIES WILL_FAIL TRUE)
endif()
if(OpenEXR_FOUND)
add_test(NAME "ctlrender-invalid-input-filename-exr" COMMAND ctlrender -force -format exr -ctl "${TEST_FILES}/unity.ctl" "${TEST_FILES}/invalid_filename.exr" "${TEST_FILES}/invalid_filename_out.exr")
add_test(NAME "ctlrender-invalid-input-filename-exr" COMMAND ctlrender -force -format exr -ctl "${TEST_FILES}/unity.ctl" "${TEST_FILES}/invalid_filename.exr" "${CTLRENDER_OUTPUT_FOLDER}/invalid_filename_out.exr")
set_tests_properties("ctlrender-invalid-input-filename-exr" PROPERTIES WILL_FAIL TRUE)
endif()

# Test for invalid output file names
add_test(NAME "ctlrender-invalid-output-filename-dpx" COMMAND ctlrender -force -format dpx -ctl "${TEST_FILES}/unity.ctl" "${TEST_FILES}/bars_nuke_8_be.dpx" "${TEST_FILES}/missing_folder/invalid_filename_out.dpx")
add_test(NAME "ctlrender-invalid-output-filename-dpx" COMMAND ctlrender -force -format dpx -ctl "${TEST_FILES}/unity.ctl" "${TEST_FILES}/bars_nuke_8_be.dpx" "${CTLRENDER_OUTPUT_FOLDER}/missing_folder/invalid_filename_out.dpx")
set_tests_properties("ctlrender-invalid-output-filename-dpx" PROPERTIES WILL_FAIL TRUE)
if(TARGET TIFF::TIFF)
add_test(NAME "ctlrender-invalid-output-filename-tiff" COMMAND ctlrender -force -format tiff -ctl "${TEST_FILES}/unity.ctl" "${TEST_FILES}/bars_photoshop_8_be_interleaved.tif" "${TEST_FILES}/missing_folder/invalid_filename_out.tif")
add_test(NAME "ctlrender-invalid-output-filename-tiff" COMMAND ctlrender -force -format tiff -ctl "${TEST_FILES}/unity.ctl" "${TEST_FILES}/bars_photoshop_8_be_interleaved.tif" "${CTLRENDER_OUTPUT_FOLDER}/missing_folder/invalid_filename_out.tif")
set_tests_properties("ctlrender-invalid-output-filename-tiff" PROPERTIES WILL_FAIL TRUE)
endif()
if(OpenEXR_FOUND)
add_test(NAME "ctlrender-invalid-output-filename-exr" COMMAND ctlrender -force -format exr -ctl "${TEST_FILES}/unity.ctl" "${TEST_FILES}/colorbars_nuke_rgb_exr16.exr" "${TEST_FILES}/missing_folder/invalid_filename_out.exr")
add_test(NAME "ctlrender-invalid-output-filename-exr" COMMAND ctlrender -force -format exr -ctl "${TEST_FILES}/unity.ctl" "${TEST_FILES}/colorbars_nuke_rgb_exr16.exr" "${CTLRENDER_OUTPUT_FOLDER}/missing_folder/invalid_filename_out.exr")
set_tests_properties("ctlrender-invalid-output-filename-exr" PROPERTIES WILL_FAIL TRUE)
endif()
Loading

0 comments on commit fddefc7

Please sign in to comment.