Test fails with ImageMagick 7.1.1-35
NixOS has migrated to ImageMagick 7.1.1-35 (both in nixos-unstable
and nixos-24.05
, presumably because ImageMagick 6 is plagued with a number of vulnerabilities, and with it comes a change in the cli interface of ImageMagick that breaks a test on diffoscope. Namely, the venerable convert
command is no more, replaced by magick convert
, apparently.
Tracking issue on nixpkgs: #328350.
Here is the breakage:
❯ nix build github:NixOS/nixpkgs/nixos-24.05#diffoscope
error: builder for '/nix/store/faz288wg8vwa1qvdjc8y88c4y53by9sr-diffoscope-267.drv' failed with exit code 1;
last 10 log lines:
> E + where [<Difference Image content -- Image content []>] = <Difference /build/diffoscope-267/tests/data/test1.jpg -- /build/diffoscope-267/tests/data/test2.jpg [<Difference Image content -- Image content []>]>.details
>
> tests/comparators/test_jpeg_image.py:87: AssertionError
> ----------------------------- Captured stderr call -----------------------------
> WARNING: The convert command is deprecated in IMv7, use "magick" instead of "convert" or "magick convert"
>
> =========================== short test summary info ============================
> FAILED tests/comparators/test_jpeg_image.py::test_has_visuals - assert 1 == 2
> = 1 failed, 680 passed, 37 skipped, 5 deselected, 1 xfailed, 1 xpassed in 47.67s =
> /nix/store/dd7nxjnni7nzm0846fq5xrm89ais5lwz-stdenv-linux/setup: line 1579: pop_var_context: head of shell_variables not a function context
For full logs, run 'nix log /nix/store/faz288wg8vwa1qvdjc8y88c4y53by9sr-diffoscope-267.drv'.
xenon in ~ took 2m16s
❯
And the full log:
Click to expand
Sourcing python-remove-tests-dir-hook Sourcing python-catch-conflicts-hook.sh Sourcing python-remove-bin-bytecode-hook.sh Sourcing setuptools-build-hook Using setuptoolsBuildPhase Sourcing pypa-install-hook Using pypaInstallPhase Sourcing python-imports-check-hook.sh Using pythonImportsCheckPhase Sourcing python-namespaces-hook Sourcing python-catch-conflicts-hook.sh Sourcing setuptools-check-hook Using setuptoolsCheckPhase Sourcing pytest-check-hook Using pytestCheckPhase Removing setuptoolsCheckPhase @nix { "action": "setPhase", "phase": "unpackPhase" } Running phase: unpackPhase unpacking source archive /nix/store/jhj9xc702c15ja09ry6pg8i1fcskfj0m-diffoscope-267.tar.bz2 source root is diffoscope-267 setting SOURCE_DATE_EPOCH to timestamp 1715931446 of file diffoscope-267/tests/utils/versions.py @nix { "action": "setPhase", "phase": "patchPhase" } Running phase: patchPhase applying patch /nix/store/k3rsi5di3hg85jkachv8fbkmdjvdkjix-ignore_links.patch patching file diffoscope/comparators/directory.py Hunk #1 (closed) succeeded at 59 (offset -18 lines). Hunk #2 succeeded at 69 (offset -18 lines). applying patch /nix/store/jr0q34yyvk240aadg1486d0nhm68v629-openssh-no-dsa.patch patching file tests/comparators/test_openssh_pub_key.py patching file tests/data/openssh_pub_key_expected_diff patching file tests/data/test_openssh_pub_key1.pub substituteStream() in derivation diffoscope-267: WARNING: '--replace' is deprecated, use --replace-{fail,warn,quiet}. (file 'doc/Makefile') @nix { "action": "setPhase", "phase": "updateAutotoolsGnuConfigScriptsPhase" } Running phase: updateAutotoolsGnuConfigScriptsPhase @nix { "action": "setPhase", "phase": "configurePhase" } Running phase: configurePhase no configure script, doing nothing @nix { "action": "setPhase", "phase": "buildPhase" } Running phase: buildPhase Executing setuptoolsBuildPhase running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/diffoscope copying diffoscope/__init__.py -> build/lib/diffoscope copying diffoscope/changes.py -> build/lib/diffoscope copying diffoscope/config.py -> build/lib/diffoscope copying diffoscope/diff.py -> build/lib/diffoscope copying diffoscope/difference.py -> build/lib/diffoscope copying diffoscope/environ.py -> build/lib/diffoscope copying diffoscope/exc.py -> build/lib/diffoscope copying diffoscope/excludes.py -> build/lib/diffoscope copying diffoscope/external_tools.py -> build/lib/diffoscope copying diffoscope/feeders.py -> build/lib/diffoscope copying diffoscope/logging.py -> build/lib/diffoscope copying diffoscope/main.py -> build/lib/diffoscope copying diffoscope/path.py -> build/lib/diffoscope copying diffoscope/profiling.py -> build/lib/diffoscope copying diffoscope/progress.py -> build/lib/diffoscope copying diffoscope/tempfiles.py -> build/lib/diffoscope copying diffoscope/tools.py -> build/lib/diffoscope copying diffoscope/utils.py -> build/lib/diffoscope creating build/lib/diffoscope/comparators copying diffoscope/comparators/__init__.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/android.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/apk.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/ar.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/arsc.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/berkeley_db.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/binary.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/binwalk.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/bzip2.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/cbfs.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/cpio.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/deb.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/debian.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/debian_fallback.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/decompile.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/device.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/dex.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/docx.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/dtb.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/elf.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/ffprobe.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/fit.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/fontconfig.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/fonts.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/fsimage.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/gettext.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/gif.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/git.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/gnumeric.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/gzip.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/haskell.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/hdf.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/html.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/icc.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/image.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/ipk.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/iso9660.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/java.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/javascript.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/json.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/kbx.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/llvm.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/lz4.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/lzip.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/macho.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/missing_file.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/mono.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/ocaml.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/odt.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/ogg.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/openssh.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/openssl.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/pcap.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/pdf.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/pe32.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/pgp.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/png.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/ppu.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/ps.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/python.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/rdata.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/rpm.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/rpm_fallback.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/rust.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/sevenz.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/socket_or_fifo.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/sphinx.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/sqlite.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/squashfs.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/symlink.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/tar.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/text.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/uimage.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/vmlinuz.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/wasm.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/xar.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/xml.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/xmlb.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/xsb.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/xz.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/zip.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/zst.py -> build/lib/diffoscope/comparators copying diffoscope/comparators/directory.py -> build/lib/diffoscope/comparators creating build/lib/diffoscope/presenters copying diffoscope/presenters/__init__.py -> build/lib/diffoscope/presenters copying diffoscope/presenters/formats.py -> build/lib/diffoscope/presenters copying diffoscope/presenters/icon.py -> build/lib/diffoscope/presenters copying diffoscope/presenters/json.py -> build/lib/diffoscope/presenters copying diffoscope/presenters/markdown.py -> build/lib/diffoscope/presenters copying diffoscope/presenters/restructuredtext.py -> build/lib/diffoscope/presenters copying diffoscope/presenters/text.py -> build/lib/diffoscope/presenters copying diffoscope/presenters/utils.py -> build/lib/diffoscope/presenters creating build/lib/diffoscope/readers copying diffoscope/readers/__init__.py -> build/lib/diffoscope/readers copying diffoscope/readers/json.py -> build/lib/diffoscope/readers copying diffoscope/readers/utils.py -> build/lib/diffoscope/readers creating build/lib/diffoscope/comparators/utils copying diffoscope/comparators/utils/__init__.py -> build/lib/diffoscope/comparators/utils copying diffoscope/comparators/utils/archive.py -> build/lib/diffoscope/comparators/utils copying diffoscope/comparators/utils/command.py -> build/lib/diffoscope/comparators/utils copying diffoscope/comparators/utils/compare.py -> build/lib/diffoscope/comparators/utils copying diffoscope/comparators/utils/container.py -> build/lib/diffoscope/comparators/utils copying diffoscope/comparators/utils/file.py -> build/lib/diffoscope/comparators/utils copying diffoscope/comparators/utils/fuzzy.py -> build/lib/diffoscope/comparators/utils copying diffoscope/comparators/utils/libarchive.py -> build/lib/diffoscope/comparators/utils copying diffoscope/comparators/utils/operation.py -> build/lib/diffoscope/comparators/utils copying diffoscope/comparators/utils/specialize.py -> build/lib/diffoscope/comparators/utils creating build/lib/diffoscope/presenters/html copying diffoscope/presenters/html/__init__.py -> build/lib/diffoscope/presenters/html copying diffoscope/presenters/html/html.py -> build/lib/diffoscope/presenters/html copying diffoscope/presenters/html/templates.py -> build/lib/diffoscope/presenters/html creating build/lib/diffoscope/scripts copying diffoscope/scripts/extract-vmlinux -> build/lib/diffoscope/scripts /nix/store/29cxr91478z6ivzv7rkanh0an7s6b0zh-python3.11-setuptools-69.5.1/lib/python3.11/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ********************************************************************************
Please avoid running ``setup.py`` directly.
Instead, use pypa/build, pypa/installer or other
standards-based tools.
See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
********************************************************************************
!!
self.initialize_options()
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/wheel
creating build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/init.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/changes.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/config.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/diff.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/difference.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/environ.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/exc.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/excludes.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/external_tools.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/feeders.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/logging.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/main.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/path.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/profiling.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/progress.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/tempfiles.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/tools.py -> build/bdist.linux-x86_64/wheel/diffoscope
copying build/lib/diffoscope/utils.py -> build/bdist.linux-x86_64/wheel/diffoscope
creating build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/init.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/android.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/apk.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/ar.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/arsc.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/berkeley_db.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/binary.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/binwalk.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/bzip2.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/cbfs.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/cpio.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/deb.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/debian.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/debian_fallback.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/decompile.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/device.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/dex.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/docx.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/dtb.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/elf.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/ffprobe.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/fit.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/fontconfig.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/fonts.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/fsimage.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/gettext.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/gif.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/git.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/gnumeric.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/gzip.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/haskell.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/hdf.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/html.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/icc.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/image.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/ipk.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/iso9660.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/java.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/javascript.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/json.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/kbx.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/llvm.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/lz4.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/lzip.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/macho.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/missing_file.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/mono.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/ocaml.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/odt.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/ogg.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/openssh.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/openssl.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/pcap.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/pdf.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/pe32.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/pgp.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/png.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/ppu.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/ps.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/python.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/rdata.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/rpm.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/rpm_fallback.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/rust.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/sevenz.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/socket_or_fifo.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/sphinx.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/sqlite.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/squashfs.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/symlink.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/tar.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/text.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/uimage.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/vmlinuz.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/wasm.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/xar.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/xml.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/xmlb.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/xsb.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/xz.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/zip.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/zst.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
copying build/lib/diffoscope/comparators/directory.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators
creating build/bdist.linux-x86_64/wheel/diffoscope/comparators/utils
copying build/lib/diffoscope/comparators/utils/init.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators/utils
copying build/lib/diffoscope/comparators/utils/archive.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators/utils
copying build/lib/diffoscope/comparators/utils/command.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators/utils
copying build/lib/diffoscope/comparators/utils/compare.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators/utils
copying build/lib/diffoscope/comparators/utils/container.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators/utils
copying build/lib/diffoscope/comparators/utils/file.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators/utils
copying build/lib/diffoscope/comparators/utils/fuzzy.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators/utils
copying build/lib/diffoscope/comparators/utils/libarchive.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators/utils
copying build/lib/diffoscope/comparators/utils/operation.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators/utils
copying build/lib/diffoscope/comparators/utils/specialize.py -> build/bdist.linux-x86_64/wheel/diffoscope/comparators/utils
creating build/bdist.linux-x86_64/wheel/diffoscope/presenters
copying build/lib/diffoscope/presenters/init.py -> build/bdist.linux-x86_64/wheel/diffoscope/presenters
copying build/lib/diffoscope/presenters/formats.py -> build/bdist.linux-x86_64/wheel/diffoscope/presenters
copying build/lib/diffoscope/presenters/icon.py -> build/bdist.linux-x86_64/wheel/diffoscope/presenters
copying build/lib/diffoscope/presenters/json.py -> build/bdist.linux-x86_64/wheel/diffoscope/presenters
copying build/lib/diffoscope/presenters/markdown.py -> build/bdist.linux-x86_64/wheel/diffoscope/presenters
copying build/lib/diffoscope/presenters/restructuredtext.py -> build/bdist.linux-x86_64/wheel/diffoscope/presenters
copying build/lib/diffoscope/presenters/text.py -> build/bdist.linux-x86_64/wheel/diffoscope/presenters
copying build/lib/diffoscope/presenters/utils.py -> build/bdist.linux-x86_64/wheel/diffoscope/presenters
creating build/bdist.linux-x86_64/wheel/diffoscope/presenters/html
copying build/lib/diffoscope/presenters/html/init.py -> build/bdist.linux-x86_64/wheel/diffoscope/presenters/html
copying build/lib/diffoscope/presenters/html/html.py -> build/bdist.linux-x86_64/wheel/diffoscope/presenters/html
copying build/lib/diffoscope/presenters/html/templates.py -> build/bdist.linux-x86_64/wheel/diffoscope/presenters/html
creating build/bdist.linux-x86_64/wheel/diffoscope/readers
copying build/lib/diffoscope/readers/init.py -> build/bdist.linux-x86_64/wheel/diffoscope/readers
copying build/lib/diffoscope/readers/json.py -> build/bdist.linux-x86_64/wheel/diffoscope/readers
copying build/lib/diffoscope/readers/utils.py -> build/bdist.linux-x86_64/wheel/diffoscope/readers
creating build/bdist.linux-x86_64/wheel/diffoscope/scripts
copying build/lib/diffoscope/scripts/extract-vmlinux -> build/bdist.linux-x86_64/wheel/diffoscope/scripts
running install_egg_info
running egg_info
creating diffoscope.egg-info
writing diffoscope.egg-info/PKG-INFO
writing dependency_links to diffoscope.egg-info/dependency_links.txt
writing entry points to diffoscope.egg-info/entry_points.txt
writing requirements to diffoscope.egg-info/requires.txt
writing top-level names to diffoscope.egg-info/top_level.txt
writing manifest file 'diffoscope.egg-info/SOURCES.txt'
reading manifest file 'diffoscope.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'COPYING'
writing manifest file 'diffoscope.egg-info/SOURCES.txt'
Copying diffoscope.egg-info to build/bdist.linux-x86_64/wheel/diffoscope-267-py3.11.egg-info
running install_scripts
creating build/bdist.linux-x86_64/wheel/diffoscope-267.dist-info/WHEEL
creating 'dist/diffoscope-267-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
adding 'diffoscope/init.py'
adding 'diffoscope/changes.py'
adding 'diffoscope/config.py'
adding 'diffoscope/diff.py'
adding 'diffoscope/difference.py'
adding 'diffoscope/environ.py'
adding 'diffoscope/exc.py'
adding 'diffoscope/excludes.py'
adding 'diffoscope/external_tools.py'
adding 'diffoscope/feeders.py'
adding 'diffoscope/logging.py'
adding 'diffoscope/main.py'
adding 'diffoscope/path.py'
adding 'diffoscope/profiling.py'
adding 'diffoscope/progress.py'
adding 'diffoscope/tempfiles.py'
adding 'diffoscope/tools.py'
adding 'diffoscope/utils.py'
adding 'diffoscope/comparators/init.py'
adding 'diffoscope/comparators/android.py'
adding 'diffoscope/comparators/apk.py'
adding 'diffoscope/comparators/ar.py'
adding 'diffoscope/comparators/arsc.py'
adding 'diffoscope/comparators/berkeley_db.py'
adding 'diffoscope/comparators/binary.py'
adding 'diffoscope/comparators/binwalk.py'
adding 'diffoscope/comparators/bzip2.py'
adding 'diffoscope/comparators/cbfs.py'
adding 'diffoscope/comparators/cpio.py'
adding 'diffoscope/comparators/deb.py'
adding 'diffoscope/comparators/debian.py'
adding 'diffoscope/comparators/debian_fallback.py'
adding 'diffoscope/comparators/decompile.py'
adding 'diffoscope/comparators/device.py'
adding 'diffoscope/comparators/dex.py'
adding 'diffoscope/comparators/directory.py'
adding 'diffoscope/comparators/docx.py'
adding 'diffoscope/comparators/dtb.py'
adding 'diffoscope/comparators/elf.py'
adding 'diffoscope/comparators/ffprobe.py'
adding 'diffoscope/comparators/fit.py'
adding 'diffoscope/comparators/fontconfig.py'
adding 'diffoscope/comparators/fonts.py'
adding 'diffoscope/comparators/fsimage.py'
adding 'diffoscope/comparators/gettext.py'
adding 'diffoscope/comparators/gif.py'
adding 'diffoscope/comparators/git.py'
adding 'diffoscope/comparators/gnumeric.py'
adding 'diffoscope/comparators/gzip.py'
adding 'diffoscope/comparators/haskell.py'
adding 'diffoscope/comparators/hdf.py'
adding 'diffoscope/comparators/html.py'
adding 'diffoscope/comparators/icc.py'
adding 'diffoscope/comparators/image.py'
adding 'diffoscope/comparators/ipk.py'
adding 'diffoscope/comparators/iso9660.py'
adding 'diffoscope/comparators/java.py'
adding 'diffoscope/comparators/javascript.py'
adding 'diffoscope/comparators/json.py'
adding 'diffoscope/comparators/kbx.py'
adding 'diffoscope/comparators/llvm.py'
adding 'diffoscope/comparators/lz4.py'
adding 'diffoscope/comparators/lzip.py'
adding 'diffoscope/comparators/macho.py'
adding 'diffoscope/comparators/missing_file.py'
adding 'diffoscope/comparators/mono.py'
adding 'diffoscope/comparators/ocaml.py'
adding 'diffoscope/comparators/odt.py'
adding 'diffoscope/comparators/ogg.py'
adding 'diffoscope/comparators/openssh.py'
adding 'diffoscope/comparators/openssl.py'
adding 'diffoscope/comparators/pcap.py'
adding 'diffoscope/comparators/pdf.py'
adding 'diffoscope/comparators/pe32.py'
adding 'diffoscope/comparators/pgp.py'
adding 'diffoscope/comparators/png.py'
adding 'diffoscope/comparators/ppu.py'
adding 'diffoscope/comparators/ps.py'
adding 'diffoscope/comparators/python.py'
adding 'diffoscope/comparators/rdata.py'
adding 'diffoscope/comparators/rpm.py'
adding 'diffoscope/comparators/rpm_fallback.py'
adding 'diffoscope/comparators/rust.py'
adding 'diffoscope/comparators/sevenz.py'
adding 'diffoscope/comparators/socket_or_fifo.py'
adding 'diffoscope/comparators/sphinx.py'
adding 'diffoscope/comparators/sqlite.py'
adding 'diffoscope/comparators/squashfs.py'
adding 'diffoscope/comparators/symlink.py'
adding 'diffoscope/comparators/tar.py'
adding 'diffoscope/comparators/text.py'
adding 'diffoscope/comparators/uimage.py'
adding 'diffoscope/comparators/vmlinuz.py'
adding 'diffoscope/comparators/wasm.py'
adding 'diffoscope/comparators/xar.py'
adding 'diffoscope/comparators/xml.py'
adding 'diffoscope/comparators/xmlb.py'
adding 'diffoscope/comparators/xsb.py'
adding 'diffoscope/comparators/xz.py'
adding 'diffoscope/comparators/zip.py'
adding 'diffoscope/comparators/zst.py'
adding 'diffoscope/comparators/utils/init.py'
adding 'diffoscope/comparators/utils/archive.py'
adding 'diffoscope/comparators/utils/command.py'
adding 'diffoscope/comparators/utils/compare.py'
adding 'diffoscope/comparators/utils/container.py'
adding 'diffoscope/comparators/utils/file.py'
adding 'diffoscope/comparators/utils/fuzzy.py'
adding 'diffoscope/comparators/utils/libarchive.py'
adding 'diffoscope/comparators/utils/operation.py'
adding 'diffoscope/comparators/utils/specialize.py'
adding 'diffoscope/presenters/init.py'
adding 'diffoscope/presenters/formats.py'
adding 'diffoscope/presenters/icon.py'
adding 'diffoscope/presenters/json.py'
adding 'diffoscope/presenters/markdown.py'
adding 'diffoscope/presenters/restructuredtext.py'
adding 'diffoscope/presenters/text.py'
adding 'diffoscope/presenters/utils.py'
adding 'diffoscope/presenters/html/init.py'
adding 'diffoscope/presenters/html/html.py'
adding 'diffoscope/presenters/html/templates.py'
adding 'diffoscope/readers/init.py'
adding 'diffoscope/readers/json.py'
adding 'diffoscope/readers/utils.py'
adding 'diffoscope/scripts/extract-vmlinux'
adding 'diffoscope-267.dist-info/COPYING'
adding 'diffoscope-267.dist-info/METADATA'
adding 'diffoscope-267.dist-info/WHEEL'
adding 'diffoscope-267.dist-info/entry_points.txt'
adding 'diffoscope-267.dist-info/top_level.txt'
adding 'diffoscope-267.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
Finished executing setuptoolsBuildPhase
@nix { "action": "setPhase", "phase": "glibPreInstallPhase" }
Running phase: glibPreInstallPhase
@nix { "action": "setPhase", "phase": "glibPreInstallPhase" }
Running phase: glibPreInstallPhase
@nix { "action": "setPhase", "phase": "installPhase" }
Running phase: installPhase
Executing pypaInstallPhase
Successfully installed diffoscope-267-py3-none-any.whl
make: Entering directory '/build/diffoscope-267/doc'
{ cat diffoscope.h2m.0; cat ../README.rst |
sed -e '/^.. raw:: /d' -e '/^.. image:: /d' -e '/ :target: /d' | tee out.txt |
rst2man -q --no-doc-title |
sed -e 's,^ \- ,,' -e 's,^[,\[char91],g' -e 's,.TH "" "" "",,g'
-e 's,bin/diffoscope,diffoscope,g'
-e 's,.SH (.),[\1],g' -e 's,[diffoscope],[DESCRIPTION],gi'; } > "diffoscope.h2m"
help2man --version-string=$(cd .. && python3 setup.py -V) /nix/store/9xx23qw6mm1lwvqmxvsazcmnpjr1mh51-diffoscope-267/bin/diffoscope -N --include="diffoscope.h2m" |
sed -e '/end_of_description_header/,/positional arguments/{d}' > "diffoscope.1"
make: Leaving directory '/build/diffoscope-267/doc'
Finished executing pypaInstallPhase
@nix { "action": "setPhase", "phase": "pythonOutputDistPhase" }
Running phase: pythonOutputDistPhase
Executing pythonOutputDistPhase
Finished executing pythonOutputDistPhase
@nix { "action": "setPhase", "phase": "glibPreFixupPhase" }
Running phase: glibPreFixupPhase
@nix { "action": "setPhase", "phase": "glibPreFixupPhase" }
Running phase: glibPreFixupPhase
@nix { "action": "setPhase", "phase": "fixupPhase" }
Running phase: fixupPhase
shrinking RPATHs of ELF executables and libraries in /nix/store/9xx23qw6mm1lwvqmxvsazcmnpjr1mh51-diffoscope-267
checking for references to /build/ in /nix/store/9xx23qw6mm1lwvqmxvsazcmnpjr1mh51-diffoscope-267...
patching script interpreter paths in /nix/store/9xx23qw6mm1lwvqmxvsazcmnpjr1mh51-diffoscope-267
stripping (with command strip and flags -S -p) in /nix/store/9xx23qw6mm1lwvqmxvsazcmnpjr1mh51-diffoscope-267/lib /nix/store/9xx23qw6mm1lwvqmxvsazcmnpjr1mh51-diffoscope-267/bin
shrinking RPATHs of ELF executables and libraries in /nix/store/964pdn1fpn28br6ysd0xn2fb0arkj02v-diffoscope-267-man
checking for references to /build/ in /nix/store/964pdn1fpn28br6ysd0xn2fb0arkj02v-diffoscope-267-man...
gzipping man pages under /nix/store/964pdn1fpn28br6ysd0xn2fb0arkj02v-diffoscope-267-man/share/man/
patching script interpreter paths in /nix/store/964pdn1fpn28br6ysd0xn2fb0arkj02v-diffoscope-267-man
shrinking RPATHs of ELF executables and libraries in /nix/store/vn1vffc1xmk84xcxdx4dks811jpvs4kg-diffoscope-267-dist
checking for references to /build/ in /nix/store/vn1vffc1xmk84xcxdx4dks811jpvs4kg-diffoscope-267-dist...
patching script interpreter paths in /nix/store/vn1vffc1xmk84xcxdx4dks811jpvs4kg-diffoscope-267-dist
Rewriting #!/nix/store/pfv4raslwhi3101k342752v65zxkwrxq-python3-3.11.9/bin/python3.11 to #!/nix/store/pfv4raslwhi3101k342752v65zxkwrxq-python3-3.11.9
wrapping `/nix/store/9xx23qw6mm1lwvqmxvsazcmnpjr1mh51-diffoscope-267/bin/diffoscope'...
Executing pythonRemoveTestsDir
Finished executing pythonRemoveTestsDir
@nix { "action": "setPhase", "phase": "installCheckPhase" }
Running phase: installCheckPhase
no Makefile or custom installCheckPhase, doing nothing
@nix { "action": "setPhase", "phase": "pythonCatchConflictsPhase" }
Running phase: pythonCatchConflictsPhase
@nix { "action": "setPhase", "phase": "pythonRemoveBinBytecodePhase" }
Running phase: pythonRemoveBinBytecodePhase
@nix { "action": "setPhase", "phase": "pythonImportsCheckPhase" }
Running phase: pythonImportsCheckPhase
Executing pythonImportsCheckPhase
@nix { "action": "setPhase", "phase": "pytestCheckPhase" }
Running phase: pytestCheckPhase
Executing pytestCheckPhase
============================= test session starts ==============================
platform linux -- Python 3.11.9, pytest-8.1.1, pluggy-1.4.0 -- /nix/store/pfv4raslwhi3101k342752v65zxkwrxq-python3-3.11.9/bin/python3.11
cachedir: .pytest_cache
rootdir: /build/diffoscope-267
configfile: pytest.ini
collecting ...
collecting 109 items
collecting 339 items
collected 725 items / 5 deselected / 720 selected
tests/comparators/test_android.py::test_identification PASSED [ 0%]
tests/comparators/test_android.py::test_no_differences PASSED [ 0%]
tests/comparators/test_android.py::test_diff PASSED [ 0%]
tests/comparators/test_android.py::test_compare_non_existing PASSED [ 0%]
tests/comparators/test_apk.py::test_identification PASSED [ 0%]
tests/comparators/test_apk.py::test_no_differences PASSED [ 0%]
tests/comparators/test_apk.py::test_compare_non_existing PASSED [ 0%]
tests/comparators/test_apk.py::test_zipinfo PASSED [ 1%]
tests/comparators/test_apk.py::test_android_manifest XFAIL [ 1%]
tests/comparators/test_apk.py::test_apk_metadata_source PASSED [ 1%]
tests/comparators/test_apk.py::test_skip_undecoded_android_manifest PASSED [ 1%]
tests/comparators/test_apk.py::test_no_android_manifest PASSED [ 1%]
tests/comparators/test_archive.py::test_compressed_content_name PASSED [ 1%]
tests/comparators/test_arsc.py::test_identification PASSED [ 1%]
tests/comparators/test_arsc.py::test_no_differences PASSED [ 2%]
tests/comparators/test_arsc.py::test_differences SKIPPED (requires
aapt2) [ 2%]
tests/comparators/test_arsc.py::test_compare_non_existing SKIPPED [ 2%]
tests/comparators/test_berkeley_db.py::test_identification PASSED [ 2%]
tests/comparators/test_berkeley_db.py::test_no_differences PASSED [ 2%]
tests/comparators/test_berkeley_db.py::test_diff PASSED [ 2%]
tests/comparators/test_berkeley_db.py::test_diff6 SKIPPED (requires
db_dump >= 6.0; 5.3.28 detected) [ 2%]
tests/comparators/test_berkeley_db.py::test_compare_non_existing PASSED [ 3%]
tests/comparators/test_binary.py::test_same_content PASSED [ 3%]
tests/comparators/test_binary.py::test_not_same_content PASSED [ 3%]
tests/comparators/test_binary.py::test_guess_file_type PASSED [ 3%]
tests/comparators/test_binary.py::test_guess_encoding_binary PASSED [ 3%]
tests/comparators/test_binary.py::test_guess_encoding_ascii PASSED [ 3%]
tests/comparators/test_binary.py::test_guess_encoding_unicode PASSED [ 3%]
tests/comparators/test_binary.py::test_guess_encoding_iso8859 PASSED [ 4%]
tests/comparators/test_binary.py::test_no_differences_with_xxd PASSED [ 4%]
tests/comparators/test_binary.py::test_compare_with_xxd PASSED [ 4%]
tests/comparators/test_binary.py::test_compare_non_existing_with_xxd PASSED [ 4%]
tests/comparators/test_binary.py::test_no_differences_without_xxd PASSED [ 4%]
tests/comparators/test_binary.py::test_compare_without_xxd PASSED [ 4%]
tests/comparators/test_binary.py::test_with_compare_details PASSED [ 4%]
tests/comparators/test_binary.py::test_with_compare_details_and_fallback PASSED [ 5%]
tests/comparators/test_binary.py::test_with_compare_details_and_no_actual_differences PASSED [ 5%]
tests/comparators/test_binary.py::test_with_compare_details_and_failed_process PASSED [ 5%]
tests/comparators/test_binary.py::test_with_compare_details_and_parsing_error PASSED [ 5%]
tests/comparators/test_binary.py::test_with_compare_details_and_extraction_error PASSED [ 5%]
tests/comparators/test_binary.py::test_with_compare_details_and_tool_not_found SKIPPED [ 5%]
tests/comparators/test_binary.py::test_compare_two_nonexisting_files PASSED [ 5%]
tests/comparators/test_binary.py::test_symlink_to_dir PASSED [ 5%]
tests/comparators/test_binwalk.py::test_identification PASSED [ 6%]
tests/comparators/test_binwalk.py::test_no_differences PASSED [ 6%]
tests/comparators/test_binwalk.py::test_listing PASSED [ 6%]
tests/comparators/test_binwalk.py::test_symlink PASSED [ 6%]
tests/comparators/test_binwalk.py::test_compare_non_existing PASSED [ 6%]
tests/comparators/test_bzip2.py::test_identification PASSED [ 6%]
tests/comparators/test_bzip2.py::test_no_differences PASSED [ 6%]
tests/comparators/test_bzip2.py::test_content_source PASSED [ 7%]
tests/comparators/test_bzip2.py::test_content_source_without_extension PASSED [ 7%]
tests/comparators/test_bzip2.py::test_content_diff PASSED [ 7%]
tests/comparators/test_bzip2.py::test_compare_non_existing PASSED [ 7%]
tests/comparators/test_cbfs.py::test_identification_using_offset PASSED [ 7%]
tests/comparators/test_cbfs.py::test_identification_without_offset PASSED [ 7%]
tests/comparators/test_cbfs.py::test_no_differences PASSED [ 7%]
tests/comparators/test_cbfs.py::test_listing PASSED [ 8%]
tests/comparators/test_cbfs.py::test_content PASSED [ 8%]
tests/comparators/test_cbfs.py::test_compare_non_existing PASSED [ 8%]
tests/comparators/test_containers.py::test_equal PASSED [ 8%]
tests/comparators/test_containers.py::test_different PASSED [ 8%]
tests/comparators/test_cpio.py::test_identification PASSED [ 8%]
tests/comparators/test_cpio.py::test_no_differences PASSED [ 8%]
tests/comparators/test_cpio.py::test_listing PASSED [ 9%]
tests/comparators/test_cpio.py::test_symlink PASSED [ 9%]
tests/comparators/test_cpio.py::test_compressed_files PASSED [ 9%]
tests/comparators/test_cpio.py::test_compare_non_existing PASSED [ 9%]
tests/comparators/test_deb.py::test_identification PASSED [ 9%]
tests/comparators/test_deb.py::test_no_differences PASSED [ 9%]
tests/comparators/test_deb.py::test_metadata PASSED [ 9%]
tests/comparators/test_deb.py::test_compressed_files PASSED [ 10%]
tests/comparators/test_deb.py::test_identification_of_md5sums_outside_deb PASSED [ 10%]
tests/comparators/test_deb.py::test_identification_of_md5sums_in_deb PASSED [ 10%]
tests/comparators/test_deb.py::test_md5sums PASSED [ 10%]
tests/comparators/test_deb.py::test_identical_files_in_md5sums PASSED [ 10%]
tests/comparators/test_deb.py::test_identification_of_data_tar PASSED [ 10%]
tests/comparators/test_deb.py::test_skip_comparison_of_known_identical_files PASSED [ 10%]
tests/comparators/test_deb.py::test_compare_non_existing PASSED [ 10%]
tests/comparators/test_deb.py::test_compare_different_compression PASSED [ 11%]
tests/comparators/test_deb.py::test_uncompressed_data_tar PASSED [ 11%]
tests/comparators/test_deb.py::test_uncompressed_control_tar PASSED [ 11%]
tests/comparators/test_deb.py::test_compare_different_compression_multiple_files PASSED [ 11%]
tests/comparators/test_debian.py::test_dot_changes_identification PASSED [ 11%]
tests/comparators/test_debian.py::test_dot_changes_invalid PASSED [ 11%]
tests/comparators/test_debian.py::test_dot_changes_no_differences PASSED [ 11%]
tests/comparators/test_debian.py::test_dot_changes_no_differences_exclude_buildinfo PASSED [ 12%]
tests/comparators/test_debian.py::test_dot_changes_identical_contents_and_different_files PASSED [ 12%]
tests/comparators/test_debian.py::test_dot_changes_different_contents_and_identical_files PASSED [ 12%]
tests/comparators/test_debian.py::test_dot_dsc_identification PASSED [ 12%]
tests/comparators/test_debian.py::test_dot_dsc_no_associated_tar_gz PASSED [ 12%]
tests/comparators/test_debian.py::test_dot_dsc_no_differences PASSED [ 12%]
tests/comparators/test_debian.py::test_dot_dsc_internal_diff PASSED [ 12%]
tests/comparators/test_debian.py::test_dot_dsc_compare_non_existing PASSED [ 13%]
tests/comparators/test_debian.py::test_dot_buildinfo_identification PASSED [ 13%]
tests/comparators/test_debian.py::test_dot_buildinfo_no_deb PASSED [ 13%]
tests/comparators/test_debian.py::test_dot_buildinfo_no_differences PASSED [ 13%]
tests/comparators/test_debian.py::test_dot_buildinfo_internal_diff PASSED [ 13%]
tests/comparators/test_debian.py::test_dot_buildinfo_compare_non_existing PASSED [ 13%]
tests/comparators/test_debian.py::test_fallback_comparisons PASSED [ 13%]
tests/comparators/test_debian.py::test_unicode_identification PASSED [ 14%]
tests/comparators/test_device.py::test_identification PASSED [ 14%]
tests/comparators/test_device.py::test_diff PASSED [ 14%]
tests/comparators/test_device.py::test_diff_reverse PASSED [ 14%]
tests/comparators/test_dex.py::test_identification PASSED [ 14%]
tests/comparators/test_dex.py::test_no_differences PASSED [ 14%]
tests/comparators/test_dex.py::test_differences SKIPPED (requires javap
min 9.0.4 >= 14.0; 1.8.0_362 detected) [ 14%]
tests/comparators/test_dex.py::test_javap_14_differences SKIPPED [ 15%]
tests/comparators/test_dex.py::test_compare_non_existing XPASS [ 15%]
tests/comparators/test_directory.py::test_no_differences PASSED [ 15%]
tests/comparators/test_directory.py::test_no_differences_with_extra_slash PASSED [ 15%]
tests/comparators/test_directory.py::test_content PASSED [ 15%]
tests/comparators/test_directory.py::test_stat PASSED [ 15%]
tests/comparators/test_directory.py::test_compare_to_file PASSED [ 15%]
tests/comparators/test_directory.py::test_compare_to_device PASSED [ 15%]
tests/comparators/test_directory.py::test_compare_to_symlink PASSED [ 16%]
tests/comparators/test_directory.py::test_compare_to_dangling_symlink PASSED [ 16%]
tests/comparators/test_directory.py::test_compare_both_ways PASSED [ 16%]
tests/comparators/test_docx.py::test_identification PASSED [ 16%]
tests/comparators/test_docx.py::test_no_differences PASSED [ 16%]
tests/comparators/test_docx.py::test_diff SKIPPED (requires docx2txt) [ 16%]
tests/comparators/test_docx.py::test_compare_non_existing SKIPPED [ 16%]
tests/comparators/test_dtb.py::test_identification PASSED [ 17%]
tests/comparators/test_dtb.py::test_no_differences PASSED [ 17%]
tests/comparators/test_dtb.py::test_diff PASSED [ 17%]
tests/comparators/test_dtb.py::test_compare_non_existing PASSED [ 17%]
tests/comparators/test_elf.py::test_obj_identification PASSED [ 17%]
tests/comparators/test_elf.py::test_obj_no_differences PASSED [ 17%]
tests/comparators/test_elf.py::test_obj_compare_non_existing PASSED [ 17%]
tests/comparators/test_elf.py::test_diff PASSED [ 18%]
tests/comparators/test_elf.py::test_lib_identification PASSED [ 18%]
tests/comparators/test_elf.py::test_lib_no_differences PASSED [ 18%]
tests/comparators/test_elf.py::test_lib_differences PASSED [ 18%]
tests/comparators/test_elf.py::test_lib_compare_non_existing PASSED [ 18%]
tests/comparators/test_elf.py::test_libmix_differences PASSED [ 18%]
tests/comparators/test_elf.py::test_differences_with_dbgsym PASSED [ 18%]
tests/comparators/test_elf.py::test_original_gnu_debuglink PASSED [ 19%]
tests/comparators/test_elf.py::test_ignore_readelf_errors1_identify PASSED [ 19%]
tests/comparators/test_elf.py::test_ignore_readelf_errors2_identify PASSED [ 19%]
tests/comparators/test_elf.py::test_ignore_readelf_errors PASSED [ 19%]
tests/comparators/test_elf_decompiler.py::test_obj_compare_non_existing SKIPPED [ 19%]
tests/comparators/test_elf_decompiler.py::test_ghidra_diff SKIPPED [ 19%]
tests/comparators/test_elf_decompiler.py::test_radare2_diff SKIPPED [ 19%]
tests/comparators/test_epub.py::test_identification PASSED [ 20%]
tests/comparators/test_epub.py::test_no_differences PASSED [ 20%]
tests/comparators/test_epub.py::test_differences SKIPPED (requires
zipdetails) [ 20%]
tests/comparators/test_epub.py::test_compare_non_existing PASSED [ 20%]
tests/comparators/test_ffprobe.py::test_identification PASSED [ 20%]
tests/comparators/test_ffprobe.py::test_no_differences PASSED [ 20%]
tests/comparators/test_ffprobe.py::test_diff PASSED [ 20%]
tests/comparators/test_ffprobe.py::test_compare_non_existing PASSED [ 20%]
tests/comparators/test_fit.py::test_identification PASSED [ 21%]
tests/comparators/test_fit.py::test_no_differences PASSED [ 21%]
tests/comparators/test_fit.py::test_file_differences PASSED [ 21%]
tests/comparators/test_fit.py::test_nested_listing PASSED [ 21%]
tests/comparators/test_fit.py::test_nested_symlink PASSED [ 21%]
tests/comparators/test_fit.py::test_nested_compressed_files PASSED [ 21%]
tests/comparators/test_fit.py::test_compare_non_existing PASSED [ 21%]
tests/comparators/test_fontconfig.py::test_identification PASSED [ 22%]
tests/comparators/test_fontconfig.py::test_no_differences PASSED [ 22%]
tests/comparators/test_fontconfig.py::test_diff PASSED [ 22%]
tests/comparators/test_fonts.py::test_identification PASSED [ 22%]
tests/comparators/test_fonts.py::test_no_differences PASSED [ 22%]
tests/comparators/test_fonts.py::test_diff PASSED [ 22%]
tests/comparators/test_fonts.py::test_compare_non_existing PASSED [ 22%]
tests/comparators/test_fsimage.py::test_identification PASSED [ 23%]
tests/comparators/test_fsimage.py::test_identification_fat12 PASSED [ 23%]
tests/comparators/test_fsimage.py::test_identification_fat16 PASSED [ 23%]
tests/comparators/test_fsimage.py::test_identification_fat32 PASSED [ 23%]
tests/comparators/test_fsimage.py::test_no_differences SKIPPED (guestfs
not working on the system: RuntimeError('cannot find any suitable
libguestfs supermin, fixed or old-style appliance on LIBGUESTFS_PATH
(search path: /nix/store/q4vxkp3fqajg23cqfwmd9gh13fvily9i-libguestfs-
1.50.1/lib/guestfs)')) [ 23%]
tests/comparators/test_fsimage.py::test_differences SKIPPED (guestfs not
working on the system: RuntimeError('cannot find any suitable libguestfs
supermin, fixed or old-style appliance on LIBGUESTFS_PATH (search path:
/nix/store/q4vxkp3fqajg23cqfwmd9gh13fvily9i-libguestfs-
1.50.1/lib/guestfs)')) [ 23%]
tests/comparators/test_fsimage.py::test_compare_non_existing SKIPPEDitable libguestfs supermin, fixed or old-style appliance on
LIBGUESTFS_PATH (search path: /nix/store/q4vxkp3fqajg23cqfwmd9gh13fvily9
i-libguestfs-1.50.1/lib/guestfs)')) [ 23%]
tests/comparators/test_fsimage.py::test_differences_fat SKIPPED (guestfs
not working on the system: RuntimeError('cannot find any suitable
libguestfs supermin, fixed or old-style appliance on LIBGUESTFS_PATH
(search path: /nix/store/q4vxkp3fqajg23cqfwmd9gh13fvily9i-libguestfs-
1.50.1/lib/guestfs)')) [ 24%]
tests/comparators/test_gettext.py::test_identification PASSED [ 24%]
tests/comparators/test_gettext.py::test_no_differences PASSED [ 24%]
tests/comparators/test_gettext.py::test_diff PASSED [ 24%]
tests/comparators/test_gettext.py::test_charsets PASSED [ 24%]
tests/comparators/test_gettext.py::test_compare_non_existing PASSED [ 24%]
tests/comparators/test_gif.py::test_identification PASSED [ 24%]
tests/comparators/test_gif.py::test_no_differences PASSED [ 25%]
tests/comparators/test_gif.py::test_diff PASSED [ 25%]
tests/comparators/test_gif.py::test_compare_non_existing PASSED [ 25%]
tests/comparators/test_gif.py::test_has_visuals PASSED [ 25%]
tests/comparators/test_gif.py::test_no_visuals_different_size PASSED [ 25%]
tests/comparators/test_git.py::test_identification PASSED [ 25%]
tests/comparators/test_git.py::test_no_differences PASSED [ 25%]
tests/comparators/test_git.py::test_diff PASSED [ 25%]
tests/comparators/test_gnumeric.py::test_identification PASSED [ 26%]
tests/comparators/test_gnumeric.py::test_no_differences PASSED [ 26%]
tests/comparators/test_gnumeric.py::test_diff PASSED [ 26%]
tests/comparators/test_gnumeric.py::test_compare_non_existing PASSED [ 26%]
tests/comparators/test_gzip.py::test_identification PASSED [ 26%]
tests/comparators/test_gzip.py::test_fallback_recognizes PASSED [ 26%]
tests/comparators/test_gzip.py::test_no_differences PASSED [ 26%]
tests/comparators/test_gzip.py::test_metadata PASSED [ 27%]
tests/comparators/test_gzip.py::test_content_source PASSED [ 27%]
tests/comparators/test_gzip.py::test_content_source_without_extension PASSED [ 27%]
tests/comparators/test_gzip.py::test_content_diff PASSED [ 27%]
tests/comparators/test_gzip.py::test_compare_non_existing PASSED [ 27%]
tests/comparators/test_haskell.py::test_identification SKIPPED (mismatch
between system ghc and fixture) [ 27%]
tests/comparators/test_haskell.py::test_no_differences PASSED [ 27%]
tests/comparators/test_haskell.py::test_diff SKIPPED (mismatch between
system ghc and fixture) [ 28%]
tests/comparators/test_hdf.py::test_identification PASSED [ 28%]
tests/comparators/test_hdf.py::test_no_differences PASSED [ 28%]
tests/comparators/test_hdf.py::test_diff PASSED [ 28%]
tests/comparators/test_hdf.py::test_compare_non_existing PASSED [ 28%]
tests/comparators/test_html.py::test_identification PASSED [ 28%]
tests/comparators/test_html.py::test_no_differences PASSED [ 28%]
tests/comparators/test_html.py::test_diff PASSED [ 29%]
tests/comparators/test_icc.py::test_identification PASSED [ 29%]
tests/comparators/test_icc.py::test_no_differences PASSED [ 29%]
tests/comparators/test_icc.py::test_diff PASSED [ 29%]
tests/comparators/test_icc.py::test_compare_non_existing PASSED [ 29%]
tests/comparators/test_ico_image.py::test_identification PASSED [ 29%]
tests/comparators/test_ico_image.py::test_no_differences PASSED [ 29%]
tests/comparators/test_ico_image.py::test_diff PASSED [ 30%]
tests/comparators/test_ico_image.py::test_has_visuals PASSED [ 30%]
tests/comparators/test_ipk.py::test_identification PASSED [ 30%]
tests/comparators/test_ipk.py::test_no_differences PASSED [ 30%]
tests/comparators/test_ipk.py::test_metadata PASSED [ 30%]
tests/comparators/test_ipk.py::test_compressed_files PASSED [ 30%]
tests/comparators/test_ipk.py::test_compare_non_existing PASSED [ 30%]
tests/comparators/test_iso9660.py::test_identification PASSED [ 30%]
tests/comparators/test_iso9660.py::test_no_differences PASSED [ 31%]
tests/comparators/test_iso9660.py::test_iso9660_content PASSED [ 31%]
tests/comparators/test_iso9660.py::test_iso9660_rockridge PASSED [ 31%]
tests/comparators/test_iso9660.py::test_symlink PASSED [ 31%]
tests/comparators/test_iso9660.py::test_compressed_files PASSED [ 31%]
tests/comparators/test_iso9660.py::test_compare_non_existing PASSED [ 31%]
tests/comparators/test_java.py::test_identification PASSED [ 31%]
tests/comparators/test_java.py::test_no_differences PASSED [ 32%]
tests/comparators/test_java.py::test_diff_procyon PASSED [ 32%]
tests/comparators/test_java.py::test_diff_javap SKIPPED (requires javap
min 9.0.4 >= 14.0; 1.8.0_362 detected) [ 32%]
tests/comparators/test_java.py::test_diff_javap_14 SKIPPED (requires
javap >= 14.0; 1.8.0_362 detected) [ 32%]
tests/comparators/test_java.py::test_compare_non_existing_procyon PASSED [ 32%]
tests/comparators/test_java.py::test_compare_non_existing_javap PASSED [ 32%]
tests/comparators/test_javascript.py::test_identification PASSED [ 32%]
tests/comparators/test_javascript.py::test_no_differences PASSED [ 33%]
tests/comparators/test_javascript.py::test_diff PASSED [ 33%]
tests/comparators/test_javascript.py::test_compare_non_existing PASSED [ 33%]
tests/comparators/test_jpeg_image.py::test_identification PASSED [ 33%]
tests/comparators/test_jpeg_image.py::test_no_differences PASSED [ 33%]
tests/comparators/test_jpeg_image.py::test_diff PASSED [ 33%]
tests/comparators/test_jpeg_image.py::test_compare_non_existing PASSED [ 33%]
tests/comparators/test_jpeg_image.py::test_has_visuals FAILED [ 34%]
tests/comparators/test_json.py::test_identification PASSED [ 34%]
tests/comparators/test_json.py::test_invalid PASSED [ 34%]
tests/comparators/test_json.py::test_no_differences PASSED [ 34%]
tests/comparators/test_json.py::test_diff PASSED [ 34%]
tests/comparators/test_json.py::test_compare_non_existing PASSED [ 34%]
tests/comparators/test_json.py::test_ordering_differences PASSED [ 34%]
tests/comparators/test_kbx.py::test_identification PASSED [ 35%]
tests/comparators/test_kbx.py::test_no_differences PASSED [ 35%]
tests/comparators/test_kbx.py::test_diff PASSED [ 35%]
tests/comparators/test_kbx.py::test_compare_non_existing PASSED [ 35%]
tests/comparators/test_lz4.py::test_identification PASSED [ 35%]
tests/comparators/test_lz4.py::test_no_differences PASSED [ 35%]
tests/comparators/test_lz4.py::test_content_source PASSED [ 35%]
tests/comparators/test_lz4.py::test_content_source_without_extension PASSED [ 35%]
tests/comparators/test_lz4.py::test_content_diff PASSED [ 36%]
tests/comparators/test_lz4.py::test_compare_non_existing PASSED [ 36%]
tests/comparators/test_lzip.py::test_identification PASSED [ 36%]
tests/comparators/test_lzip.py::test_no_differences PASSED [ 36%]
tests/comparators/test_lzip.py::test_content_source PASSED [ 36%]
tests/comparators/test_lzip.py::test_content_source_without_extension PASSED [ 36%]
tests/comparators/test_lzip.py::test_content_diff PASSED [ 36%]
tests/comparators/test_lzip.py::test_compare_non_existing PASSED [ 37%]
tests/comparators/test_macho.py::test_obj_identification PASSED [ 37%]
tests/comparators/test_macho.py::test_obj_no_differences PASSED [ 37%]
tests/comparators/test_macho.py::test_otool_obj_compare_non_existing SKIPPED [ 37%]
tests/comparators/test_macho.py::test_otool_diff SKIPPED (requires otool
and lipo) [ 37%]
tests/comparators/test_macho.py::test_llvm_obj_compare_non_existing PASSED [ 37%]
tests/comparators/test_macho.py::test_llvm_diff PASSED [ 37%]
tests/comparators/test_macho_decompiler.py::test_obj_compare_non_existing SKIPPED [ 38%]
tests/comparators/test_macho_decompiler.py::test_ghidra_diff SKIPPED [ 38%]
tests/comparators/test_macho_decompiler.py::test_radare2_diff SKIPPED [ 38%]
tests/comparators/test_mono.py::test_identification PASSED [ 38%]
tests/comparators/test_mono.py::test_no_differences PASSED [ 38%]
tests/comparators/test_mono.py::test_diff PASSED [ 38%]
tests/comparators/test_mono.py::test_compare_non_existing PASSED [ 38%]
tests/comparators/test_ocaml.py::test_identification PASSED [ 39%]
tests/comparators/test_ocaml.py::test_no_differences PASSED [ 39%]
tests/comparators/test_ocaml.py::test_diff PASSED [ 39%]
tests/comparators/test_ocaml.py::test_compare_non_existing PASSED [ 39%]
tests/comparators/test_odt.py::test_identification PASSED [ 39%]
tests/comparators/test_odt.py::test_no_differences PASSED [ 39%]
tests/comparators/test_odt.py::test_diff PASSED [ 39%]
tests/comparators/test_odt.py::test_compare_non_existing PASSED [ 40%]
tests/comparators/test_ogg.py::test_identification PASSED [ 40%]
tests/comparators/test_ogg.py::test_no_differences PASSED [ 40%]
tests/comparators/test_ogg.py::test_diff PASSED [ 40%]
tests/comparators/test_ogg.py::test_compare_non_existing PASSED [ 40%]
tests/comparators/test_openssh_pub_key.py::test_identification PASSED [ 40%]
tests/comparators/test_openssh_pub_key.py::test_no_differences PASSED [ 40%]
tests/comparators/test_openssh_pub_key.py::test_diff PASSED [ 40%]
tests/comparators/test_openssh_pub_key.py::test_compare_non_existing PASSED [ 41%]
tests/comparators/test_openssl.py::test_identification PASSED [ 41%]
tests/comparators/test_openssl.py::test_no_differences PASSED [ 41%]
tests/comparators/test_openssl.py::test_differences PASSED [ 41%]
tests/comparators/test_pcap.py::test_identification PASSED [ 41%]
tests/comparators/test_pcap.py::test_no_differences PASSED [ 41%]
tests/comparators/test_pcap.py::test_diff PASSED [ 41%]
tests/comparators/test_pcap.py::test_compare_non_existing PASSED [ 42%]
tests/comparators/test_pdf.py::test_identification PASSED [ 42%]
tests/comparators/test_pdf.py::test_no_differences PASSED [ 42%]
tests/comparators/test_pdf.py::test_differences_found_with_weird_encoding PASSED [ 42%]
tests/comparators/test_pdf.py::test_text_diff PASSED [ 42%]
tests/comparators/test_pdf.py::test_compare_non_existing PASSED [ 42%]
tests/comparators/test_pdf.py::test_metadata SKIPPED (pypdf not
installed or not version 3.x+) [ 42%]
tests/comparators/test_pdf.py::test_annotations SKIPPED (pypdf not
installed or not version 3.x+) [ 43%]
tests/comparators/test_pgp.py::test_identification PASSED [ 43%]
tests/comparators/test_pgp.py::test_no_differences PASSED [ 43%]
tests/comparators/test_pgp.py::test_diff PASSED [ 43%]
tests/comparators/test_pgp.py::test_compare_non_existing PASSED [ 43%]
tests/comparators/test_pgp.py::test_pgp_signature_identification PASSED [ 43%]
tests/comparators/test_pgp.py::test_pgp_signature PASSED [ 43%]
tests/comparators/test_pgp.py::test_signed_identification PASSED [ 44%]
tests/comparators/test_pgp.py::test_signed_diff PASSED [ 44%]
tests/comparators/test_png.py::test_identification PASSED [ 44%]
tests/comparators/test_png.py::test_no_differences PASSED [ 44%]
tests/comparators/test_png.py::test_diff PASSED [ 44%]
tests/comparators/test_png.py::test_compare_non_existing PASSED [ 44%]
tests/comparators/test_png.py::test_has_visuals PASSED [ 44%]
tests/comparators/test_ppu.py::test_identification PASSED [ 45%]
tests/comparators/test_ppu.py::test_no_differences PASSED [ 45%]
tests/comparators/test_ppu.py::test_diff PASSED [ 45%]
tests/comparators/test_ppu.py::test_compare_non_existing PASSED [ 45%]
tests/comparators/test_ps.py::test_identification PASSED [ 45%]
tests/comparators/test_ps.py::test_no_differences PASSED [ 45%]
tests/comparators/test_ps.py::test_internal_diff PASSED [ 45%]
tests/comparators/test_ps.py::test_text_diff PASSED [ 45%]
tests/comparators/test_ps.py::test_compare_non_existing PASSED [ 46%]
tests/comparators/test_python.py::test_identification PASSED [ 46%]
tests/comparators/test_python.py::test_no_differences SKIPPED (Unstable
on 3.10+) [ 46%]
tests/comparators/test_python.py::test_diff SKIPPED (Only Python 3.9 and
3.10 can de-marshal test1.pyc-renamed) [ 46%]
tests/comparators/test_python.py::test_compare_non_existing PASSED [ 46%]
tests/comparators/test_rdata.py::test_identification PASSED [ 46%]
tests/comparators/test_rdata.py::test_no_differences PASSED [ 46%]
tests/comparators/test_rdata.py::test_num_items_rdb PASSED [ 47%]
tests/comparators/test_rdata.py::test_item_rdb PASSED [ 47%]
tests/comparators/test_rdata.py::test_num_items_rdx PASSED [ 47%]
tests/comparators/test_rdata.py::test_item_rdx PASSED [ 47%]
tests/comparators/test_rlib.py::test_identification PASSED [ 47%]
tests/comparators/test_rlib.py::test_no_differences PASSED [ 47%]
tests/comparators/test_rlib.py::test_num_items PASSED [ 47%]
tests/comparators/test_rlib.py::test_item0_armap PASSED [ 48%]
tests/comparators/test_rlib.py::test_item1_elf PASSED [ 48%]
tests/comparators/test_rlib.py::test_item2_rust_metadata_bin PASSED [ 48%]
tests/comparators/test_rlib.py::test_compare_non_existing PASSED [ 48%]
tests/comparators/test_rpm.py::test_identification PASSED [ 48%]
tests/comparators/test_rpm.py::test_no_differences PASSED [ 48%]
tests/comparators/test_rpm.py::test_header PASSED [ 48%]
tests/comparators/test_rpm.py::test_listing PASSED [ 49%]
tests/comparators/test_rpm.py::test_content PASSED [ 49%]
tests/comparators/test_rpm.py::test_compare_non_existing PASSED [ 49%]
tests/comparators/test_rpm.py::test_fallback_comparison PASSED [ 49%]
tests/comparators/test_sevenz.py::test_identification PASSED [ 49%]
tests/comparators/test_sevenz.py::test_no_differences PASSED [ 49%]
tests/comparators/test_sevenz.py::test_content_source PASSED [ 49%]
tests/comparators/test_sevenz.py::test_content_source_without_extension PASSED [ 50%]
tests/comparators/test_sevenz.py::test_metadata_diff PASSED [ 50%]
tests/comparators/test_sevenz.py::test_compare_non_existing PASSED [ 50%]
tests/comparators/test_sockets.py::test_sockets PASSED [ 50%]
tests/comparators/test_sphinx.py::test_identification PASSED [ 50%]
tests/comparators/test_sphinx.py::test_no_differences PASSED [ 50%]
tests/comparators/test_sphinx.py::test_diff PASSED [ 50%]
tests/comparators/test_sqlite.py::test_identification PASSED [ 50%]
tests/comparators/test_sqlite.py::test_no_differences PASSED [ 51%]
tests/comparators/test_sqlite.py::test_diff PASSED [ 51%]
tests/comparators/test_sqlite.py::test_compare_non_existing PASSED [ 51%]
tests/comparators/test_squashfs.py::test_identification PASSED [ 51%]
tests/comparators/test_squashfs.py::test_no_differences PASSED [ 51%]
tests/comparators/test_squashfs.py::test_no_warnings PASSED [ 51%]
tests/comparators/test_squashfs.py::test_superblock PASSED [ 51%]
tests/comparators/test_squashfs.py::test_symlink PASSED [ 52%]
tests/comparators/test_squashfs.py::test_compressed_files PASSED [ 52%]
tests/comparators/test_squashfs.py::test_compare_non_existing PASSED [ 52%]
tests/comparators/test_squashfs.py::test_symlink_root PASSED [ 52%]
tests/comparators/test_symlink.py::test_destination PASSED [ 52%]
tests/comparators/test_tar.py::test_identification PASSED [ 52%]
tests/comparators/test_tar.py::test_no_differences PASSED [ 52%]
tests/comparators/test_tar.py::test_listing PASSED [ 53%]
tests/comparators/test_tar.py::test_symlinks PASSED [ 53%]
tests/comparators/test_tar.py::test_text_file PASSED [ 53%]
tests/comparators/test_tar.py::test_compare_non_existing PASSED [ 53%]
tests/comparators/test_tar.py::test_no_permissions_dir_in_tarball PASSED [ 53%]
tests/comparators/test_text.py::test_no_differences PASSED [ 53%]
tests/comparators/test_text.py::test_difference_in_ascii PASSED [ 53%]
tests/comparators/test_text.py::test_difference_in_unicode PASSED [ 54%]
tests/comparators/test_text.py::test_difference_between_iso88591_and_unicode PASSED [ 54%]
tests/comparators/test_text.py::test_difference_between_iso88591_and_unicode_only PASSED [ 54%]
tests/comparators/test_text.py::test_compare_non_existing PASSED [ 54%]
tests/comparators/test_text.py::test_ordering_differences PASSED [ 54%]
tests/comparators/test_text.py::test_text_fallback PASSED [ 54%]
tests/comparators/test_uimage.py::test_identification PASSED [ 54%]
tests/comparators/test_uimage.py::test_no_differences PASSED [ 55%]
tests/comparators/test_uimage.py::test_file_differences PASSED [ 55%]
tests/comparators/test_uimage.py::test_nested_listing PASSED [ 55%]
tests/comparators/test_uimage.py::test_nested_symlink PASSED [ 55%]
tests/comparators/test_uimage.py::test_nested_compressed_files PASSED [ 55%]
tests/comparators/test_uimage.py::test_compare_non_existing PASSED [ 55%]
tests/comparators/test_utils.py::test_tools_missing PASSED [ 55%]
tests/comparators/test_utils.py::test_skip_unless_tools_exist_empty SKIPPED [ 55%]
tests/comparators/test_utils.py::test_skip_unless_tools_exist_missing SKIPPED [ 56%]
tests/comparators/test_utils.py::test_fuzzy_matching PASSED [ 56%]
tests/comparators/test_utils.py::test_fuzzy_matching_only_once PASSED [ 56%]
tests/comparators/test_utils.py::test_no_fuzzy_matching PASSED [ 56%]
tests/comparators/test_utils.py::test_no_fuzzy_matching_new_file PASSED [ 56%]
tests/comparators/test_utils.py::test_trim_stderr_in_command PASSED [ 56%]
tests/comparators/test_wasm.py::test_identification PASSED [ 56%]
tests/comparators/test_wasm.py::test_no_differences PASSED [ 57%]
tests/comparators/test_wasm.py::test_diff PASSED [ 57%]
tests/comparators/test_wasm.py::test_compare_non_existing PASSED [ 57%]
tests/comparators/test_xml.py::test_identification PASSED [ 57%]
tests/comparators/test_xml.py::test_invalid PASSED [ 57%]
tests/comparators/test_xml.py::test_no_differences PASSED [ 57%]
tests/comparators/test_xml.py::test_diff PASSED [ 57%]
tests/comparators/test_xml.py::test_ordering_differences PASSED [ 58%]
tests/comparators/test_xsb.py::test_identification PASSED [ 58%]
tests/comparators/test_xsb.py::test_no_differences PASSED [ 58%]
tests/comparators/test_xsb.py::test_diff PASSED [ 58%]
tests/comparators/test_xsb.py::test_compare_non_existing PASSED [ 58%]
tests/comparators/test_xz.py::test_identification PASSED [ 58%]
tests/comparators/test_xz.py::test_no_differences PASSED [ 58%]
tests/comparators/test_xz.py::test_content_source PASSED [ 59%]
tests/comparators/test_xz.py::test_content_source_without_extension PASSED [ 59%]
tests/comparators/test_xz.py::test_content_diff PASSED [ 59%]
tests/comparators/test_xz.py::test_compare_non_existing PASSED [ 59%]
tests/comparators/test_xz.py::test_content_source_verbose PASSED [ 59%]
tests/comparators/test_zip.py::test_identification PASSED [ 59%]
tests/comparators/test_zip.py::test_no_differences PASSED [ 59%]
tests/comparators/test_zip.py::test_metadata SKIPPED (requires
zipdetails) [ 60%]
tests/comparators/test_zip.py::test_compressed_files SKIPPED (requires
zipdetails) [ 60%]
tests/comparators/test_zip.py::test_extra_fields SKIPPED (requires
zipdetails) [ 60%]
tests/comparators/test_zip.py::test_compare_non_existing PASSED [ 60%]
tests/comparators/test_zip.py::test_mozzip_identification PASSED [ 60%]
tests/comparators/test_zip.py::test_mozzip_no_differences PASSED [ 60%]
tests/comparators/test_zip.py::test_mozzip_metadata PASSED [ 60%]
tests/comparators/test_zip.py::test_mozzip_compressed_files PASSED [ 60%]
tests/comparators/test_zip.py::test_mozzip_compare_non_existing PASSED [ 61%]
tests/comparators/test_zip.py::test_jmod_identification PASSED [ 61%]
tests/comparators/test_zip.py::test_jmod_no_differences PASSED [ 61%]
tests/comparators/test_zip.py::test_jmod_metadata SKIPPED (requires
zipdetails) [ 61%]
tests/comparators/test_zip.py::test_encrypted PASSED [ 61%]
tests/comparators/test_zip.py::test_commented SKIPPED (requires
zipdetails) [ 61%]
tests/comparators/test_zst.py::test_identification PASSED [ 61%]
tests/comparators/test_zst.py::test_no_differences PASSED [ 62%]
tests/comparators/test_zst.py::test_content_source PASSED [ 62%]
tests/test_diff_mask.py::test_none PASSED [ 62%]
tests/test_diff_mask.py::test_all PASSED [ 62%]
tests/test_diff_mask.py::test_specific PASSED [ 62%]
tests/test_difference.py::test_too_much_input_for_diff PASSED [ 62%]
tests/test_difference.py::test_too_long_diff_block_lines PASSED [ 62%]
tests/test_difference.py::test_size_updates PASSED [ 63%]
tests/test_difference.py::test_traverse_heapq PASSED [ 63%]
tests/test_difference.py::test_non_str_arguments_to_source1_source2 PASSED [ 63%]
tests/test_difference.py::test_adjust_diff_context PASSED [ 63%]
tests/test_excludes.py::test_none PASSED [ 63%]
tests/test_excludes.py::test_all PASSED [ 63%]
tests/test_excludes.py::test_specific PASSED [ 63%]
tests/test_excludes.py::test_specific_case PASSED [ 64%]
tests/test_excludes.py::test_multiple PASSED [ 64%]
tests/test_excludes.py::test_nomatch PASSED [ 64%]
tests/test_excludes.py::test_wildcard PASSED [ 64%]
tests/test_main.py::test_non_existing_files PASSED [ 64%]
tests/test_main.py::test_non_existing_left_with_new_file PASSED [ 64%]
tests/test_main.py::test_non_existing_right_with_new_file PASSED [ 64%]
tests/test_main.py::test_non_existing_files_with_new_file PASSED [ 65%]
tests/test_main.py::test_remove_temp_files_on_sigterm PASSED [ 65%]
tests/test_main.py::test_ctrl_c_handling PASSED [ 65%]
tests/test_main.py::test_no_differences PASSED [ 65%]
tests/test_main.py::test_no_differences_directories PASSED [ 65%]
tests/test_main.py::test_list_tools PASSED [ 65%]
tests/test_main.py::test_list_missing_tools PASSED [ 65%]
tests/test_main.py::test_profiling PASSED [ 65%]
tests/test_main.py::test_non_unicode_filename PASSED [ 66%]
tests/test_main.py::test_help PASSED [ 66%]
tests/test_main.py::test_usage PASSED [ 66%]
tests/test_presenters.py::test_text_option_is_default PASSED [ 66%]
tests/test_presenters.py::test_text_proper_indentation PASSED [ 66%]
tests/test_presenters.py::test_text_option_color PASSED [ 66%]
tests/test_presenters.py::test_text_option_with_file PASSED [ 66%]
tests/test_presenters.py::test_text_option_with_stdout PASSED [ 67%]
tests/test_presenters.py::test_markdown PASSED [ 67%]
tests/test_presenters.py::test_restructuredtext PASSED [ 67%]
tests/test_presenters.py::test_json PASSED [ 67%]
tests/test_presenters.py::test_no_report_option PASSED [ 67%]
tests/test_presenters.py::test_html_option_with_file PASSED [ 67%]
tests/test_presenters.py::test_html_visuals PASSED [ 67%]
tests/test_presenters.py::test_htmldir_option PASSED [ 68%]
tests/test_presenters.py::test_html_option_with_stdout PASSED [ 68%]
tests/test_presenters.py::test_html_regression_875281 PASSED [ 68%]
tests/test_presenters.py::test_html_presentation_issue_363 PASSED [ 68%]
tests/test_presenters.py::test_html_presentation_issue_372 PASSED [ 68%]
tests/test_presenters.py::test_limited_print PASSED [ 68%]
tests/test_presenters.py::test_partial_string PASSED [ 68%]
tests/test_presenters.py::test_partial_string_cont PASSED [ 69%]
tests/test_presenters.py::test_partial_string_numl PASSED [ 69%]
tests/test_presenters.py::test_partial_string_escape PASSED [ 69%]
tests/test_progress.py::test_progress PASSED [ 69%]
tests/test_progress.py::test_status_fd PASSED [ 69%]
tests/test_quines.py::test_identification PASSED [ 69%]
tests/test_quines.py::test_no_differences PASSED [ 69%]
tests/test_quines.py::test_difference PASSED [ 70%]
tests/test_quines.py::test_identification_deb PASSED [ 70%]
tests/test_quines.py::test_differences_deb PASSED [ 70%]
tests/test_readers.py::test_json PASSED [ 70%]
tests/test_source.py::test_code_is_black_clean SKIPPED (requires black) [ 70%]
tests/test_tools.py::test_all_tools_are_listed PASSED [ 70%]
tests/test_tools.py::test_get_tools PASSED [ 70%]
tests/test_tools.py::test_required_tool_not_found PASSED [ 70%]
tests/test_versions.py::test_version_comparisons[1.0-1.0-0] PASSED [ 71%]
tests/test_versions.py::test_version_comparisons[1.0-2.0--1] PASSED [ 71%]
tests/test_versions.py::test_version_comparisons[2.0-1.0-1] PASSED [ 71%]
tests/test_versions.py::test_version_comparisons[2.0.1-2.0.1-0] PASSED [ 71%]
tests/test_versions.py::test_version_comparisons[2.0-2.0.1--1] PASSED [ 71%]
tests/test_versions.py::test_version_comparisons[2.0.1-2.0-1] PASSED [ 71%]
tests/test_versions.py::test_version_comparisons[2.0.1a-2.0.1a-0] PASSED [ 71%]
tests/test_versions.py::test_version_comparisons[2.0.1a-2.0.1-1] PASSED [ 72%]
tests/test_versions.py::test_version_comparisons[2.0.1-2.0.1a--1] PASSED [ 72%]
tests/test_versions.py::test_version_comparisons[5.5p1-5.5p1-0] PASSED [ 72%]
tests/test_versions.py::test_version_comparisons[5.5p1-5.5p2--1] PASSED [ 72%]
tests/test_versions.py::test_version_comparisons[5.5p2-5.5p1-1] PASSED [ 72%]
tests/test_versions.py::test_version_comparisons[5.5p10-5.5p10-0] PASSED [ 72%]
tests/test_versions.py::test_version_comparisons[5.5p1-5.5p10--1] PASSED [ 72%]
tests/test_versions.py::test_version_comparisons[5.5p10-5.5p1-1] PASSED [ 73%]
tests/test_versions.py::test_version_comparisons[10xyz-10.1xyz--1] PASSED [ 73%]
tests/test_versions.py::test_version_comparisons[10.1xyz-10xyz-1] PASSED [ 73%]
tests/test_versions.py::test_version_comparisons[xyz10-xyz10-0] PASSED [ 73%]
tests/test_versions.py::test_version_comparisons[xyz10-xyz10.1--1] PASSED [ 73%]
tests/test_versions.py::test_version_comparisons[xyz10.1-xyz10-1] PASSED [ 73%]
tests/test_versions.py::test_version_comparisons[xyz.4-xyz.4-0] PASSED [ 73%]
tests/test_versions.py::test_version_comparisons[xyz.4-8--1] PASSED [ 74%]
tests/test_versions.py::test_version_comparisons[8-xyz.4-1] PASSED [ 74%]
tests/test_versions.py::test_version_comparisons[xyz.4-2--1] PASSED [ 74%]
tests/test_versions.py::test_version_comparisons[2-xyz.4-1] PASSED [ 74%]
tests/test_versions.py::test_version_comparisons[5.5p2-5.6p1--1] PASSED [ 74%]
tests/test_versions.py::test_version_comparisons[5.6p1-5.5p2-1] PASSED [ 74%]
tests/test_versions.py::test_version_comparisons[5.6p1-6.5p1--1] PASSED [ 74%]
tests/test_versions.py::test_version_comparisons[6.5p1-5.6p1-1] PASSED [ 75%]
tests/test_versions.py::test_version_comparisons[6.0.rc1-6.0-1] PASSED [ 75%]
tests/test_versions.py::test_version_comparisons[6.0-6.0.rc1--1] PASSED [ 75%]
tests/test_versions.py::test_version_comparisons[10b2-10a1-1] PASSED [ 75%]
tests/test_versions.py::test_version_comparisons[10a2-10b2--1] PASSED [ 75%]
tests/test_versions.py::test_version_comparisons[1.0aa-1.0aa-0] PASSED [ 75%]
tests/test_versions.py::test_version_comparisons[1.0a-1.0aa--1] PASSED [ 75%]
tests/test_versions.py::test_version_comparisons[1.0aa-1.0a-1] PASSED [ 75%]
tests/test_versions.py::test_version_comparisons[10.0001-10.0001-0] PASSED [ 76%]
tests/test_versions.py::test_version_comparisons[10.0001-10.1-0] PASSED [ 76%]
tests/test_versions.py::test_version_comparisons[10.1-10.0001-0] PASSED [ 76%]
tests/test_versions.py::test_version_comparisons[10.0001-10.0039--1] PASSED [ 76%]
tests/test_versions.py::test_version_comparisons[10.0039-10.0001-1] PASSED [ 76%]
tests/test_versions.py::test_version_comparisons[4.999.9-5.0--1] PASSED [ 76%]
tests/test_versions.py::test_version_comparisons[5.0-4.999.9-1] PASSED [ 76%]
tests/test_versions.py::test_version_comparisons[20101121-20101121-0] PASSED [ 77%]
tests/test_versions.py::test_version_comparisons[20101121-20101122--1] PASSED [ 77%]
tests/test_versions.py::test_version_comparisons[20101122-20101121-1] PASSED [ 77%]
tests/test_versions.py::test_version_comparisons[2_0-2_0-0] PASSED [ 77%]
tests/test_versions.py::test_version_comparisons[2.0-2_0-0] PASSED [ 77%]
tests/test_versions.py::test_version_comparisons[2_0-2.0-0] PASSED [ 77%]
tests/test_versions.py::test_version_comparisons[2_0.-2_0-0] PASSED [ 77%]
tests/test_versions.py::test_version_comparisons[2..0-2_0__-0] PASSED [ 78%]
tests/test_versions.py::test_version_comparisons[2_0-2.0-0] PASSED [ 78%]
tests/test_versions.py::test_version_comparisons[2_1.-2_0-1] PASSED [ 78%]
tests/test_versions.py::test_version_comparisons[2..1-2_0-1] PASSED [ 78%]
tests/test_versions.py::test_version_comparisons[2_1-2.0-1] PASSED [ 78%]
tests/test_versions.py::test_version_comparisons[2_1.-2_2--1] PASSED [ 78%]
tests/test_versions.py::test_version_comparisons[2..1-2_2--1] PASSED [ 78%]
tests/test_versions.py::test_version_comparisons[2_1-2.2--1] PASSED [ 79%]
tests/test_versions.py::test_version_comparisons[a-a-0_0] PASSED [ 79%]
tests/test_versions.py::test_version_comparisons[a+-a+-0] PASSED [ 79%]
tests/test_versions.py::test_version_comparisons[a+-a-0] PASSED [ 79%]
tests/test_versions.py::test_version_comparisons[a-a+-0] PASSED [ 79%]
tests/test_versions.py::test_version_comparisons[+a-+a-0] PASSED [ 79%]
tests/test_versions.py::test_version_comparisons[+a-a-0] PASSED [ 79%]
tests/test_versions.py::test_version_comparisons[a-+a-0] PASSED [ 80%]
tests/test_versions.py::test_version_comparisons[+-+-0] PASSED [ 80%]
tests/test_versions.py::test_version_comparisons[+-+-0] PASSED [ 80%]
tests/test_versions.py::test_version_comparisons[+-+-0] PASSED [ 80%]
tests/test_versions.py::test_version_comparisons[+--0] PASSED [ 80%]
tests/test_versions.py::test_version_comparisons[-+-0] PASSED [ 80%]
tests/test_versions.py::test_version_comparisons[1.0rc1-1.0rc1-0] PASSED [ 80%]
tests/test_versions.py::test_version_comparisons[1.0rc1-1.0--1] PASSED [ 80%]
tests/test_versions.py::test_version_comparisons[1.0-1.0rc1-1] PASSED [ 81%]
tests/test_versions.py::test_version_comparisons[1.0rc1-1.0rc2--1] PASSED [ 81%]
tests/test_versions.py::test_version_comparisons[1.0rc2-1.0rc1-1] PASSED [ 81%]
tests/test_versions.py::test_version_comparisons[1.0rc1git123-1.0rc1git123-0] PASSED [ 81%]
tests/test_versions.py::test_version_comparisons[1.0rc1git123-1.0rc1--1] PASSED [ 81%]
tests/test_versions.py::test_version_comparisons[1.0rc1-1.0rc1git123-1] PASSED [ 81%]
tests/test_versions.py::test_version_comparisons[a-a-0_1] PASSED [ 81%]
tests/test_versions.py::test_version_comparisons[a~-a--1] PASSED [ 82%]
tests/test_versions.py::test_version_comparisons[a~~-a--1] PASSED [ 82%]
tests/test_versions.py::test_version_comparisons[a~~~-a--1] PASSED [ 82%]
tests/test_versions.py::test_version_comparisons[a~~~^-a--1] PASSED [ 82%]
tests/test_versions.py::test_version_comparisons[a^-a-1_0] PASSED [ 82%]
tests/test_versions.py::test_version_comparisons[a^-a-1_1] PASSED [ 82%]
tests/test_versions.py::test_version_comparisons[a^-a^-0] PASSED [ 82%]
tests/test_versions.py::test_version_comparisons[a^-a^^--1] PASSED [ 83%]
tests/test_versions.py::test_version_comparisons[a^b-a^^-1] PASSED [ 83%]
tests/test_versions.py::test_version_comparisons[1.0^-1.0^-0] PASSED [ 83%]
tests/test_versions.py::test_version_comparisons[1.0^-1.0-1] PASSED [ 83%]
tests/test_versions.py::test_version_comparisons[1.0-1.0^--1] PASSED [ 83%]
tests/test_versions.py::test_version_comparisons[1.0^git1-1.0^git1-0] PASSED [ 83%]
tests/test_versions.py::test_version_comparisons[1.0^git1-1.0-1] PASSED [ 83%]
tests/test_versions.py::test_version_comparisons[1.0-1.0^git1--1] PASSED [ 84%]
tests/test_versions.py::test_version_comparisons[1.0^git1-1.0^git2--1] PASSED [ 84%]
tests/test_versions.py::test_version_comparisons[1.0^git2-1.0^git1-1] PASSED [ 84%]
tests/test_versions.py::test_version_comparisons[1.0^git1-1.01--1] PASSED [ 84%]
tests/test_versions.py::test_version_comparisons[1.01-1.0^git1-1] PASSED [ 84%]
tests/test_versions.py::test_version_comparisons[1.0^20160101-1.0^20160101-0] PASSED [ 84%]
tests/test_versions.py::test_version_comparisons[1.0^20160101-1.0.1--1] PASSED [ 84%]
tests/test_versions.py::test_version_comparisons[1.0.1-1.0^20160101-1] PASSED [ 85%]
tests/test_versions.py::test_version_comparisons[1.0^20160101^git1-1.0^20160101^git1-0] PASSED [ 85%]
tests/test_versions.py::test_version_comparisons[1.0^20160102-1.0^20160101^git1-1] PASSED [ 85%]
tests/test_versions.py::test_version_comparisons[1.0^20160101^git1-1.0^20160102--1] PASSED [ 85%]
tests/test_versions.py::test_version_comparisons[1.0~rc1^git1-1.0~rc1^git1-0] PASSED [ 85%]
tests/test_versions.py::test_version_comparisons[1.0~rc1^git1-1.0~rc1-1] PASSED [ 85%]
tests/test_versions.py::test_version_comparisons[1.0~rc1-1.0~rc1^git1--1] PASSED [ 85%]
tests/test_versions.py::test_version_comparisons[1.0^git1~pre-1.0^git1~pre-0] PASSED [ 85%]
tests/test_versions.py::test_version_comparisons[1.0^git1-1.0^git1~pre-1] PASSED [ 86%]
tests/test_versions.py::test_version_comparisons[1.0^git1~pre-1.0^git1--1] PASSED [ 86%]
tests/test_versions.py::test_version_comparisons[0-0-0] PASSED [ 86%]
tests/test_versions.py::test_version_comparisons[0-00-0] PASSED [ 86%]
tests/test_versions.py::test_version_comparisons[0-000-0] PASSED [ 86%]
tests/test_versions.py::test_version_comparisons[00-000-0] PASSED [ 86%]
tests/test_versions.py::test_version_comparisons[000-000-0] PASSED [ 86%]
tests/test_versions.py::test_version_comparisons[00-0-0] PASSED [ 87%]
tests/test_versions.py::test_version_comparisons[000-0-0] PASSED [ 87%]
tests/test_versions.py::test_version_comparisons[0-0.0--1] PASSED [ 87%]
tests/test_versions.py::test_version_comparisons[0.0-0-1] PASSED [ 87%]
tests/test_versions.py::test_version_comparisons[0~-0--1] PASSED [ 87%]
tests/test_versions.py::test_version_comparisons[0^-0-1] PASSED [ 87%]
tests/test_versions.py::test_version_comparisons[0^-0^-0] PASSED [ 87%]
tests/test_versions.py::test_version_comparisons[0^-0^~-1] PASSED [ 88%]
tests/test_versions.py::test_version_lt[1.0-2.0] PASSED [ 88%]
tests/test_versions.py::test_version_lt[2.0-2.0.1] PASSED [ 88%]
tests/test_versions.py::test_version_lt[2.0.1-2.0.1a] PASSED [ 88%]
tests/test_versions.py::test_version_lt[5.5p1-5.5p2] PASSED [ 88%]
tests/test_versions.py::test_version_lt[5.5p1-5.5p10] PASSED [ 88%]
tests/test_versions.py::test_version_lt[10xyz-10.1xyz] PASSED [ 88%]
tests/test_versions.py::test_version_lt[xyz10-xyz10.1] PASSED [ 89%]
tests/test_versions.py::test_version_lt[xyz.4-8] PASSED [ 89%]
tests/test_versions.py::test_version_lt[xyz.4-2] PASSED [ 89%]
tests/test_versions.py::test_version_lt[5.5p2-5.6p1] PASSED [ 89%]
tests/test_versions.py::test_version_lt[5.6p1-6.5p1] PASSED [ 89%]
tests/test_versions.py::test_version_lt[6.0-6.0.rc1] PASSED [ 89%]
tests/test_versions.py::test_version_lt[10a2-10b2] PASSED [ 89%]
tests/test_versions.py::test_version_lt[1.0a-1.0aa] PASSED [ 90%]
tests/test_versions.py::test_version_lt[10.0001-10.0039] PASSED [ 90%]
tests/test_versions.py::test_version_lt[4.999.9-5.0] PASSED [ 90%]
tests/test_versions.py::test_version_lt[20101121-20101122] PASSED [ 90%]
tests/test_versions.py::test_version_lt[2_1.-2_2] PASSED [ 90%]
tests/test_versions.py::test_version_lt[2..1-2_2__] PASSED [ 90%]
tests/test_versions.py::test_version_lt[2_1-__2.2] PASSED [ 90%]
tests/test_versions.py::test_version_lt[1.0~rc1-1.0] PASSED [ 90%]
tests/test_versions.py::test_version_lt[1.0~rc1-1.0~rc2] PASSED [ 91%]
tests/test_versions.py::test_version_lt[1.0~rc1~git123-1.0~rc1] PASSED [ 91%]
tests/test_versions.py::test_version_lt[a~-a] PASSED [ 91%]
tests/test_versions.py::test_version_lt[a~~-a] PASSED [ 91%]
tests/test_versions.py::test_version_lt[a~~~-a] PASSED [ 91%]
tests/test_versions.py::test_version_lt[a~~~^-a] PASSED [ 91%]
tests/test_versions.py::test_version_lt[a^-a^^] PASSED [ 91%]
tests/test_versions.py::test_version_lt[1.0-1.0^] PASSED [ 92%]
tests/test_versions.py::test_version_lt[1.0-1.0^git1] PASSED [ 92%]
tests/test_versions.py::test_version_lt[1.0^git1-1.0^git2] PASSED [ 92%]
tests/test_versions.py::test_version_lt[1.0^git1-1.01] PASSED [ 92%]
tests/test_versions.py::test_version_lt[1.0^20160101-1.0.1] PASSED [ 92%]
tests/test_versions.py::test_version_lt[1.0^20160101^git1-1.0^20160102] PASSED [ 92%]
tests/test_versions.py::test_version_lt[1.0~rc1-1.0~rc1^git1] PASSED [ 92%]
tests/test_versions.py::test_version_lt[1.0^git1~pre-1.0^git1] PASSED [ 93%]
tests/test_versions.py::test_version_lt[0-0.0] PASSED [ 93%]
tests/test_versions.py::test_version_lt[0~-0] PASSED [ 93%]
tests/test_versions.py::test_version_gt[1.0-1.0] PASSED [ 93%]
tests/test_versions.py::test_version_gt[2.0.1-2.0.1] PASSED [ 93%]
tests/test_versions.py::test_version_gt[2.0.1a-2.0.1a] PASSED [ 93%]
tests/test_versions.py::test_version_gt[5.5p1-5.5p1] PASSED [ 93%]
tests/test_versions.py::test_version_gt[5.5p10-5.5p10] PASSED [ 94%]
tests/test_versions.py::test_version_gt[xyz10-xyz10] PASSED [ 94%]
tests/test_versions.py::test_version_gt[xyz.4-xyz.4] PASSED [ 94%]
tests/test_versions.py::test_version_gt[1.0aa-1.0aa] PASSED [ 94%]
tests/test_versions.py::test_version_gt[10.0001-10.0001] PASSED [ 94%]
tests/test_versions.py::test_version_gt[10.0001-10.1] PASSED [ 94%]
tests/test_versions.py::test_version_gt[10.1-10.0001] PASSED [ 94%]
tests/test_versions.py::test_version_gt[20101121-20101121] PASSED [ 95%]
tests/test_versions.py::test_version_gt[2_0-2_0] PASSED [ 95%]
tests/test_versions.py::test_version_gt[2.0-2_0] PASSED [ 95%]
tests/test_versions.py::test_version_gt[2_0-2.0] PASSED [ 95%]
tests/test_versions.py::test_version_gt[2_0.-2_0] PASSED [ 95%]
tests/test_versions.py::test_version_gt[2..0-2_0__] PASSED [ 95%]
tests/test_versions.py::test_version_gt[2_0-__2.0] PASSED [ 95%]
tests/test_versions.py::test_version_gt[a-a0] PASSED [ 95%]
tests/test_versions.py::test_version_gt[a+-a+] PASSED [ 96%]
tests/test_versions.py::test_version_gt[a+-a_] PASSED [ 96%]
tests/test_versions.py::test_version_gt[a_-a+] PASSED [ 96%]
tests/test_versions.py::test_version_gt[+a-+a] PASSED [ 96%]
tests/test_versions.py::test_version_gt[+a-_a] PASSED [ 96%]
tests/test_versions.py::test_version_gt[_a-+a] PASSED [ 96%]
tests/test_versions.py::test_version_gt[+_-+_] PASSED [ 96%]
tests/test_versions.py::test_version_gt[_+-+_] PASSED [ 97%]
tests/test_versions.py::test_version_gt[_+-_+] PASSED [ 97%]
tests/test_versions.py::test_version_gt[+-_] PASSED [ 97%]
tests/test_versions.py::test_version_gt[_-+] PASSED [ 97%]
tests/test_versions.py::test_version_gt[1.0~rc1-1.0~rc1] PASSED [ 97%]
tests/test_versions.py::test_version_gt[1.0~rc1~git123-1.0~rc1~git123] PASSED [ 97%]
tests/test_versions.py::test_version_gt[a-a1] PASSED [ 97%]
tests/test_versions.py::test_version_gt[a^-a^] PASSED [ 98%]
tests/test_versions.py::test_version_gt[1.0^-1.0^] PASSED [ 98%]
tests/test_versions.py::test_version_gt[1.0^git1-1.0^git1] PASSED [ 98%]
tests/test_versions.py::test_version_gt[1.0^20160101-1.0^20160101] PASSED [ 98%]
tests/test_versions.py::test_version_gt[1.0^20160101^git1-1.0^20160101^git1] PASSED [ 98%]
tests/test_versions.py::test_version_gt[1.0~rc1^git1-1.0~rc1^git1] PASSED [ 98%]
tests/test_versions.py::test_version_gt[1.0^git1~pre-1.0^git1~pre] PASSED [ 98%]
tests/test_versions.py::test_version_gt[0-0] PASSED [ 99%]
tests/test_versions.py::test_version_gt[0-00] PASSED [ 99%]
tests/test_versions.py::test_version_gt[0-000] PASSED [ 99%]
tests/test_versions.py::test_version_gt[00-000] PASSED [ 99%]
tests/test_versions.py::test_version_gt[000-000] PASSED [ 99%]
tests/test_versions.py::test_version_gt[00-0] PASSED [ 99%]
tests/test_versions.py::test_version_gt[000-0] PASSED [ 99%]
tests/test_versions.py::test_version_gt[0^-0^] PASSED [100%]
=================================== FAILURES =================================== _______________________________ test_has_visuals _______________________________
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fff6c43b250> image1 = <<class 'abc.JPEGImageFile'> /build/diffoscope-267/tests/data/test1.jpg> image2 = <<class 'abc.JPEGImageFile'> /build/diffoscope-267/tests/data/test2.jpg>
@skip_unless_tools_exist("img2txt", "convert", "identify")
def test_has_visuals(monkeypatch, image1, image2):
monkeypatch.setattr(Config(), "compute_visual_diffs", True)
jpg_diff = image1.compare(image2)
assert len(jpg_diff.details) == 2
E assert 1 == 2 E + where 1 = len([<Difference Image content -- Image content []>]) E + where [<Difference Image content -- Image content []>] = <Difference /build/diffoscope-267/tests/data/test1.jpg -- /build/diffoscope-267/tests/data/test2.jpg [<Difference Image content -- Image content []>]>.details
tests/comparators/test_jpeg_image.py:87: AssertionError ----------------------------- Captured stderr call ----------------------------- WARNING: The convert command is deprecated in IMv7, use "magick" instead of "convert" or "magick convert"
=========================== short test summary info ============================ FAILED tests/comparators/test_jpeg_image.py::test_has_visuals - assert 1 == 2 = 1 failed, 680 passed, 37 skipped, 5 deselected, 1 xfailed, 1 xpassed in 47.67s = /nix/store/dd7nxjnni7nzm0846fq5xrm89ais5lwz-stdenv-linux/setup: line 1579: pop_var_context: head of shell_variables not a function context
I see you are amenable to adjustments of this kind, as can be seen on #330 (closed).
Thanks in advance for your support and this wonderful piece of software!