Repository navigation
tests fail (instead of being skipped) when HEVC decoder is unavailable #1900
Copy link
Copy link
Closed
Description
With 1.23.3, I'm getting the following test failures when built without a HEVC decoder:
$ /usr/bin/ctest --test-dir redhat-linux-build --output-on-failure --force-new-ctest-process -j8
Test project /builddir/build/BUILD/libheif-1.23.3-build/libheif-1.23.3/redhat-linux-build
Start 1: clap_decode
Start 2: encode
Start 3: encode_grid
Start 4: entity_groups
Start 5: extended_type
Start 6: grid_tile_missing
Start 7: iden_declared_size
Start 8: item_writing
1/40 Test #4: entity_groups ............................... Passed 0.02 sec
2/40 Test #5: extended_type ...............................***Skipped 0.02 sec
3/40 Test #6: grid_tile_missing ...........................***Failed 0.02 sec
Randomness seeded to: 205588934
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
grid_tile_missing is a Catch2 v3.7.1 host application.
Run with -? for options
-------------------------------------------------------------------------------
grid: real error is reported when all tiles fail to decode
-------------------------------------------------------------------------------
/builddir/build/BUILD/libheif-1.23.3-build/libheif-1.23.3/tests/grid_tile_missing.cc:537
...............................................................................
/builddir/build/BUILD/libheif-1.23.3-build/libheif-1.23.3/tests/grid_tile_missing.cc:563: FAILED:
CHECK( err.code == heif_error_Invalid_input )
with expansion:
11 == 2
with message:
error message: Error while loading plugin: No decoding plugin installed for
this compression format: HEVC (a suitable decoder plugin is libde265)
/builddir/build/BUILD/libheif-1.23.3-build/libheif-1.23.3/tests/grid_tile_missing.cc:564: FAILED:
CHECK( err.subcode == heif_suberror_End_of_data )
with expansion:
6003 == 100
with message:
error message: Error while loading plugin: No decoding plugin installed for
this compression format: HEVC (a suitable decoder plugin is libde265)
===============================================================================
test cases: 5 | 4 passed | 1 failed
assertions: 41 | 39 passed | 2 failed
4/40 Test #7: iden_declared_size .......................... Passed 0.02 sec
Start 9: overlay_amplification
Start 10: alpha_cycle_deadlock
Start 11: region
Start 12: sequence_no_track
5/40 Test #8: item_writing ................................***Skipped 0.02 sec
Start 13: sequence_timing_overflow
6/40 Test #1: clap_decode .................................***Failed 0.03 sec
Randomness seeded to: 4028776798
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
clap_decode is a Catch2 v3.7.1 host application.
Run with -? for options
-------------------------------------------------------------------------------
decode cropped image within default security limits
-------------------------------------------------------------------------------
/builddir/build/BUILD/libheif-1.23.3-build/libheif-1.23.3/tests/clap_decode.cc:42
...............................................................................
/builddir/build/BUILD/libheif-1.23.3-build/libheif-1.23.3/tests/clap_decode.cc:64: FAILED:
REQUIRE( err.code == heif_error_Ok )
with expansion:
11 == 0
with messages:
clap_cropped.heic
Error while loading plugin: No decoding plugin installed for this compression
format: HEVC (a suitable decoder plugin is libde265)
-------------------------------------------------------------------------------
decode image with coded frame much larger than ispe
-------------------------------------------------------------------------------
/builddir/build/BUILD/libheif-1.23.3-build/libheif-1.23.3/tests/clap_decode.cc:96
...............................................................................
/builddir/build/BUILD/libheif-1.23.3-build/libheif-1.23.3/tests/clap_decode.cc:108: FAILED:
REQUIRE( err.code == heif_error_Ok )
with expansion:
11 == 0
with message:
Error while loading plugin: No decoding plugin installed for this compression
format: HEVC (a suitable decoder plugin is libde265)
===============================================================================
test cases: 2 | 0 passed | 2 failed
assertions: 23 | 21 passed | 2 failed
Start 14: tai
7/40 Test #2: encode ......................................***Skipped 0.04 sec
Start 15: text
8/40 Test #9: overlay_amplification ....................... Passed 0.02 sec
9/40 Test #12: sequence_no_track ...........................***Skipped 0.02 sec
Start 16: cxx_wrapper
Start 17: component_descriptions
10/40 Test #16: cxx_wrapper ................................. Passed 0.00 sec
Start 18: ffmpeg_decode_bitdepth
11/40 Test #10: alpha_cycle_deadlock ........................ Passed 0.02 sec
12/40 Test #14: tai .........................................***Skipped 0.02 sec
Start 19: encode_htj2k
Start 20: encode_jpeg2000
13/40 Test #15: text ........................................ Passed 0.03 sec
Start 21: mini_decode
14/40 Test #13: sequence_timing_overflow .................... Passed 0.04 sec
Start 22: omaf
15/40 Test #21: mini_decode .................................***Skipped 0.02 sec
Start 23: uncompressed_decode
16/40 Test #18: ffmpeg_decode_bitdepth ...................... Passed 0.03 sec
Start 24: uncompressed_decode_mono
17/40 Test #17: component_descriptions ......................***Skipped 0.05 sec
Start 25: uncompressed_decode_rgb
18/40 Test #22: omaf ........................................***Skipped 0.03 sec
Start 26: uncompressed_decode_rgb16
19/40 Test #19: encode_htj2k ................................ Passed 0.06 sec
Start 27: uncompressed_decode_rgb565
20/40 Test #24: uncompressed_decode_mono .................... Passed 0.03 sec
Start 28: uncompressed_decode_rgb7
21/40 Test #26: uncompressed_decode_rgb16 ................... Passed 0.02 sec
Start 29: uncompressed_decode_ycbcr
22/40 Test #25: uncompressed_decode_rgb ..................... Passed 0.02 sec
Start 30: uncompressed_decode_ycbcr420
23/40 Test #27: uncompressed_decode_rgb565 .................. Passed 0.02 sec
Start 31: uncompressed_decode_ycbcr422
24/40 Test #29: uncompressed_decode_ycbcr ................... Passed 0.02 sec
Start 32: uncompressed_sequence_odd_chroma
25/40 Test #30: uncompressed_decode_ycbcr420 ................ Passed 0.02 sec
Start 33: uncompressed_mixed_chroma_depth_overflow
26/40 Test #28: uncompressed_decode_rgb7 .................... Passed 0.02 sec
Start 34: uncompressed_mixed_chroma_depth_colorconv
27/40 Test #31: uncompressed_decode_ycbcr422 ................ Passed 0.02 sec
Start 35: uncompressed_block_pixel_overpacked
28/40 Test #20: encode_jpeg2000 ............................. Passed 0.11 sec
Start 36: uncompressed_idat_tiled
29/40 Test #34: uncompressed_mixed_chroma_depth_colorconv ... Passed 0.02 sec
Start 37: uncompressed_encode
30/40 Test #33: uncompressed_mixed_chroma_depth_overflow .... Passed 0.03 sec
Start 38: uncompressed_decode_generic_compression
31/40 Test #32: uncompressed_sequence_odd_chroma ............ Passed 0.03 sec
Start 39: uncompressed_tile_range_overflow
32/40 Test #35: uncompressed_block_pixel_overpacked ......... Passed 0.02 sec
Start 40: tiffdecode
33/40 Test #23: uncompressed_decode ......................... Passed 0.09 sec
34/40 Test #40: tiffdecode .................................. Passed 0.01 sec
35/40 Test #36: uncompressed_idat_tiled ..................... Passed 0.02 sec
36/40 Test #39: uncompressed_tile_range_overflow ............ Passed 0.02 sec
37/40 Test #3: encode_grid .................................***Skipped 0.19 sec
38/40 Test #38: uncompressed_decode_generic_compression ..... Passed 0.03 sec
39/40 Test #11: region ...................................... Passed 0.21 sec
40/40 Test #37: uncompressed_encode ......................... Passed 0.47 sec
95% tests passed, 2 tests failed out of 40
Total Test time (real) = 0.64 sec
The following tests did not run:
2 - encode (Skipped)
3 - encode_grid (Skipped)
5 - extended_type (Skipped)
8 - item_writing (Skipped)
12 - sequence_no_track (Skipped)
14 - tai (Skipped)
17 - component_descriptions (Skipped)
21 - mini_decode (Skipped)
22 - omaf (Skipped)
The following tests FAILED:
1 - clap_decode (Failed)
6 - grid_tile_missing (Failed)
Errors while running CTest
Could I ask you to:
- use HEVC only when testing HEVC-specific features and prefer AVIF otherwise
- skip tests that require a codec that isn't available
Use case: in Fedora, we have to disable codecs which we cannot distribute, so HEVC, x264 and VVC are unavailable at this time.
Thanks in advance.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
tests: do not require a HEVC decoder in the clap and grid regression âĶ
farindk commentedon Sep 2, 2026
Thanks for the report. The above patch changes the tests to use AVIF instead of HEIC when possible and it skips the HEIC specific test when no codec is configured.
rathann commentedon Sep 2, 2026
That was fast! Thanks a lot. I think I have one more case where HEVC is required unconditionally, but I'll submit that one separately.