--- /dev/null
+# Copyright (c) 2014 Mathieu Malaterre <mathieu.malaterre@voxxl.com>
+#
+# Redistribution and use is allowed according to the terms of the New
+# BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+# check md5 refs
+#
+# This script will be used to make sure we never introduce a regression on any
+# of the nonregression file.
+#
+# The approach is relatively simple, we compute a md5sum for each of the decode
+# file. Anytime the md5sum is different from the reference one, we assume
+# something went wrong and simply fails. of course if could happen during the
+# course of openjpeg development that the internals are changed that impact the
+# decoding process that the output would be bitwise different (while PSNR would
+# be kept identical).
+
+#message("0: ${REFFILE}")
+#message("1: ${CMAKE_CURRENT_BINARY_DIR}")
+#message("2: ${FILENAME}")
+file(GLOB globfiles "Temporary/${FILENAME}*.pgx" )
+#message("6: ${globfiles}")
+
+# REFFILE follow what md5sum -c would expect as input:
+file(READ ${REFFILE} variable)
+#string(REGEX REPLACE "\r?\n" ";" variable "${variable}")
+
+foreach(pgxfullpath ${globfiles})
+ get_filename_component(pgxfile ${pgxfullpath} NAME)
+ #message("8: ${pgxfile}")
+ execute_process(
+ COMMAND ${CMAKE_COMMAND} -E md5sum ${pgxfile}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Temporary
+ RESULT_VARIABLE res
+ OUTPUT_VARIABLE output
+ ERROR_VARIABLE error_output
+ OUTPUT_STRIP_TRAILING_WHITESPACE # important
+ )
+
+ # Pass the output back to ctest
+ if(res)
+ message(SEND_ERROR "md5 could not be computed, it failed with value ${res}. Output was: ${error_output}")
+ endif()
+ #message("3: ${output}")
+
+ #message("4: ${variable}")
+ string(REGEX MATCH "[0-9a-f]+ ${pgxfile}" output_var "${variable}")
+ #message("5: ${output_var}")
+
+ if("${output_var}" STREQUAL "${output}")
+ #message("6: eqal")
+ else()
+ message(SEND_ERROR "not equal: [${output_var}] vs [${output}]")
+ endif()
+endforeach()
--- /dev/null
+6f22c9a9bd474202ac6cd3a066e15200 _00042.j2k_0.pgx
+a3a0606dfa0779d657c6a923b90e4678 _00042.j2k_1.pgx
+106954dc468dfe0884d02268e91f9f5b _00042.j2k_2.pgx
+8889def55f1e18dae6002b9b3a6dd152 123.j2c_0.pgx
+4a0daf7a9065101379eaebc28e436b1e Bretagne2.j2k_0.pgx
+07578fc7bf81d3da694de8ae27308b82 Bretagne2.j2k_1.pgx
+3690c42f83bad42f4abea48525d45e0e Bretagne2.j2k_2.pgx
+8889def55f1e18dae6002b9b3a6dd152 bug.j2c_0.pgx
+22c8d33a956ba83079d1102457bc77a1 buxI.j2k_0.pgx
+b8f473c07ba5ebfc195bdd53c3b3b97f buxR.j2k_0.pgx
+05c062aca83d13b8095460f38a690a08 Cannotreaddatawithnosizeknown.j2k_0.pgx
+6276da0ec5fac44d683d3468b290331d cthead1.j2k_0.pgx
+8afcac9a696cc8d753b0eb9f4ae692ff CT_Phillips_JPEG2K_Decompr_Problem.j2k_0.pgx
+04d35ab6160c9029549f72358df984da file409752_0.pgx
+2813bd6fdc2c306b91b3da3688b8bf49 file409752_1.pgx
+e273e2aaea4a4fc1b2cf7c09c53c3cc6 file409752_2.pgx
+05c062aca83d13b8095460f38a690a08 illegalcolortransform.j2k_0.pgx
+cb28787aa7c223f03e6acad71e244108 issue104_jpxstream.jp2_0.pgx
+cb28787aa7c223f03e6acad71e244108 issue104_jpxstream.jp2_1.pgx
+cb28787aa7c223f03e6acad71e244108 issue104_jpxstream.jp2_2.pgx
+adda4f5e46845b96dd3df14a76aa7229 issue188_beach_64bitsbox.jp2_0.pgx
+90a9709c166019d1e101e7b96d257ed9 issue188_beach_64bitsbox.jp2_1.pgx
+37e23d2df06ee60bf0f9f5e1c16054d8 issue188_beach_64bitsbox.jp2_2.pgx
+cb89739232898a823355861d834b5734 issue205.jp2_0.pgx
+a09d34928fd86e6f2d7e6edc1764d2b7 issue205.jp2_1.pgx
+6f712d0685f2c5522f01b238365f4284 issue205.jp2_2.pgx
+de992d54d59032eb07d21983dbe8155b issue205.jp2_3.pgx
+8fae7a39e459409f64e4529d2214087a issue206_image-000.jp2_0.pgx
+555a504a93c9a14f61c894da3b393e87 issue206_image-000.jp2_1.pgx
+5f06b7c45446ae20c22cada46478a9dc issue206_image-000.jp2_2.pgx
+e1807db57b5f5192c4b77b83e8b5c477 issue228.j2k_0.pgx
+4093cc34d838780b35a8be410247fa7f j2k32.j2k_0.pgx
+ce4e556aaa0844b92a92c35c200fc43e j2k32.j2k_1.pgx
+ea926520f990640862f3fe6616097613 j2k32.j2k_2.pgx
+66b60e866991e03f9a2de18e80d3102b kakadu_v4-4_openjpegv2_broken.j2k_0.pgx
+12a8a4668315d9ae27969991251ce85f kodak_2layers_lrcp.j2c_0.pgx
+56d0b0c547d6d5bb12f0c36e88722b11 kodak_2layers_lrcp.j2c_1.pgx
+48ba092fb40090c160bbd08bdf7bdbf2 kodak_2layers_lrcp.j2c_2.pgx
+05c062aca83d13b8095460f38a690a08 MarkerIsNotCompliant.j2k_0.pgx
+ff73d2bd32951d9e55b02186aac24aff Marrin.jp2_0.pgx
+55ce884dd2346af6a5172a434ee578fa Marrin.jp2_1.pgx
+29131264861b4ee21011149b27e4d488 mem-b2ace68c-1381.jp2_0.pgx
+29131264861b4ee21011149b27e4d488 mem-b2ace68c-1381.jp2_1.pgx
+29131264861b4ee21011149b27e4d488 mem-b2ace68c-1381.jp2_2.pgx
+df568fe0529219cc2c8f215e236f4b3d mem-b2ace68c-1381.jp2_3.pgx
+41ec1a0228c703b10f95388c1160753b mem-b2b86b74-2753.jp2_0.pgx
+41ec1a0228c703b10f95388c1160753b mem-b2b86b74-2753.jp2_1.pgx
+41ec1a0228c703b10f95388c1160753b mem-b2b86b74-2753.jp2_2.pgx
+97557ab9e38a7aff621e583fbb66b099 merged.jp2_0.pgx
+386fbdcd294429733e3272d62ed5a15a merged.jp2_1.pgx
+d3907bbd67be1dae31b4377fa4dc0373 merged.jp2_2.pgx
+de8bba9ac366eeb2f170f0cf3605cf12 movie_00000.j2k_0.pgx
+334bac3285f7138e9dd29d59bdcb22ff movie_00000.j2k_1.pgx
+5511d2c96d1d1f2062491e00d5234506 movie_00000.j2k_2.pgx
+de8bba9ac366eeb2f170f0cf3605cf12 movie_00001.j2k_0.pgx
+334bac3285f7138e9dd29d59bdcb22ff movie_00001.j2k_1.pgx
+5511d2c96d1d1f2062491e00d5234506 movie_00001.j2k_2.pgx
+de8bba9ac366eeb2f170f0cf3605cf12 movie_00002.j2k_0.pgx
+334bac3285f7138e9dd29d59bdcb22ff movie_00002.j2k_1.pgx
+5511d2c96d1d1f2062491e00d5234506 movie_00002.j2k_2.pgx
+951a55623a92e97a064a350f11c2637d orb-blue10-lin-j2k.j2k_0.pgx
+5033aaf699dfa3dfe041af33c9ad688d orb-blue10-lin-j2k.j2k_1.pgx
+dbe33d72484caedf9c2cc18fd670884c orb-blue10-lin-j2k.j2k_2.pgx
+0fec67d9546171699958c6682e725b79 orb-blue10-lin-j2k.j2k_3.pgx
+84462261381b6732ec4f2addb0070d24 orb-blue10-lin-jp2.jp2_0.pgx
+6129edf57e5db2344fcde5ce99ae8732 orb-blue10-lin-jp2.jp2_1.pgx
+fdad26b1e078aa32bd4b77a5f44da43c orb-blue10-lin-jp2.jp2_2.pgx
+0fec67d9546171699958c6682e725b79 orb-blue10-lin-jp2.jp2_3.pgx
+671feee525e2485060536edbf21380f1 orb-blue10-win-j2k.j2k_0.pgx
+912cdee24dd360b7999f7ee4a51083b4 orb-blue10-win-j2k.j2k_1.pgx
+64833b4b7557936b9233087e92f8ae28 orb-blue10-win-j2k.j2k_2.pgx
+789a299a1523b2d9d3f561d12a2da817 orb-blue10-win-j2k.j2k_3.pgx
+671feee525e2485060536edbf21380f1 orb-blue10-win-jp2.jp2_0.pgx
+7442756e83571c0e87493e03f12b2d34 orb-blue10-win-jp2.jp2_1.pgx
+5f99ff2aeb17e167fe7049bcf339d0b3 orb-blue10-win-jp2.jp2_2.pgx
+fe028d56d6c7aaee87239a115093412a orb-blue10-win-jp2.jp2_3.pgx
+371aa0a7ff40a73b45f1fa41e210d1db pacs.ge.j2k_0.pgx
+6ae110e1fb5a869af3dbc5fbc735b0bd relax.jp2_0.pgx
+518a8f28dacc034982507f43763b88dd relax.jp2_1.pgx
+c678b04f4d3e59b9d66a8bce37c553c0 relax.jp2_2.pgx
+cdb1d69eb48ffd8545751326b86d9d7e test_lossless.j2k_0.pgx
+a37e7e5811d7c0c7adb61582790ccd33 text_GBR.jp2_0.pgx
+fc2173be54954a146b4e2887ee14be06 text_GBR.jp2_1.pgx
+14108b4fb8d9126750db0424417ed17d text_GBR.jp2_2.pgx