Skip to content

libimage-exiftool-perl >= 11.81-1: makes test fail

Forwarded: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=949252

Recent changes in libimage-exiftool-perl, starting with 11.81-1, makes one test fail. This was reported in the Debian BTS.

Changes in the dependency chain exposing the error for the first time:

∙ There were changes in the dependency chain since last test run:
--- last-run/dependencies.txt
+++ current-run/dependencies.txt
@@ -63,7 +63,7 @@
 libgtk-3-common 3.24.13-1
 libharfbuzz0b 2.6.4-1
 libicu63 63.2-2
-libimage-exiftool-perl 11.80-1
+libimage-exiftool-perl 11.81-1
 libjbig0 2.1-3.1+b2
 libjpeg62-turbo 1:1.5.2-2+b1
 libjson-glib-1.0-0 1.4.4-2

The actual error (at the bottom):

=================================== FAILURES ===================================
_______________________ TestCleaning.test_all_parametred _______________________

self = <tests.test_libmat2.TestCleaning testMethod=test_all_parametred>

    def test_all_parametred(self):
        for case in self.data:
            if 'ffmpeg' in case:
                try:
                    video._get_ffmpeg_path()
                except RuntimeError:
                    raise unittest.SkipTest
    
            print('[+] Testing %s' % case['name'])
            target = './tests/data/clean.' + case['name']
            shutil.copy('./tests/data/dirty.' + case['name'], target)
            p1 = case['parser'](target)
    
            meta = p1.get_meta()
            for k, v in case['meta'].items():
                if isinstance(v, dict):
                    for _k, _v in v.items():
                        self.assertEqual(meta[k][_k], _v)
                else:
                    self.assertEqual(meta[k], v)
    
            p1.lightweight_cleaning = True
            self.assertTrue(p1.remove_all())
    
            p2 = case['parser'](p1.output_filename)
>           self.assertEqual(p2.get_meta(), case['expected_meta'])
E           AssertionError: {'MajorBrand': 'MP4  Base Media v1 [IS0 144[457 chars]': 0} != {'CompatibleBrands': ['isom', 'iso2', 'avc1[432 chars]': 0}
E             {'CompatibleBrands': ['isom', 'iso2', 'avc1', 'mp41'],
E              'CompressorID': 'avc1',
E              'GraphicsMode': 'srcCopy',
E              'HandlerDescription': 'SoundHandler',
E              'HandlerType': 'Metadata',
E              'HandlerVendorID': 'Apple',
E              'MajorBrand': 'MP4  Base Media v1 [IS0 14496-12:2003]',
E           -  'MediaDataOffset': 48,
E           -  'MediaDataSize': 379872,
E              'MediaHeaderVersion': 0,
E              'MinorVersion': '0.2.0',
E           +  'MovieDataOffset': 48,
E              'MovieHeaderVersion': 0,
E              'NextTrackID': 3,
E              'PreferredRate': 1,
E              'Rotation': 0,
E              'TimeScale': 1000,
E              'TrackHeaderVersion': 0,
E              'TrackID': 1,
E              'TrackLayer': 0}

tests/test_libmat2.py:489: AssertionError

--

Related to this: this error wasn't exposed in our CI, due to a bug in the code which builds our containers: Currently, we're updating the APT sources, and run apt-get install ... afterwards. The later operation is a noop in case the package is already installed, which we're running into as we're leveraging a cache, to reduce build times. I'll fix this.

Edited by georg
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information