+# GENERATION OF THE TEST SUITE (DUMP)
+# Dump all files with the selected extension inside the input directory
+
+# Define a list of file which should be gracefully rejected:
+set(BLACKLIST_JPEG2000
+ broken.jp2
+ broken2.jp2
+ broken3.jp2
+ broken4.jp2
+ gdal_fuzzer_assert_in_opj_j2k_read_SQcd_SQcc.patch.jp2
+ gdal_fuzzer_check_comp_dx_dy.jp2
+ gdal_fuzzer_check_number_of_tiles.jp2
+ gdal_fuzzer_unchecked_numresolutions.jp2
+ )
+
+file(GLOB_RECURSE OPJ_DATA_NR_LIST
+ "${INPUT_NR}/*.j2k"
+ "${INPUT_NR}/*.j2c"
+ "${INPUT_NR}/*.jp2"
+ #"${INPUT_NR}/*.jpx"
+ )
+
+foreach(INPUT_FILENAME ${OPJ_DATA_NR_LIST})
+ get_filename_component(INPUT_FILENAME_NAME ${INPUT_FILENAME} NAME)
+ get_filename_component(INPUT_FILENAME_NAME_WE ${INPUT_FILENAME_NAME} NAME_WE)
+ string(REGEX MATCH ${INPUT_FILENAME_NAME} bad_jpeg2000 ${BLACKLIST_JPEG2000})
+
+ # Dump the input image
+ add_test(NR-${INPUT_FILENAME_NAME}-dump
+ ${EXECUTABLE_OUTPUT_PATH}/opj_dump
+ -i ${INPUT_FILENAME}
+ -o ${TEMP}/${INPUT_FILENAME_NAME}.txt
+ -v
+ )
+
+ if(bad_jpeg2000)
+ set_tests_properties(NR-${INPUT_FILENAME_NAME}-dump
+ PROPERTIES WILL_FAIL TRUE)
+
+ else()
+
+ # Compare the dump output with the baseline
+ add_test(NR-${INPUT_FILENAME_NAME}-compare_dump2base
+ ${EXECUTABLE_OUTPUT_PATH}/compare_dump_files
+ -b ${BASELINE_NR}/opj_v2_${INPUT_FILENAME_NAME_WE}.txt
+ -t ${TEMP}/${INPUT_FILENAME_NAME}.txt
+ )
+
+ set_tests_properties(NR-${INPUT_FILENAME_NAME}-compare_dump2base
+ PROPERTIES DEPENDS
+ NR-${INPUT_FILENAME_NAME}-dump)
+ endif()
+
+endforeach()
+
+
+#########################################################################
+# GENERATION OF THE TEST SUITE (DECODE AND ENCODE)
+# Read one and more input file(s) (located in ${OPJ_DATA_ROOT}/input/nonregression)