Add jpylyzer tests for JP2 compression
[openjpeg.git] / tests / nonregression / CMakeLists.txt
index 175c3d160181afbd3dfdbfd55ef5db754c54be47..633ed20fb66e8a27966ffeea8b09cf6bc4f9acf5 100644 (file)
@@ -13,6 +13,8 @@ set(INPUT_CONF_PATH ${OPJ_DATA_ROOT}/input/conformance)
 
 # need kdu_expand if possible
 find_package(KAKADU)
+# need jpylyzer if possible
+find_package(JPYLYZER)
 
 #########################################################################
 # GENERATION OF THE TEST SUITE (DUMP)
@@ -42,12 +44,15 @@ set(BLACKLIST_JPEG2000_TMP
     edf_c2_101463.jp2
     edf_c2_1674177.jp2
     edf_c2_1673169.jp2
+    issue429.jp2
+    issue427-null-image-size.jp2
+    issue427-illegal-tile-offset.jp2
    )
 
 # Define a list of file which should be gracefully rejected:
 set(BLACKLIST_JPEG2000
     ${BLACKLIST_JPEG2000_TMP}
-    broken.jp2 
+    broken1.jp2 
     broken2.jp2
     broken3.jp2
     broken4.jp2
@@ -57,6 +62,21 @@ set(BLACKLIST_JPEG2000
     gdal_fuzzer_unchecked_numresolutions.jp2
     mem-b2ace68c-1381.jp2
     1851.pdf.SIGSEGV.ce9.948.jp2
+    1888.pdf.asan.35.988.jp2
+    issue362-2863.jp2 #kdu_jp2info ok
+    issue362-2866.jp2
+    issue362-2894.jp2
+    issue400.jp2 #kdu_jp2info ok
+    issue364-38.jp2
+    issue364-903.jp2 #kdu_jp2info ok
+    issue393.jp2 #kdu_jp2info ok
+    issue408.jp2 #kdu_jp2info ok
+    issue420.jp2 #kdu_jp2info ok
+    27ac957758a35d00d6765a0c86350d9c.SIGFPE.d25.537.jpc #kdu_jp2info crash
+    3672da2f1f67bbecad27d7181b4e9d7c.SIGFPE.d25.805.jpc #kdu_jp2info crash
+    issue476.jp2 #kdu_jp2info ok
+    issue475.jp2 #kdu_jp2info ok
+    issue413.jp2 #kdu_jp2info ok
    )
 
 file(GLOB_RECURSE OPJ_DATA_NR_LIST
@@ -317,6 +337,21 @@ foreach(OPJ_TEST_CMD_LINE ${OPJ_TEST_CMD_LINE_LIST})
                                  NR-ENC-${INPUT_FILENAME_NAME}-${IT_TEST_ENC}-decode-ref)
 
           endif()
+          
+          # Test the encoded file is a valid JP2 file
+          if (JPYLYZER_EXECUTABLE)
+               if (${OUTPUT_FILENAME} MATCHES "\\.jp2$")
+                       add_test(NAME NR-ENC-${INPUT_FILENAME_NAME}-${IT_TEST_ENC}-jpylyser
+               COMMAND ${JPYLYZER_EXECUTABLE}
+               ${OUTPUT_FILENAME}
+               )
+              set_tests_properties(NR-ENC-${INPUT_FILENAME_NAME}-${IT_TEST_ENC}-jpylyser PROPERTIES 
+               DEPENDS NR-ENC-${INPUT_FILENAME_NAME}-${IT_TEST_ENC}-encode
+                                                       PASS_REGULAR_EXPRESSION "<isValidJP2>True</isValidJP2>"
+                                                               )
+                                                               
+               endif()
+          endif(JPYLYZER_EXECUTABLE)
       endif()
 
     # DECODER TEST SUITE