Bug#912756: diffoscope: Test failures with upcoming upstream file(1) version 5.35

Christoph Biedl debian.axhn at manchmal.in-ulm.de
Sat Nov 3 15:13:58 GMT 2018

Package: diffoscope
Version: 104
Severity: important

Dear Maintainer,

A new upstream release of file/libmagic has been accepted into
experimental a few moments ago, version 1:5.35-1. As your package is
one of those that somewhat suffered from surprising feature changes of
libmagic in the past, I'd like to give you an opportunity to test and
to prepare for any changes, for better or for worse. In case of the
latter, use the BTS as usual to report detections that could see an

Test-building diffoscope resulted in a regression, see log extract
below. I reckon this was introduced by an upstream change of pcap file
detection, e.g.

-diffoscope-104/tests/data/test2.pcap: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 262144)
+diffoscope-104/tests/data/test2.pcap: pcap capture file, microsecond ts (little-endian) - version 2.4 (Ethernet, capture length 262144)

My plan is to upload to unstable in a week from now. Let me know, if you
need more time.

Sorry for the hazzle,

    Christoph, bringer of the bad news

-- System Information:
Debian Release: buster/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.18.11 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: unable to detect

Versions of packages diffoscope depends on:
ii  libpython3.5-stdlib    3.5.6-1
ii  libpython3.6-stdlib    3.6.7-1
ii  python3                3.6.7-1
ii  python3-distro         1.3.0-1
ii  python3-distutils      3.7.1-1
ii  python3-libarchive-c   2.1-3.1
ii  python3-magic          2:0.4.15-2
ii  python3-pkg-resources  40.4.3-1

Versions of packages diffoscope recommends:
pn  abootimg                                       <none>
pn  acl                                            <none>
pn  apktool                                        <none>
pn  binutils-multiarch                             <none>
ii  bzip2                                          1.0.6-9
pn  caca-utils                                     <none>
pn  colord                                         <none>
pn  db-util                                        <none>
pn  default-jdk-headless | default-jdk | java-sdk  <none>
pn  device-tree-compiler                           <none>
pn  docx2txt                                       <none>
ii  e2fsprogs                                      1.44.4-2
pn  enjarify                                       <none>
pn  fontforge-extras                               <none>
pn  fp-utils                                       <none>
pn  genisoimage                                    <none>
ii  gettext                              
pn  ghc                                            <none>
pn  ghostscript                                    <none>
pn  giflib-tools                                   <none>
pn  gnumeric                                       <none>
ii  gnupg                                          2.2.10-3
pn  imagemagick                                    <none>
pn  jsbeautifier                                   <none>
pn  libarchive-tools                               <none>
pn  llvm                                           <none>
pn  lz4 | liblz4-tool                              <none>
pn  mono-utils                                     <none>
pn  ocaml-nox                                      <none>
pn  odt2txt                                        <none>
pn  oggvideotools                                  <none>
ii  openssh-client                                 1:7.9p1-1
pn  pgpdump                                        <none>
pn  poppler-utils                                  <none>
pn  procyon-decompiler                             <none>
pn  python3-argcomplete                            <none>
pn  python3-binwalk                                <none>
ii  python3-debian                                 0.1.33
pn  python3-defusedxml                             <none>
pn  python3-guestfs                                <none>
pn  python3-jsondiff                               <none>
pn  python3-progressbar                            <none>
pn  python3-pypdf2                                 <none>
pn  python3-pyxattr                                <none>
pn  python3-tlsh                                   <none>
pn  r-base-core                                    <none>
pn  rpm2cpio                                       <none>
pn  sng                                            <none>
pn  sqlite3                                        <none>
pn  squashfs-tools                                 <none>
ii  tcpdump                                        4.9.2-3
ii  unzip                                          6.0-21
ii  vim-common                                     2:8.1.0320-1
pn  xmlbeans                                       <none>
ii  xxd                                            2:8.1.0320-1
ii  xz-utils                                       5.2.2-1.3

Versions of packages diffoscope suggests:
ii  libjs-jquery  3.2.1-1

-- no debconf information

Build log:

tests/comparators/test_pcap.py::test_identification FAILED               [ 74%]
tests/comparators/test_pcap.py::test_no_differences PASSED               [ 74%]
tests/comparators/test_pcap.py::test_diff FAILED                         [ 74%]
tests/comparators/test_pcap.py::test_compare_non_existing FAILED         [ 74%]
=================================== FAILURES ===================================
_____________________________ test_identification ______________________________

pcap1 = <<class 'diffoscope.comparators.binary.FilesystemFile'> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7/build/tests/data/test1.pcap>

    def test_identification(pcap1):
>       assert isinstance(pcap1, PcapFile)
E       AssertionError: assert False
E        +  where False = isinstance(<<class 'diffoscope.comparators.binary.FilesystemFile'> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7/build/tests/data/test1.pcap>, PcapFile)

pcap1      = <<class 'diffoscope.comparators.binary.FilesystemFile'> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7/build/tests/data/test1.pcap>

tests/comparators/test_pcap.py:33: AssertionError
__________________________________ test_diff ___________________________________

differences = []

    def test_diff(differences):
        expected_diff = get_data('pcap_expected_diff')
>       assert differences[0].unified_diff == expected_diff
E       IndexError: list index out of range

differences = []
expected_diff = '@@ -1,299 +1,158 @@\n- 00:00:00.000000 IP > 0 PTR (QM)? _googlecast._tcp.local. (40...6c 2d6d 756c 7469 7363 7265  n:dial-multiscre\n \t0x0080:  656e 2d6f 7267 3a73 6572 7669 6365 3a64  en-org:service:d\n'

tests/comparators/test_pcap.py:49: IndexError
__________________________ test_compare_non_existing ___________________________

monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fea5ecd2198>
pcap1 = <<class 'diffoscope.comparators.binary.FilesystemFile'> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7/build/tests/data/test1.pcap>

    def test_compare_non_existing(monkeypatch, pcap1):
>       assert_non_existing(monkeypatch, pcap1, has_null_source=False)

monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fea5ecd2198>
pcap1      = <<class 'diffoscope.comparators.binary.FilesystemFile'> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7/build/tests/data/test1.pcap>

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fea5ecd2198>
fixture = <<class 'diffoscope.comparators.binary.FilesystemFile'> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7/build/tests/data/test1.pcap>
has_null_source = False, has_details = True

    def assert_non_existing(monkeypatch, fixture, has_null_source=True, has_details=True):
        monkeypatch.setattr(Config(), 'new_file', True)
        assert Config().new_file, "didnt get patched"
        difference = fixture.compare(MissingFile('/nonexisting', fixture))
        assert difference.source2 == '/nonexisting'
>       assert not has_details or len(difference.details) > 0
E       AssertionError

difference = <Difference /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7/build/tests/data/test1.pcap -- /nonexisting []>
fixture    = <<class 'diffoscope.comparators.binary.FilesystemFile'> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.7/build/tests/data/test1.pcap>
has_details = True
has_null_source = False
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fea5ecd2198>

tests/utils/nonexisting.py:32: AssertionError

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/reproducible-builds/attachments/20181103/975ffc56/attachment.sig>

More information about the Reproducible-builds mailing list