Browse Source

Add basic integration test

Martijn Braam 1 year ago
parent
commit
b3229dfb55
3 changed files with 54 additions and 0 deletions
  1. 11 0
      CMakeLists.txt
  2. 9 0
      tests/test.sh
  3. 34 0
      tests/test_dng_validate.sh

+ 11 - 0
CMakeLists.txt

@@ -18,3 +18,14 @@ target_link_libraries(libdng "tiff")
 add_executable(makedng util/makedng.c)
 target_include_directories(makedng PUBLIC include)
 target_link_libraries(makedng PUBLIC libdng)
+
+find_program(BASH bash)
+enable_testing()
+if (BASH_PROGRAM)
+    add_test(NAME mytest COMMAND ${BASH_PROGRAM} ${CMAKE_CURRENT_SOURCE_DIR}/tests/test.sh $<TARGET_FILE:makedng>)
+endif (BASH_PROGRAM)
+
+find_program(DNG_VALIDATE dng_validate)
+if (DNG_VALIDATE)
+    add_test(NAME test_dng_validate COMMAND ${BASH_PROGRAM} ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_dng_validate.sh $<TARGET_FILE:makedng>)
+endif (DNG_VALIDATE)

+ 9 - 0
tests/test.sh

@@ -0,0 +1,9 @@
+#!/bin/bash
+
+if [ $# -ne 1 ]; then
+  echo "Missing tool argument"
+  exit 1
+fi
+makedng="$1"
+
+echo "Should run $makedng"

+ 34 - 0
tests/test_dng_validate.sh

@@ -0,0 +1,34 @@
+#!/bin/bash
+set -e
+
+if [ $# -ne 1 ]; then
+  echo "Missing tool argument"
+  exit 1
+fi
+makedng="$1"
+echo "Running tests with '$makedng'"
+
+# This testsuite runs raw data through the makedng utility and validates the
+# result using the dng_validate tool from the Adobe DNG SDK. This tool needs
+# to be manually installed for these tests to run.
+
+# Create test raw data
+mkdir -p scratch
+magick -size 1280x720 gradient: -colorspace RGB scratch/data.rgb
+
+# Generate DNG
+
+$makedng -w 1280 -h 720 -p RGGB scratch/data.rgb scratch/RGGB.dng
+$makedng -w 1280 -h 720 -p GRBG scratch/data.rgb scratch/GRBG.dng
+$makedng -w 1280 -h 720 -p GBRG scratch/data.rgb scratch/GBRG.dng
+$makedng -w 1280 -h 720 -p BGGR scratch/data.rgb scratch/BGGR.dng
+
+$makedng -w 1280 -h 720 -p RG10 scratch/data.rgb scratch/RG10.dng
+
+# Validate DNG
+dng_validate scratch/RGGB.dng
+dng_validate scratch/GRBG.dng
+dng_validate scratch/GBRG.dng
+dng_validate scratch/BGGR.dng
+
+dng_validate scratch/RG10.dng