Remove support for non-C99 compilers (like VS2010) that don't support snprintf()
[openjpeg.git] / tests / conformance / CMakeLists.txt
index 63f6c456b31f9911732af0e4ffb21857b473f51a..548a93d215acb76fa59a5d615d01f7d3ebf0e5cd 100644 (file)
 # CONFORMANCE TESTS AND NON-REGRESSION ON THIS DATASET
 
-FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Temporary)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Temporary)
 
-SET(TEMP ${CMAKE_CURRENT_BINARY_DIR}/Temporary)
-SET(BASELINE_CONF ${OPJ_DATA_ROOT}/baseline/conformance)
-SET(BASELINE_NR ${OPJ_DATA_ROOT}/baseline/nonregression)
-SET(INPUT_CONF ${OPJ_DATA_ROOT}/input/conformance)
+set(TEMP ${CMAKE_CURRENT_BINARY_DIR}/Temporary)
+set(BASELINE_CONF ${OPJ_DATA_ROOT}/baseline/conformance)
+set(BASELINE_NR ${OPJ_DATA_ROOT}/baseline/nonregression)
+set(INPUT_CONF ${OPJ_DATA_ROOT}/input/conformance)
 
 
-# List of components by file (normaly p0_13.j2k have 257 components but for this 
+# List of components by file (normally p0_13.j2k have 257 components but for this
 #set of test we consider only 4)
-SET( CP0_nbC_list "not_used;1;1;1;3;4;4;3;3;1;3;1;1;4;3;1;1")
-SET( CP1_nbC_list "not_used;1;3;4;1;3;3;2")
-
-SET(COMMENTCODEVAR FALSE)
-
-
-#--------------------------------------------------------------------------
-# Tests about class 0 profile 0
-# try to decode
-# compare to ref file provided by the Executable Test Suite
-# non regression comparison
-
-# Parameters and tolerances given by Table C.1
-SET( C0P0_ResFactor_list "not_used;0;0;0;3;3;3;0;5;2;0;0;0;0;2;0;0")
-SET( C0P0_PEAK_list "not_used;0;0;0;33;54;109;10;7;4;10;0;0;0;0;0;0")
-SET( C0P0_MSE_list "not_used;0;0;0;55.8;68;743;0.34;6.72;1.47;2.84;0;0;0;0;0;0")
-
-FOREACH(numFileC0P0 RANGE 1 16) 
-
-  # Build filenames
-  IF(${numFileC0P0} LESS 10)
-    SET( filenameInput p0_0${numFileC0P0}.j2k )
-    SET( filenameRef   c0p0_0${numFileC0P0}.pgx )
-  ELSE(${numFileC0P0} LESS 10)
-    SET( filenameInput p0_${numFileC0P0}.j2k )
-    SET( filenameRef   c0p0_${numFileC0P0}.pgx )
-  ENDIF(${numFileC0P0} LESS 10)
-  
-  # Get corresponding tests parameters
-  list(GET C0P0_ResFactor_list ${numFileC0P0}  ResFactor)
-  list(GET CP0_nbC_list ${numFileC0P0}  nbComponents)
-  list(GET C0P0_PEAK_list ${numFileC0P0}  PEAK_limit)
-  list(GET C0P0_MSE_list ${numFileC0P0}  MSE_limit)
-  
-  # Manage cases which need to try different resolution reduction
-  IF (numFileC0P0 EQUAL 3 OR numFileC0P0 EQUAL 15)
-    get_filename_component(filenameRefSub ${filenameRef} NAME_WE)
-    #r = 0
-    
-    ADD_TEST(ETS-C0P0-${filenameInput}-r0-decode 
-        ${EXECUTABLE_OUTPUT_PATH}/j2k_to_image 
-        -i ${INPUT_CONF}/${filenameInput}
-        -o ${TEMP}/c0${filenameInput}-r0.pgx
-        -r 0
-        )
-     
-    ADD_TEST(ETS-C0P0-${filenameInput}-r0-compare2ref
-        ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
-        -b ${BASELINE_CONF}/${filenameRefSub}r0.pgx
-        -t ${TEMP}/c0${filenameInput}-r0.pgx
-        -n ${nbComponents}
-        -p ${PEAK_limit}
-        -m ${MSE_limit}
-        -s t_
-        )
-      
-    SET_TESTS_PROPERTIES(ETS-C0P0-${filenameInput}-r0-compare2ref  
-                         PROPERTIES DEPENDS 
-                         ETS-C0P0-${filenameInput}-r0-decode)    
-                       
-    ADD_TEST(NR-C0P0-${filenameInput}-r0-compare2base
-        ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
-        -b ${BASELINE_NR}/opj_${filenameRefSub}-r0.pgx
-        -t ${TEMP}/c0${filenameInput}-r0.pgx
-        -n ${nbComponents}
-        -d 
-        -s b_t_
-        )
-    SET_TESTS_PROPERTIES(NR-C0P0-${filenameInput}-r0-compare2base  
-                         PROPERTIES DEPENDS 
-                         ETS-C0P0-${filenameInput}-r0-decode)  
-    
-    #r = 1
-    ADD_TEST(ETS-C0P0-${filenameInput}-r1-decode
-        ${EXECUTABLE_OUTPUT_PATH}/j2k_to_image 
-        -i ${INPUT_CONF}/${filenameInput}
-        -o ${TEMP}/c0${filenameInput}-r1.pgx
-        -r 1
-        )
-     
-    ADD_TEST(ETS-C0P0-${filenameInput}-r1-compare2ref
-        ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
-        -b ${BASELINE_CONF}/${filenameRefSub}r1.pgx
-        -t ${TEMP}/c0${filenameInput}-r1.pgx
-        -n ${nbComponents}
-        -p ${PEAK_limit}
-        -m ${MSE_limit}
-        -s t_
-        )
-      
-    SET_TESTS_PROPERTIES(ETS-C0P0-${filenameInput}-r1-compare2ref  
-                         PROPERTIES DEPENDS 
-                         ETS-C0P0-${filenameInput}-r1-decode)    
-                       
-    ADD_TEST(NR-C0P0-${filenameInput}-r1-compare2base
-        ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
-        -b ${BASELINE_NR}/opj_${filenameRefSub}-r1.pgx
-        -t ${TEMP}/c0${filenameInput}-r1.pgx
-        -n ${nbComponents}
-        -d 
-        -s b_t_
-        )
-    SET_TESTS_PROPERTIES(NR-C0P0-${filenameInput}-r1-compare2base  
-                         PROPERTIES DEPENDS 
-                         ETS-C0P0-${filenameInput}-r1-decode) 
-
-  ELSE(numFileC0P0 EQUAL 3 OR numFileC0P0 EQUAL 15)
-  
-    ADD_TEST(ETS-C0P0-${filenameInput}-decode
-        ${EXECUTABLE_OUTPUT_PATH}/j2k_to_image 
-        -i ${INPUT_CONF}/${filenameInput}
-        -o ${TEMP}/c0${filenameInput}.pgx
-        -r ${ResFactor}
-        )
-   
-    ADD_TEST(ETS-C0P0-${filenameInput}-compare2ref
-        ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
-        -b ${BASELINE_CONF}/${filenameRef}
-        -t ${TEMP}/c0${filenameInput}.pgx
-        -n ${nbComponents}
-        -p ${PEAK_limit}
-        -m ${MSE_limit}
-        -s t_
-        )
-      
-    SET_TESTS_PROPERTIES(ETS-C0P0-${filenameInput}-compare2ref  
-                         PROPERTIES DEPENDS 
-                         ETS-C0P0-${filenameInput}-decode)    
-                       
-    ADD_TEST(NR-C0P0-${filenameInput}-compare2base
-        ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
-        -b ${BASELINE_NR}/opj_${filenameRef}
-        -t ${TEMP}/c0${filenameInput}.pgx
-        -n ${nbComponents}
-        -d 
-        -s b_t_
-        )
-    SET_TESTS_PROPERTIES(NR-C0P0-${filenameInput}-compare2base  
-                         PROPERTIES DEPENDS 
-                         ETS-C0P0-${filenameInput}-decode)    
-      
-  ENDIF(numFileC0P0 EQUAL 3 OR numFileC0P0 EQUAL 15)
-
-ENDFOREACH(numFileC0P0)
-
-#--------------------------------------------------------------------------
-# Tests about class 0 profile 1
-# try to decode
-# compare to ref file
-# non regression comparison
-
-# Parameters and tolerances given by Table C.4
-SET( C0P1_ResFactor_list "not_used;0;3;3;0;4;1;0")
-SET( C0P1_PEAK_list "not_used;0;35;28;2;128;128;0")
-SET( C0P1_MSE_list "not_used;0;74;18.8;0.550;16384;16384;0")
-
-FOREACH(numFileC0P1 RANGE 1 7) 
-
-  # Build filenames
-  SET( filenameInput p1_0${numFileC0P1}.j2k )
-  SET( filenameRef   c0p1_0${numFileC0P1}.pgx )
-
-  # Get corresponding tests parameters 
-  list(GET C0P1_ResFactor_list ${numFileC0P1}  ResFactor)
-  list(GET CP1_nbC_list ${numFileC0P1}  nbComponents)
-  list(GET C0P1_PEAK_list ${numFileC0P1}  PEAK_limit)
-  list(GET C0P1_MSE_list ${numFileC0P1}  MSE_limit) 
-
-  # Manage cases which need to try different resolution reduction
-  IF (numFileC0P1 EQUAL 4 )
-    get_filename_component(filenameRefSub ${filenameRef} NAME_WE)
-    
-    #r = 0
-    ADD_TEST(ETS-C0P1-${filenameInput}-r0-decode 
-        ${EXECUTABLE_OUTPUT_PATH}/j2k_to_image 
-        -i ${INPUT_CONF}/${filenameInput}
-        -o ${TEMP}/c0${filenameInput}-r0.pgx
-        -r 0
-        )
-    
-    ADD_TEST(ETS-C0P1-${filenameInput}-r0-compare2ref
-        ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
-        -b ${BASELINE_CONF}/${filenameRefSub}r0.pgx
-        -t ${TEMP}/c0${filenameInput}-r0.pgx
-        -n ${nbComponents}
-        -p ${PEAK_limit}
-        -m ${MSE_limit}
-        -s t_
-        )
-      
-    SET_TESTS_PROPERTIES(ETS-C0P1-${filenameInput}-r0-compare2ref  
-                         PROPERTIES DEPENDS 
-                         ETS-C0P1-${filenameInput}-r0-decode)    
-                       
-    ADD_TEST(NR-C0P1-${filenameInput}-r0-compare2base
-        ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
-        -b ${BASELINE_NR}/opj_${filenameRefSub}-r0.pgx
-        -t ${TEMP}/c0${filenameInput}-r0.pgx
-        -n ${nbComponents}
-        -d 
-        -s b_t_
-        )
-    SET_TESTS_PROPERTIES(NR-C0P1-${filenameInput}-r0-compare2base  
-                         PROPERTIES DEPENDS 
-                         ETS-C0P1-${filenameInput}-r0-decode)
-    
-    #r = 3
-    ADD_TEST(ETS-C0P1-${filenameInput}-r3-decode
-        ${EXECUTABLE_OUTPUT_PATH}/j2k_to_image 
-        -i ${INPUT_CONF}/${filenameInput}
-        -o ${TEMP}/c0${filenameInput}-r3.pgx
-        -r 3
-        )
-        
-    ADD_TEST(ETS-C0P1-${filenameInput}-r3-compare2ref
-        ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
-        -b ${BASELINE_CONF}/${filenameRefSub}r3.pgx
-        -t ${TEMP}/c0${filenameInput}-r3.pgx
-        -n ${nbComponents}
-        -p ${PEAK_limit}
-        -m ${MSE_limit}
-        -s t_
-        )
-      
-    SET_TESTS_PROPERTIES(ETS-C0P1-${filenameInput}-r3-compare2ref  
-                         PROPERTIES DEPENDS 
-                         ETS-C0P1-${filenameInput}-r3-decode)    
-                       
-    ADD_TEST(NR-C0P1-${filenameInput}-r3-compare2base
-        ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
-        -b ${BASELINE_NR}/opj_${filenameRefSub}-r3.pgx
-        -t ${TEMP}/c0${filenameInput}-r3.pgx
-        -n ${nbComponents}
-        -d 
-        -s b_t_
-        )
-    SET_TESTS_PROPERTIES(NR-C0P1-${filenameInput}-r3-compare2base  
-                         PROPERTIES DEPENDS 
-                         ETS-C0P1-${filenameInput}-r3-decode)
-       
-  ELSE(numFileC0P1 EQUAL 4)
-
-    ADD_TEST(ETS-C0P1-${filenameInput}-decode
-        ${EXECUTABLE_OUTPUT_PATH}/j2k_to_image 
-        -i ${INPUT_CONF}/${filenameInput}
-        -o ${TEMP}/c0${filenameInput}.pgx
-        -r ${ResFactor}
-        )
-            
-    ADD_TEST(ETS-C0P1-${filenameInput}-compare2ref
-        ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
-        -b ${BASELINE_CONF}/${filenameRef}
-        -t ${TEMP}/c0${filenameInput}.pgx
-        -n ${nbComponents}
-        -p ${PEAK_limit}
-        -m ${MSE_limit}
-        -s t_
-        )
-      
-    SET_TESTS_PROPERTIES(ETS-C0P1-${filenameInput}-compare2ref  
-                         PROPERTIES DEPENDS 
-                         ETS-C0P1-${filenameInput}-decode)    
-                       
-    ADD_TEST(NR-C0P1-${filenameInput}-compare2base
-        ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
-        -b ${BASELINE_NR}/opj_${filenameRef}
-        -t ${TEMP}/c0${filenameInput}.pgx
-        -n ${nbComponents}
-        -d 
-        -s b_t_
-        )
-    SET_TESTS_PROPERTIES(NR-C0P1-${filenameInput}-compare2base  
-                         PROPERTIES DEPENDS 
-                         ETS-C0P1-${filenameInput}-decode)
-            
-  ENDIF(numFileC0P1 EQUAL 4)
-
-ENDFOREACH(numFileC0P1)
+set( CP0_nbC_list "not_used;1;1;1;3;4;4;3;3;1;3;1;1;4;3;1;1")
+set( CP1_nbC_list "not_used;1;3;4;1;3;3;2")
+
+set(COMMENTCODEVAR FALSE)
+
+
+##--------------------------------------------------------------------------
+## Tests about class 0 profile 0
+## try to decode
+## compare to ref file provided by the Executable Test Suite
+## non regression comparison
+
+## Parameters and tolerances given by Table C.1
+#set( C0P0_ResFactor_list "not_used;0;0;0;3;3;3;0;5;2;0;0;0;0;2;0;0")
+#set( C0P0_PEAK_list "not_used;0;0;0;33;54;109;10;7;4;10;0;0;0;0;0;0")
+#set( C0P0_MSE_list "not_used;0;0;0;55.8;68;743;0.34;6.72;1.47;2.84;0;0;0;0;0;0")
+
+#foreach(numFileC0P0 RANGE 1 16)
+
+#  # Build filenames
+#  if(${numFileC0P0} LESS 10)
+#    set( filenameInput p0_0${numFileC0P0}.j2k )
+#    set( filenameRef   c0p0_0${numFileC0P0}.pgx )
+#  else()
+#    set( filenameInput p0_${numFileC0P0}.j2k )
+#    set( filenameRef   c0p0_${numFileC0P0}.pgx )
+#  endif()
+
+#  # Get corresponding tests parameters
+#  list(GET C0P0_ResFactor_list ${numFileC0P0}  ResFactor)
+#  #For Class-0 testing, we always focus on the first component only
+#  #list(GET CP0_nbC_list ${numFileC0P0}  nbComponents)
+#  set( nbComponents "1")
+#  list(GET C0P0_PEAK_list ${numFileC0P0}  PEAK_limit)
+#  list(GET C0P0_MSE_list ${numFileC0P0}  MSE_limit)
+
+#  # Manage cases which need to try different resolution reduction
+#  if (numFileC0P0 EQUAL 3 OR numFileC0P0 EQUAL 15)
+#    get_filename_component(filenameRefSub ${filenameRef} NAME_WE)
+#    #r = 0
+
+#    add_test(ETS-C0P0-${filenameInput}-r0-decode
+#        ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
+#        -i ${INPUT_CONF}/${filenameInput}
+#        -o ${TEMP}/c0${filenameInput}-r0.pgx
+#        -r 0
+#        )
+
+#    add_test(ETS-C0P0-${filenameInput}-r0-compare2ref
+#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
+#        -b ${BASELINE_CONF}/${filenameRefSub}r0.pgx
+#        -t ${TEMP}/c0${filenameInput}-r0.pgx
+#        -n ${nbComponents}
+#        -p ${PEAK_limit}
+#        -m ${MSE_limit}
+#        -s t_
+#        )
+
+#    set_tests_properties(ETS-C0P0-${filenameInput}-r0-compare2ref
+#                         PROPERTIES DEPENDS
+#                         ETS-C0P0-${filenameInput}-r0-decode)
+
+#    add_test(NR-C0P0-${filenameInput}-r0-compare2base
+#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
+#        -b ${BASELINE_NR}/opj_${filenameRefSub}-r0.pgx
+#        -t ${TEMP}/c0${filenameInput}-r0.pgx
+#        -n ${nbComponents}
+#        -d
+#        -s b_t_
+#        )
+
+#    set_tests_properties(NR-C0P0-${filenameInput}-r0-compare2base
+#                         PROPERTIES DEPENDS
+#                         ETS-C0P0-${filenameInput}-r0-decode)
+
+#    #r = 1
+#    add_test(ETS-C0P0-${filenameInput}-r1-decode
+#        ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
+#        -i ${INPUT_CONF}/${filenameInput}
+#        -o ${TEMP}/c0${filenameInput}-r1.pgx
+#        -r 1
+#        )
+
+#    add_test(ETS-C0P0-${filenameInput}-r1-compare2ref
+#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
+#        -b ${BASELINE_CONF}/${filenameRefSub}r1.pgx
+#        -t ${TEMP}/c0${filenameInput}-r1.pgx
+#        -n ${nbComponents}
+#        -p ${PEAK_limit}
+#        -m ${MSE_limit}
+#        -s t_
+#        )
+
+#    set_tests_properties(ETS-C0P0-${filenameInput}-r1-compare2ref
+#                         PROPERTIES DEPENDS
+#                         ETS-C0P0-${filenameInput}-r1-decode)
+
+#    add_test(NR-C0P0-${filenameInput}-r1-compare2base
+#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
+#        -b ${BASELINE_NR}/opj_${filenameRefSub}-r1.pgx
+#        -t ${TEMP}/c0${filenameInput}-r1.pgx
+#        -n ${nbComponents}
+#        -d
+#        -s b_t_
+#        )
+
+#    set_tests_properties(NR-C0P0-${filenameInput}-r1-compare2base
+#                         PROPERTIES DEPENDS
+#                         ETS-C0P0-${filenameInput}-r1-decode)
+
+#  else()
+
+#    add_test(ETS-C0P0-${filenameInput}-decode
+#        ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
+#        -i ${INPUT_CONF}/${filenameInput}
+#        -o ${TEMP}/c0${filenameInput}.pgx
+#        -r ${ResFactor}
+#        )
+
+#    add_test(ETS-C0P0-${filenameInput}-compare2ref
+#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
+#        -b ${BASELINE_CONF}/${filenameRef}
+#        -t ${TEMP}/c0${filenameInput}.pgx
+#        -n ${nbComponents}
+#        -p ${PEAK_limit}
+#        -m ${MSE_limit}
+#        -s t_
+#        )
+
+#    set_tests_properties(ETS-C0P0-${filenameInput}-compare2ref
+#                         PROPERTIES DEPENDS
+#                         ETS-C0P0-${filenameInput}-decode)
+
+#    add_test(NR-C0P0-${filenameInput}-compare2base
+#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
+#        -b ${BASELINE_NR}/opj_${filenameRef}
+#        -t ${TEMP}/c0${filenameInput}.pgx
+#        -n ${nbComponents}
+#        -d
+#        -s b_t_
+#        )
+
+#    set_tests_properties(NR-C0P0-${filenameInput}-compare2base
+#                         PROPERTIES DEPENDS
+#                         ETS-C0P0-${filenameInput}-decode)
+
+#  endif()
+
+#endforeach()
+
+##--------------------------------------------------------------------------
+## Tests about class 0 profile 1
+## try to decode
+## compare to ref file
+## non regression comparison
+
+## Parameters and tolerances given by Table C.4
+#set( C0P1_ResFactor_list "not_used;0;3;3;0;4;1;0")
+#set( C0P1_PEAK_list "not_used;0;35;28;2;128;128;0")
+#set( C0P1_MSE_list "not_used;0;74;18.8;0.550;16384;16384;0")
+
+#foreach(numFileC0P1 RANGE 1 7)
+
+#  # Build filenames
+#  set( filenameInput p1_0${numFileC0P1}.j2k )
+#  set( filenameRef   c0p1_0${numFileC0P1}.pgx )
+
+#  # Get corresponding tests parameters
+#  list(GET C0P1_ResFactor_list ${numFileC0P1}  ResFactor)
+#  #For Class-0 testing, we always focus on the first component only
+#  #list(GET CP0_nbC_list ${numFileC0P0}  nbComponents)
+#  set( nbComponents "1")
+#  list(GET C0P1_PEAK_list ${numFileC0P1}  PEAK_limit)
+#  list(GET C0P1_MSE_list ${numFileC0P1}  MSE_limit)
+
+#  # Manage cases which need to try different resolution reduction
+#  if (numFileC0P1 EQUAL 4 )
+#    get_filename_component(filenameRefSub ${filenameRef} NAME_WE)
+
+#    #r = 0
+#    add_test(ETS-C0P1-${filenameInput}-r0-decode
+#        ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
+#        -i ${INPUT_CONF}/${filenameInput}
+#        -o ${TEMP}/c0${filenameInput}-r0.pgx
+#        -r 0
+#        )
+
+#    add_test(ETS-C0P1-${filenameInput}-r0-compare2ref
+#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
+#        -b ${BASELINE_CONF}/${filenameRefSub}r0.pgx
+#        -t ${TEMP}/c0${filenameInput}-r0.pgx
+#        -n ${nbComponents}
+#        -p ${PEAK_limit}
+#        -m ${MSE_limit}
+#        -s t_
+#        )
+
+#    set_tests_properties(ETS-C0P1-${filenameInput}-r0-compare2ref
+#                         PROPERTIES DEPENDS
+#                         ETS-C0P1-${filenameInput}-r0-decode)
+
+#    add_test(NR-C0P1-${filenameInput}-r0-compare2base
+#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
+#        -b ${BASELINE_NR}/opj_${filenameRefSub}-r0.pgx
+#        -t ${TEMP}/c0${filenameInput}-r0.pgx
+#        -n ${nbComponents}
+#        -d
+#        -s b_t_
+#        )
+
+#    set_tests_properties(NR-C0P1-${filenameInput}-r0-compare2base
+#                         PROPERTIES DEPENDS
+#                         ETS-C0P1-${filenameInput}-r0-decode)
+
+#    #r = 3
+#    add_test(ETS-C0P1-${filenameInput}-r3-decode
+#        ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
+#        -i ${INPUT_CONF}/${filenameInput}
+#        -o ${TEMP}/c0${filenameInput}-r3.pgx
+#        -r 3
+#        )
+
+#    add_test(ETS-C0P1-${filenameInput}-r3-compare2ref
+#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
+#        -b ${BASELINE_CONF}/${filenameRefSub}r3.pgx
+#        -t ${TEMP}/c0${filenameInput}-r3.pgx
+#        -n ${nbComponents}
+#        -p ${PEAK_limit}
+#        -m ${MSE_limit}
+#        -s t_
+#        )
+
+#    set_tests_properties(ETS-C0P1-${filenameInput}-r3-compare2ref
+#                         PROPERTIES DEPENDS
+#                         ETS-C0P1-${filenameInput}-r3-decode)
+
+#    add_test(NR-C0P1-${filenameInput}-r3-compare2base
+#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
+#        -b ${BASELINE_NR}/opj_${filenameRefSub}-r3.pgx
+#        -t ${TEMP}/c0${filenameInput}-r3.pgx
+#        -n ${nbComponents}
+#        -d
+#        -s b_t_
+#        )
+
+#    set_tests_properties(NR-C0P1-${filenameInput}-r3-compare2base
+#                         PROPERTIES DEPENDS
+#                         ETS-C0P1-${filenameInput}-r3-decode)
+
+#  else()
+
+#    add_test(ETS-C0P1-${filenameInput}-decode
+#        ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
+#        -i ${INPUT_CONF}/${filenameInput}
+#        -o ${TEMP}/c0${filenameInput}.pgx
+#        -r ${ResFactor}
+#        )
+
+#    add_test(ETS-C0P1-${filenameInput}-compare2ref
+#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
+#        -b ${BASELINE_CONF}/${filenameRef}
+#        -t ${TEMP}/c0${filenameInput}.pgx
+#        -n ${nbComponents}
+#        -p ${PEAK_limit}
+#        -m ${MSE_limit}
+#        -s t_
+#        )
+
+#    set_tests_properties(ETS-C0P1-${filenameInput}-compare2ref
+#                         PROPERTIES DEPENDS
+#                         ETS-C0P1-${filenameInput}-decode)
+
+#    add_test(NR-C0P1-${filenameInput}-compare2base
+#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
+#        -b ${BASELINE_NR}/opj_${filenameRef}
+#        -t ${TEMP}/c0${filenameInput}.pgx
+#        -n ${nbComponents}
+#        -d
+#        -s b_t_
+#        )
+
+#    set_tests_properties(NR-C0P1-${filenameInput}-compare2base
+#                         PROPERTIES DEPENDS
+#                         ETS-C0P1-${filenameInput}-decode)
+
+#  endif()
+
+#endforeach()
 
 #--------------------------------------------------------------------------
 # Tests about class 1 profile 0
@@ -302,36 +306,36 @@ ENDFOREACH(numFileC0P1)
 # non regression comparison
 
 # Parameters and tolerances given by Table C.6
-SET( C1P0_ResFactor_list "not_used;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0")
-SET( C1P0_PEAK_list "not_used;0;0;0;5:4:6;2:2:2:0;635:403:378:0;0:0:0;0:0:0;0;0:0:0;0;0;0:0:0:0;0:0:0;0;0")
-SET( C1P0_MSE_list  "not_used;0;0;0;0.776:0.626:1.070;0.302:0.307:0.269:0;11287:6124:3968:0;0:0:0;0:0:0;0;0:0:0;0;0;0:0:0:0;0:0:0;0;0")
+set( C1P0_ResFactor_list "not_used;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0")
+set( C1P0_PEAK_list "not_used;0;0;0;5:4:6;2:2:2:0;635:403:378:0;0:0:0;0:0:0;0;0:0:0;0;0;0:0:0:0;0:0:0;0;0")
+set( C1P0_MSE_list  "not_used;0;0;0;0.776:0.626:1.070;0.302:0.307:0.269:0;11287:6124:3968:0;0:0:0;0:0:0;0;0:0:0;0;0;0:0:0:0;0:0:0;0;0")
 
-FOREACH(numFileC1P0 RANGE 1 16) 
+foreach(numFileC1P0 RANGE 1 16)
 
   # Build filenames
-  IF(${numFileC1P0} LESS 10)
-    SET( filenameInput p0_0${numFileC1P0}.j2k )
-    SET( filenameRef   c1p0_0${numFileC1P0}.pgx )
-  ELSE(${numFileC1P0} LESS 10)
-    SET( filenameInput p0_${numFileC1P0}.j2k )
-    SET( filenameRef   c1p0_${numFileC1P0}.pgx )
-  ENDIF(${numFileC1P0} LESS 10)
-  
-  # Get corresponding tests parameters 
+  if(${numFileC1P0} LESS 10)
+    set( filenameInput p0_0${numFileC1P0}.j2k )
+    set( filenameRef   c1p0_0${numFileC1P0}.pgx )
+  else()
+    set( filenameInput p0_${numFileC1P0}.j2k )
+    set( filenameRef   c1p0_${numFileC1P0}.pgx )
+  endif()
+
+  # Get corresponding tests parameters
   list(GET CP0_nbC_list ${numFileC1P0}  nbComponents)
   list(GET C1P0_ResFactor_list ${numFileC1P0}  ResFactor)
   list(GET C1P0_PEAK_list ${numFileC1P0}  PEAK_limit)
   list(GET C1P0_MSE_list ${numFileC1P0}  MSE_limit)
-  
-  ADD_TEST(ETS-C1P0-${filenameInput}-decode
-      ${EXECUTABLE_OUTPUT_PATH}/j2k_to_image 
+
+  add_test(NAME ETS-C1P0-${filenameInput}-decode
+      COMMAND opj_decompress
       -i ${INPUT_CONF}/${filenameInput}
       -o ${TEMP}/c1${filenameInput}.pgx
       -r ${ResFactor}
       )
-      
-  ADD_TEST(ETS-C1P0-${filenameInput}-compare2ref
-      ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
+
+  add_test(NAME ETS-C1P0-${filenameInput}-compare2ref
+      COMMAND compare_images
      -b ${BASELINE_CONF}/${filenameRef}
      -t ${TEMP}/c1${filenameInput}.pgx
      -n ${nbComponents}
@@ -339,25 +343,25 @@ FOREACH(numFileC1P0 RANGE 1 16)
      -m ${MSE_limit}
      -s b_t_
      )
-      
-  SET_TESTS_PROPERTIES(ETS-C1P0-${filenameInput}-compare2ref  
-                       PROPERTIES DEPENDS 
-                       ETS-C1P0-${filenameInput}-decode)    
-                       
-  ADD_TEST(NR-C1P0-${filenameInput}-compare2base
-      ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
+
+  set_tests_properties(ETS-C1P0-${filenameInput}-compare2ref
+                       PROPERTIES DEPENDS
+                       ETS-C1P0-${filenameInput}-decode)
+
+  add_test(NAME NR-C1P0-${filenameInput}-compare2base
+      COMMAND compare_images
      -b ${BASELINE_NR}/opj_${filenameRef}
      -t ${TEMP}/c1${filenameInput}.pgx
      -n ${nbComponents}
-     -d 
+     -d
      -s b_t_
      )
-  SET_TESTS_PROPERTIES(NR-C1P0-${filenameInput}-compare2base  
-                       PROPERTIES DEPENDS 
+
+  set_tests_properties(NR-C1P0-${filenameInput}-compare2base
+                       PROPERTIES DEPENDS
                        ETS-C1P0-${filenameInput}-decode)
-    
-ENDFOREACH(numFileC1P0)
+
+endforeach()
 
 #--------------------------------------------------------------------------
 # Tests about class 1 profile 1
@@ -366,29 +370,29 @@ ENDFOREACH(numFileC1P0)
 # non regression comparison
 
 # Parameters and tolerances given by Table C.7
-SET( C1P1_PEAK_list "not_used;0;5:4:6;2:2:1:0;624;40:40:40;2:2:2;0:0")
-SET( C1P1_MSE_list  "not_used;0;0.765:0.616:1.051;0.3:0.210:0.200:0;3080;8.458:9.816:10.154;0.6:0.6:0.6;0:0")
+set( C1P1_PEAK_list "not_used;0;5:4:6;2:2:1:0;624;40:40:40;2:2:2;0:0")
+set( C1P1_MSE_list  "not_used;0;0.765:0.616:1.051;0.3:0.210:0.200:0;3080;8.458:9.816:10.154;0.6:0.6:0.6;0:0")
 
-FOREACH(numFileC1P1 RANGE 1 7) 
+foreach(numFileC1P1 RANGE 1 7)
 
   # Build filenames
-  SET( filenameInput p1_0${numFileC1P1}.j2k )
-  SET( filenameRef   c1p1_0${numFileC1P1}.pgx )
-  
+  set( filenameInput p1_0${numFileC1P1}.j2k )
+  set( filenameRef   c1p1_0${numFileC1P1}.pgx )
+
   # Get corresponding tests parameters
   list(GET CP1_nbC_list ${numFileC1P1}  nbComponents)
   list(GET C1P1_PEAK_list ${numFileC1P1}  PEAK_limit)
   list(GET C1P1_MSE_list ${numFileC1P1}  MSE_limit)
-  
-  ADD_TEST(ETS-C1P1-${filenameInput}-decode
-      ${EXECUTABLE_OUTPUT_PATH}/j2k_to_image 
+
+  add_test(NAME ETS-C1P1-${filenameInput}-decode
+      COMMAND opj_decompress
       -i ${INPUT_CONF}/${filenameInput}
       -o ${TEMP}/c1${filenameInput}.pgx
       -r 0
       )
-  ADD_TEST(ETS-C1P1-${filenameInput}-compare2ref
-      ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
+
+  add_test(NAME ETS-C1P1-${filenameInput}-compare2ref
+      COMMAND compare_images
      -b ${BASELINE_CONF}/${filenameRef}
      -t ${TEMP}/c1${filenameInput}.pgx
      -n ${nbComponents}
@@ -396,25 +400,216 @@ FOREACH(numFileC1P1 RANGE 1 7)
      -m ${MSE_limit}
      -s b_t_
      )
-      
-  SET_TESTS_PROPERTIES(ETS-C1P1-${filenameInput}-compare2ref  
-                       PROPERTIES DEPENDS 
+
+  set_tests_properties(ETS-C1P1-${filenameInput}-compare2ref
+                       PROPERTIES DEPENDS
                        ETS-C1P1-${filenameInput}-decode)
-                       
-  ADD_TEST(NR-C1P1-${filenameInput}-compare2base
-      ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
+
+  add_test(NAME NR-C1P1-${filenameInput}-compare2base
+      COMMAND compare_images
      -b ${BASELINE_NR}/opj_${filenameRef}
      -t ${TEMP}/c1${filenameInput}.pgx
      -n ${nbComponents}
-     -d 
+     -d
      -s b_t_
      )
-      
-  SET_TESTS_PROPERTIES(NR-C1P1-${filenameInput}-compare2base  
-                       PROPERTIES DEPENDS 
+
+  set_tests_properties(NR-C1P1-${filenameInput}-compare2base
+                       PROPERTIES DEPENDS
                        ETS-C1P1-${filenameInput}-decode)
-                       
-ENDFOREACH(numFileC1P1)
+
+endforeach()
+
+#--------------------------------------------------------------------------
+# Tests about JP2 file
+# try to decode
+# compare to ref file
+# non regression comparison
+
+# Tolerances given by Part 4 - Table G.1
+# Peak is set to 4 only
+
+foreach(numFileJP2 RANGE 1 9)
+
+  # Build filenames
+  set( filenameInput "file${numFileJP2}.jp2" )
+  set( filenameRef   jp2_${numFileJP2}.tif )
+
+  add_test(NAME ETS-JP2-${filenameInput}-decode
+    COMMAND opj_decompress
+    -i ${INPUT_CONF}/${filenameInput}
+    -o ${TEMP}/${filenameInput}.tif
+    -p 8S
+    -force-rgb
+  )
+
+  add_test(NAME ETS-JP2-${filenameInput}-compare2ref
+    COMMAND compare_images
+    -b ${BASELINE_CONF}/${filenameRef}
+    -t ${TEMP}/${filenameInput}.tif
+    -n 3
+    -p 4:4:4
+    -m 1:1:1
+    -s b_t_
+  )
+
+  set_tests_properties(ETS-JP2-${filenameInput}-compare2ref
+    PROPERTIES DEPENDS
+    ETS-JP2-${filenameInput}-decode)
+
+  add_test(NAME NR-JP2-${filenameInput}-compare2base
+    COMMAND compare_images
+    -b ${BASELINE_NR}/opj_${filenameRef}
+    -t ${TEMP}/${filenameInput}.tif
+    -n 3
+    -d
+    -s b_t_
+  )
+
+  set_tests_properties(NR-JP2-${filenameInput}-compare2base
+    PROPERTIES DEPENDS
+    ETS-JP2-${filenameInput}-decode)
+
+endforeach()
+
+#--------------------------------------------------------------------------
+# Tests about Kakadu/J2K file
+# try to decode
+# compare to ref file
+# non regression comparison
+
+# Tolerances given by ???
+
+set(kdu_j2k_conf_files
+  a1_mono
+  a2_colr
+  a3_mono
+  a4_colr
+  a5_mono
+  a6_mono_colr
+  b1_mono
+  b2_mono
+  b3_mono
+  c1_mono
+  c2_mono
+  d1_colr
+  d2_colr
+  e1_colr
+  e2_colr
+  f1_mono
+  f2_mono
+  g1_colr
+  g2_colr
+  g3_colr
+  g4_colr
+)
+
+foreach(kdu_file ${kdu_j2k_conf_files})
+
+  # Build filenames
+  set( filenameInput "${kdu_file}.j2c" )
+  set( filenameRef   "${kdu_file}.ppm" )
+
+       if("${kdu_file}" STREQUAL "a6_mono_colr")
+    set(kdu_test_args -upsample -split-pnm )
+  else()
+    set(kdu_test_args -upsample )
+  endif()
+
+  add_test(NAME ETS-KDU-${filenameInput}-decode
+    COMMAND opj_decompress
+    -i ${INPUT_CONF}/${filenameInput}
+    -o ${TEMP}/${filenameInput}.ppm
+    ${kdu_test_args}
+  )
+
+  if("${kdu_file}" STREQUAL "a6_mono_colr")
+    set(kdu_test_args -n 4 -s b_t_ )
+    set(kdu_test_args_tol -p 4:4:4:4 -m 1:1:1:1)
+  else()
+    set(kdu_test_args -n 1 )
+    set(kdu_test_args_tol -p 4:4:4 -m 1:1:1)
+  endif()
+
+  add_test(NAME ETS-KDU-${filenameInput}-compare2ref
+    COMMAND compare_images
+    -b ${BASELINE_CONF}/${filenameRef}
+    -t ${TEMP}/${filenameInput}.ppm
+    ${kdu_test_args}
+    ${kdu_test_args_tol}
+  )
+
+  set_tests_properties(ETS-KDU-${filenameInput}-compare2ref
+    PROPERTIES DEPENDS
+    ETS-KDU-${filenameInput}-decode)
+
+  add_test(NAME NR-KDU-${filenameInput}-compare2base
+    COMMAND compare_images
+    -b ${BASELINE_NR}/opj_${filenameRef}
+    -t ${TEMP}/${filenameInput}.ppm
+    ${kdu_test_args}
+    -d
+  )
+
+  set_tests_properties(NR-KDU-${filenameInput}-compare2base
+    PROPERTIES DEPENDS
+    ETS-KDU-${filenameInput}-decode)
+endforeach()
+
+#--------------------------------------------------------------------------
+# Tests about Richter/J2K file
+# try to decode
+# compare to ref file
+# non regression comparison
+
+# Tolerances given by ???
+
+set(richter_jp2_conf_files
+  subsampling_1
+  subsampling_2
+  zoo1
+  zoo2
+)
+
+foreach(r_file ${richter_jp2_conf_files})
+
+  # Build filenames
+  set( filenameInput "${r_file}.jp2" )
+  set( filenameRef   "${r_file}.ppm" )
+
+  add_test(NAME ETS-RIC-${filenameInput}-decode
+    COMMAND opj_decompress
+    -i ${INPUT_CONF}/${filenameInput}
+    -o ${TEMP}/${filenameInput}.ppm
+  )
+
+  set(ric_test_args -n 1)
+
+  add_test(NAME ETS-RIC-${filenameInput}-compare2ref
+    COMMAND compare_images
+    -b ${BASELINE_CONF}/${filenameRef}
+    -t ${TEMP}/${filenameInput}.ppm
+    ${ric_test_args}
+    -p 4:4:4
+    -m 2:2:2
+  )
+
+  set_tests_properties(ETS-RIC-${filenameInput}-compare2ref
+    PROPERTIES DEPENDS
+    ETS-RIC-${filenameInput}-decode)
+
+  add_test(NAME NR-RIC-${filenameInput}-compare2base
+    COMMAND compare_images
+    -b ${BASELINE_NR}/opj_${filenameRef}
+    -t ${TEMP}/${filenameInput}.ppm
+    ${ric_test_args}
+    -d
+  )
+
+  set_tests_properties(NR-RIC-${filenameInput}-compare2base
+    PROPERTIES DEPENDS
+    ETS-RIC-${filenameInput}-decode)
+endforeach()
 
 #--------------------------------------------------------------------------#
 #--------------------------------------------------------------------------#
@@ -422,63 +617,92 @@ ENDFOREACH(numFileC1P1)
 
 #--------------------------------------------------------------------------
 # Tests about dump of profile 0 file
-# try to dump image and codestream informations into a file
+# try to dump image and codestream information into a file
 # non regression comparison this file to the baseline
 
-FOREACH(numFileP0 RANGE 1 16) 
+foreach(numFileP0 RANGE 1 16)
 
   # Build filenames
-  IF(${numFileP0} LESS 10)
-    SET( filenameInput p0_0${numFileP0}.j2k )
-  ELSE(${numFileP0} LESS 10)
-    SET( filenameInput p0_${numFileP0}.j2k )
-  ENDIF(${numFileP0} LESS 10)
+  if(${numFileP0} LESS 10)
+    set( filenameInput p0_0${numFileP0}.j2k )
+  else()
+    set( filenameInput p0_${numFileP0}.j2k )
+  endif()
   get_filename_component(filenameRefSub ${filenameInput} NAME_WE)
 
 
-  ADD_TEST(NR-${filenameInput}-dump
-      ${EXECUTABLE_OUTPUT_PATH}/j2k_dump
+  add_test(NAME NR-${filenameInput}-dump
+      COMMAND opj_dump
      -i ${INPUT_CONF}/${filenameInput}
      -o ${TEMP}/${filenameInput}.txt
      )
-     
-  ADD_TEST(NR-${filenameInput}-compare_dump2base
-      ${EXECUTABLE_OUTPUT_PATH}/compare_dump_files
-     -b ${BASELINE_NR}/opj_${filenameRefSub}.txt
+
+  add_test(NAME NR-${filenameInput}-compare_dump2base
+      COMMAND compare_dump_files
+     -b ${BASELINE_NR}/opj_v2_${filenameRefSub}.txt
      -t ${TEMP}/${filenameInput}.txt
      )
-     
-  SET_TESTS_PROPERTIES(NR-${filenameInput}-compare_dump2base  
-                       PROPERTIES DEPENDS 
+
+  set_tests_properties(NR-${filenameInput}-compare_dump2base
+                       PROPERTIES DEPENDS
                        NR-${filenameInput}-dump)
-                       
-ENDFOREACH(numFileP0 RANGE 1 16) 
+
+endforeach()
 
 #--------------------------------------------------------------------------
 # Tests about dump of profile 1 file
-# try to dump image and codestream informations into a file
+# try to dump image and codestream information into a file
 # non regression comparison this file to the baseline
 
-FOREACH(numFileP1 RANGE 1 7) 
+foreach(numFileP1 RANGE 1 7)
 
   # Build filenames
-  SET( filenameInput p1_0${numFileP1}.j2k )
+  set( filenameInput p1_0${numFileP1}.j2k )
   get_filename_component(filenameInputSub ${filenameInput} NAME_WE)
 
-  ADD_TEST(NR-${filenameInput}-dump
-      ${EXECUTABLE_OUTPUT_PATH}/j2k_dump
+  add_test(NAME NR-${filenameInput}-dump
+      COMMAND opj_dump
      -i ${INPUT_CONF}/${filenameInput}
      -o ${TEMP}/${filenameInput}.txt
      )
-     
-  ADD_TEST(NR-${filenameInput}-compare_dump2base
-      ${EXECUTABLE_OUTPUT_PATH}/compare_dump_files
-     -b ${BASELINE_NR}/opj_${filenameInputSub}.txt
+
+  add_test(NAME NR-${filenameInput}-compare_dump2base
+      COMMAND compare_dump_files
+     -b ${BASELINE_NR}/opj_v2_${filenameInputSub}.txt
      -t ${TEMP}/${filenameInput}.txt
      )
-     
-  SET_TESTS_PROPERTIES(NR-${filenameInput}-compare_dump2base
-                       PROPERTIES DEPENDS 
-                       NR-${filenameInput}-dump) 
-                       
-ENDFOREACH(numFileP1 RANGE 1 7) 
\ No newline at end of file
+
+  set_tests_properties(NR-${filenameInput}-compare_dump2base
+                       PROPERTIES DEPENDS
+                       NR-${filenameInput}-dump)
+
+endforeach()
+
+#--------------------------------------------------------------------------
+# Tests about dump of JP2 file
+# try to dump image and codestream information into a file
+# non regression comparison this file to the baseline
+
+foreach(numFileJP2 RANGE 1 9)
+
+  # Build filenames
+  set( filenameInput "file${numFileJP2}.jp2" )
+  get_filename_component(filenameInputSub ${filenameInput} NAME_WE)
+
+  add_test(NAME NR-${filenameInput}-dump
+      COMMAND opj_dump
+     -i ${INPUT_CONF}/${filenameInput}
+     -o ${TEMP}/${filenameInput}.txt
+     )
+
+  add_test(NAME NR-${filenameInput}-compare_dump2base
+      COMMAND compare_dump_files
+     -b ${BASELINE_NR}/opj_v2_${filenameInputSub}.txt
+     -t ${TEMP}/${filenameInput}.txt
+     )
+
+  set_tests_properties(NR-${filenameInput}-compare_dump2base
+                       PROPERTIES DEPENDS
+                       NR-${filenameInput}-dump)
+
+endforeach()