===> Testing for py37-diffoscope-146 ===> py37-diffoscope-146 depends on package: py37-pytest>=0 - found ===> py37-diffoscope-146 depends on executable: zipinfo - found ===> py37-diffoscope-146 depends on executable: isoinfo - found ===> py37-diffoscope-146 depends on executable: rpm2cpio - found ===> py37-diffoscope-146 depends on file: /usr/local/bin/python3.7 - found ============================= test session starts ============================== platform freebsd11 -- Python 3.7.7, pytest-4.5.0, py-1.8.1, pluggy-0.12.0 -- /usr/local/bin/python3.7 cachedir: .pytest_cache rootdir: /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146 collecting ... collected 443 items tests/test_difference.py::test_too_much_input_for_diff PASSED [ 0%] tests/test_difference.py::test_too_long_diff_block_lines PASSED [ 0%] tests/test_difference.py::test_size_updates PASSED [ 0%] tests/test_difference.py::test_traverse_heapq PASSED [ 0%] tests/test_difference.py::test_non_str_arguments_to_source1_source2 PASSED [ 1%] tests/test_excludes.py::test_none FAILED [ 1%] tests/test_excludes.py::test_all FAILED [ 1%] tests/test_excludes.py::test_specific FAILED [ 1%] tests/test_excludes.py::test_specific_case FAILED [ 2%] tests/test_excludes.py::test_multiple FAILED [ 2%] tests/test_excludes.py::test_nomatch FAILED [ 2%] tests/test_excludes.py::test_wildcard FAILED [ 2%] tests/test_main.py::test_non_existing_files PASSED [ 2%] tests/test_main.py::test_non_existing_left_with_new_file PASSED [ 3%] tests/test_main.py::test_non_existing_right_with_new_file PASSED [ 3%] tests/test_main.py::test_non_existing_files_with_new_file PASSED [ 3%] tests/test_main.py::test_remove_temp_files_on_sigterm PASSED [ 3%] tests/test_main.py::test_ctrl_c_handling PASSED [ 4%] tests/test_main.py::test_no_differences FAILED [ 4%] tests/test_main.py::test_no_differences_directories FAILED [ 4%] tests/test_main.py::test_list_tools PASSED [ 4%] tests/test_main.py::test_list_missing_tools PASSED [ 4%] tests/test_main.py::test_profiling FAILED [ 5%] tests/test_main.py::test_non_unicode_filename FAILED [ 5%] tests/test_presenters.py::test_text_option_is_default FAILED [ 5%] tests/test_presenters.py::test_text_proper_indentation FAILED [ 5%] tests/test_presenters.py::test_text_option_color FAILED [ 6%] tests/test_presenters.py::test_text_option_with_file FAILED [ 6%] tests/test_presenters.py::test_text_option_with_stdout FAILED [ 6%] tests/test_presenters.py::test_markdown FAILED [ 6%] tests/test_presenters.py::test_restructuredtext FAILED [ 6%] tests/test_presenters.py::test_json FAILED [ 7%] tests/test_presenters.py::test_no_report_option FAILED [ 7%] tests/test_presenters.py::test_html_option_with_file FAILED [ 7%] tests/test_presenters.py::test_html_visuals SKIPPED [ 7%] tests/test_presenters.py::test_htmldir_option FAILED [ 8%] tests/test_presenters.py::test_html_option_with_stdout FAILED [ 8%] tests/test_presenters.py::test_html_regression_875281 FAILED [ 8%] tests/test_presenters.py::test_limited_print PASSED [ 8%] tests/test_presenters.py::test_partial_string PASSED [ 9%] tests/test_presenters.py::test_partial_string_cont PASSED [ 9%] tests/test_presenters.py::test_partial_string_numl PASSED [ 9%] tests/test_presenters.py::test_partial_string_escape PASSED [ 9%] tests/test_progress.py::test_progress SKIPPED [ 9%] tests/test_progress.py::test_status_fd FAILED [ 10%] tests/test_quines.py::test_identification PASSED [ 10%] tests/test_quines.py::test_no_differences PASSED [ 10%] tests/test_quines.py::test_difference PASSED [ 10%] tests/test_quines.py::test_identification_deb PASSED [ 11%] tests/test_quines.py::test_differences_deb PASSED [ 11%] tests/test_readers.py::test_json FAILED [ 11%] tests/test_source.py::test_code_is_black_clean SKIPPED [ 11%] tests/test_source.py::test_does_not_add_new_test_files PASSED [ 11%] tests/test_tools.py::test_sbin_added_to_path PASSED [ 12%] tests/test_tools.py::test_required_tool_not_found PASSED [ 12%] tests/comparators/test_android.py::test_identification PASSED [ 12%] tests/comparators/test_android.py::test_no_differences PASSED [ 12%] tests/comparators/test_android.py::test_diff SKIPPED [ 13%] tests/comparators/test_android.py::test_compare_non_existing SKIPPED [ 13%] tests/comparators/test_apk.py::test_identification PASSED [ 13%] tests/comparators/test_apk.py::test_no_differences PASSED [ 13%] tests/comparators/test_apk.py::test_compare_non_existing SKIPPED [ 13%] tests/comparators/test_apk.py::test_zipinfo SKIPPED [ 14%] tests/comparators/test_apk.py::test_android_manifest SKIPPED [ 14%] tests/comparators/test_apk.py::test_apk_metadata_source SKIPPED [ 14%] tests/comparators/test_apk.py::test_skip_undecoded_android_manifest SKIPPED [ 14%] tests/comparators/test_apk.py::test_no_android_manifest SKIPPED [ 15%] tests/comparators/test_archive.py::test_compressed_content_name PASSED [ 15%] tests/comparators/test_berkeley_db.py::test_identification PASSED [ 15%] tests/comparators/test_berkeley_db.py::test_no_differences PASSED [ 15%] tests/comparators/test_berkeley_db.py::test_diff SKIPPED [ 16%] tests/comparators/test_berkeley_db.py::test_compare_non_existing SKIPPED [ 16%] tests/comparators/test_binary.py::test_same_content PASSED [ 16%] tests/comparators/test_binary.py::test_not_same_content PASSED [ 16%] tests/comparators/test_binary.py::test_guess_file_type PASSED [ 16%] tests/comparators/test_binary.py::test_guess_encoding_binary PASSED [ 17%] tests/comparators/test_binary.py::test_guess_encoding_ascii PASSED [ 17%] tests/comparators/test_binary.py::test_guess_encoding_unicode PASSED [ 17%] tests/comparators/test_binary.py::test_guess_encoding_iso8859 PASSED [ 17%] tests/comparators/test_binary.py::test_no_differences_with_xxd PASSED [ 18%] tests/comparators/test_binary.py::test_compare_with_xxd SKIPPED [ 18%] tests/comparators/test_binary.py::test_compare_non_existing_with_xxd PASSED [ 18%] tests/comparators/test_binary.py::test_no_differences_without_xxd PASSED [ 18%] tests/comparators/test_binary.py::test_compare_without_xxd PASSED [ 18%] tests/comparators/test_binary.py::test_with_compare_details PASSED [ 19%] tests/comparators/test_binary.py::test_with_compare_details_and_fallback SKIPPED [ 19%] tests/comparators/test_binary.py::test_with_compare_details_and_no_actual_differences PASSED [ 19%] tests/comparators/test_binary.py::test_with_compare_details_and_failed_process SKIPPED [ 19%] tests/comparators/test_binary.py::test_with_compare_details_and_parsing_error SKIPPED [ 20%] tests/comparators/test_binary.py::test_with_compare_details_and_extraction_error SKIPPED [ 20%] tests/comparators/test_binary.py::test_with_compare_details_and_tool_not_found SKIPPED [ 20%] tests/comparators/test_binary.py::test_compare_two_nonexisting_files PASSED [ 20%] tests/comparators/test_binary.py::test_symlink_to_dir PASSED [ 20%] tests/comparators/test_binwalk.py::test_identification SKIPPED [ 21%] tests/comparators/test_binwalk.py::test_no_differences SKIPPED [ 21%] tests/comparators/test_binwalk.py::test_listing SKIPPED [ 21%] tests/comparators/test_binwalk.py::test_symlink SKIPPED [ 21%] tests/comparators/test_binwalk.py::test_compare_non_existing SKIPPED [ 22%] tests/comparators/test_bzip2.py::test_identification PASSED [ 22%] tests/comparators/test_bzip2.py::test_no_differences PASSED [ 22%] tests/comparators/test_bzip2.py::test_content_source PASSED [ 22%] tests/comparators/test_bzip2.py::test_content_source_without_extension PASSED [ 23%] tests/comparators/test_bzip2.py::test_content_diff PASSED [ 23%] tests/comparators/test_bzip2.py::test_compare_non_existing PASSED [ 23%] tests/comparators/test_cbfs.py::test_identification_using_offset SKIPPED [ 23%] tests/comparators/test_cbfs.py::test_identification_without_offset SKIPPED [ 23%] tests/comparators/test_cbfs.py::test_no_differences SKIPPED [ 24%] tests/comparators/test_cbfs.py::test_listing SKIPPED [ 24%] tests/comparators/test_cbfs.py::test_content SKIPPED [ 24%] tests/comparators/test_cbfs.py::test_compare_non_existing SKIPPED [ 24%] tests/comparators/test_containers.py::test_equal PASSED [ 25%] tests/comparators/test_containers.py::test_different PASSED [ 25%] tests/comparators/test_cpio.py::test_identification PASSED [ 25%] tests/comparators/test_cpio.py::test_no_differences PASSED [ 25%] tests/comparators/test_cpio.py::test_listing PASSED [ 25%] tests/comparators/test_cpio.py::test_symlink PASSED [ 26%] tests/comparators/test_cpio.py::test_compressed_files PASSED [ 26%] tests/comparators/test_cpio.py::test_compare_non_existing PASSED [ 26%] tests/comparators/test_deb.py::test_identification PASSED [ 26%] tests/comparators/test_deb.py::test_no_differences PASSED [ 27%] tests/comparators/test_deb.py::test_metadata PASSED [ 27%] tests/comparators/test_deb.py::test_compressed_files PASSED [ 27%] tests/comparators/test_deb.py::test_identification_of_md5sums_outside_deb PASSED [ 27%] tests/comparators/test_deb.py::test_identification_of_md5sums_in_deb PASSED [ 27%] tests/comparators/test_deb.py::test_md5sums PASSED [ 28%] tests/comparators/test_deb.py::test_identical_files_in_md5sums PASSED [ 28%] tests/comparators/test_deb.py::test_identification_of_data_tar PASSED [ 28%] tests/comparators/test_deb.py::test_skip_comparison_of_known_identical_files PASSED [ 28%] tests/comparators/test_deb.py::test_compare_non_existing PASSED [ 29%] tests/comparators/test_deb.py::test_compare_different_compression PASSED [ 29%] tests/comparators/test_deb.py::test_uncompressed_data_tar PASSED [ 29%] tests/comparators/test_deb.py::test_uncompressed_control_tar PASSED [ 29%] tests/comparators/test_deb.py::test_compare_different_compression_multiple_files PASSED [ 30%] tests/comparators/test_debian.py::test_dot_changes_identification PASSED [ 30%] tests/comparators/test_debian.py::test_dot_changes_invalid SKIPPED [ 30%] tests/comparators/test_debian.py::test_dot_changes_no_differences PASSED [ 30%] tests/comparators/test_debian.py::test_dot_changes_no_differences_exclude_buildinfo SKIPPED [ 30%] tests/comparators/test_debian.py::test_dot_changes_identical_contents_and_different_files SKIPPED [ 31%] tests/comparators/test_debian.py::test_dot_changes_different_contents_and_identical_files SKIPPED [ 31%] tests/comparators/test_debian.py::test_dot_dsc_identification PASSED [ 31%] tests/comparators/test_debian.py::test_dot_dsc_no_associated_tar_gz SKIPPED [ 31%] tests/comparators/test_debian.py::test_dot_dsc_no_differences PASSED [ 32%] tests/comparators/test_debian.py::test_dot_dsc_internal_diff SKIPPED [ 32%] tests/comparators/test_debian.py::test_dot_dsc_compare_non_existing SKIPPED [ 32%] tests/comparators/test_debian.py::test_dot_buildinfo_identification PASSED [ 32%] tests/comparators/test_debian.py::test_dot_buildinfo_no_deb SKIPPED [ 32%] tests/comparators/test_debian.py::test_dot_buildinfo_no_differences PASSED [ 33%] tests/comparators/test_debian.py::test_dot_buildinfo_internal_diff SKIPPED [ 33%] tests/comparators/test_debian.py::test_dot_buildinfo_compare_non_existing SKIPPED [ 33%] tests/comparators/test_debian.py::test_fallback_comparisons PASSED [ 33%] tests/comparators/test_device.py::test_identification PASSED [ 34%] tests/comparators/test_device.py::test_diff SKIPPED [ 34%] tests/comparators/test_device.py::test_diff_reverse SKIPPED [ 34%] tests/comparators/test_dex.py::test_identification PASSED [ 34%] tests/comparators/test_dex.py::test_no_differences PASSED [ 34%] tests/comparators/test_dex.py::test_differences SKIPPED [ 35%] tests/comparators/test_dex.py::test_compare_non_existing SKIPPED [ 35%] tests/comparators/test_directory.py::test_no_differences PASSED [ 35%] tests/comparators/test_directory.py::test_no_differences_with_extra_slash PASSED [ 35%] tests/comparators/test_directory.py::test_content PASSED [ 36%] tests/comparators/test_directory.py::test_stat PASSED [ 36%] tests/comparators/test_directory.py::test_compare_to_file PASSED [ 36%] tests/comparators/test_directory.py::test_compare_to_device PASSED [ 36%] tests/comparators/test_directory.py::test_compare_to_symlink PASSED [ 37%] tests/comparators/test_directory.py::test_compare_to_dangling_symlink PASSED [ 37%] tests/comparators/test_docx.py::test_identification PASSED [ 37%] tests/comparators/test_docx.py::test_no_differences PASSED [ 37%] tests/comparators/test_docx.py::test_diff SKIPPED [ 37%] tests/comparators/test_docx.py::test_compare_non_existing SKIPPED [ 38%] tests/comparators/test_dtb.py::test_identification PASSED [ 38%] tests/comparators/test_dtb.py::test_no_differences PASSED [ 38%] tests/comparators/test_dtb.py::test_diff SKIPPED [ 38%] tests/comparators/test_dtb.py::test_compare_non_existing SKIPPED [ 39%] tests/comparators/test_elf.py::test_obj_identification PASSED [ 39%] tests/comparators/test_elf.py::test_obj_no_differences PASSED [ 39%] tests/comparators/test_elf.py::test_obj_compare_non_existing PASSED [ 39%] tests/comparators/test_elf.py::test_diff FAILED [ 39%] tests/comparators/test_elf.py::test_lib_identification PASSED [ 40%] tests/comparators/test_elf.py::test_lib_no_differences PASSED [ 40%] tests/comparators/test_elf.py::test_lib_differences FAILED [ 40%] tests/comparators/test_elf.py::test_lib_compare_non_existing PASSED [ 40%] tests/comparators/test_elf.py::test_libmix_differences SKIPPED [ 41%] tests/comparators/test_elf.py::test_differences_with_dbgsym SKIPPED [ 41%] tests/comparators/test_elf.py::test_original_gnu_debuglink SKIPPED [ 41%] tests/comparators/test_elf.py::test_ignore_readelf_errors1_identify PASSED [ 41%] tests/comparators/test_elf.py::test_ignore_readelf_errors FAILED [ 41%] tests/comparators/test_epub.py::test_identification PASSED [ 42%] tests/comparators/test_epub.py::test_no_differences PASSED [ 42%] tests/comparators/test_epub.py::test_differences FAILED [ 42%] tests/comparators/test_epub.py::test_compare_non_existing FAILED [ 42%] tests/comparators/test_ffprobe.py::test_identification PASSED [ 43%] tests/comparators/test_ffprobe.py::test_no_differences PASSED [ 43%] tests/comparators/test_ffprobe.py::test_diff SKIPPED [ 43%] tests/comparators/test_ffprobe.py::test_compare_non_existing SKIPPED [ 43%] tests/comparators/test_fontconfig.py::test_identification PASSED [ 44%] tests/comparators/test_fontconfig.py::test_no_differences PASSED [ 44%] tests/comparators/test_fontconfig.py::test_diff PASSED [ 44%] tests/comparators/test_fonts.py::test_identification PASSED [ 44%] tests/comparators/test_fonts.py::test_no_differences PASSED [ 44%] tests/comparators/test_fonts.py::test_diff SKIPPED [ 45%] tests/comparators/test_fonts.py::test_compare_non_existing SKIPPED [ 45%] tests/comparators/test_fsimage.py::test_identification PASSED [ 45%] tests/comparators/test_fsimage.py::test_identification_fat12 PASSED [ 45%] tests/comparators/test_fsimage.py::test_identification_fat16 PASSED [ 46%] tests/comparators/test_fsimage.py::test_identification_fat32 PASSED [ 46%] tests/comparators/test_fsimage.py::test_no_differences SKIPPED [ 46%] tests/comparators/test_fsimage.py::test_differences SKIPPED [ 46%] tests/comparators/test_fsimage.py::test_compare_non_existing SKIPPED [ 46%] tests/comparators/test_fsimage.py::test_differences_fat SKIPPED [ 47%] tests/comparators/test_gettext.py::test_identification PASSED [ 47%] tests/comparators/test_gettext.py::test_no_differences PASSED [ 47%] tests/comparators/test_gettext.py::test_diff SKIPPED [ 47%] tests/comparators/test_gettext.py::test_charsets SKIPPED [ 48%] tests/comparators/test_gettext.py::test_compare_non_existing SKIPPED [ 48%] tests/comparators/test_gif.py::test_identification PASSED [ 48%] tests/comparators/test_gif.py::test_no_differences PASSED [ 48%] tests/comparators/test_gif.py::test_diff SKIPPED [ 48%] tests/comparators/test_gif.py::test_compare_non_existing SKIPPED [ 49%] tests/comparators/test_gif.py::test_has_visuals SKIPPED [ 49%] tests/comparators/test_gif.py::test_no_visuals_different_size SKIPPED [ 49%] tests/comparators/test_git.py::test_identification PASSED [ 49%] tests/comparators/test_git.py::test_no_differences PASSED [ 50%] tests/comparators/test_git.py::test_diff PASSED [ 50%] tests/comparators/test_gnumeric.py::test_identification PASSED [ 50%] tests/comparators/test_gnumeric.py::test_no_differences PASSED [ 50%] tests/comparators/test_gnumeric.py::test_diff SKIPPED [ 51%] tests/comparators/test_gnumeric.py::test_compare_non_existing SKIPPED [ 51%] tests/comparators/test_gzip.py::test_identification PASSED [ 51%] tests/comparators/test_gzip.py::test_fallback_recognizes PASSED [ 51%] tests/comparators/test_gzip.py::test_no_differences PASSED [ 51%] tests/comparators/test_gzip.py::test_metadata PASSED [ 52%] tests/comparators/test_gzip.py::test_content_source PASSED [ 52%] tests/comparators/test_gzip.py::test_content_source_without_extension PASSED [ 52%] tests/comparators/test_gzip.py::test_content_diff PASSED [ 52%] tests/comparators/test_gzip.py::test_compare_non_existing PASSED [ 53%] tests/comparators/test_haskell.py::test_identification SKIPPED [ 53%] tests/comparators/test_haskell.py::test_no_differences PASSED [ 53%] tests/comparators/test_haskell.py::test_diff SKIPPED [ 53%] tests/comparators/test_hdf.py::test_identification SKIPPED [ 53%] tests/comparators/test_hdf.py::test_no_differences SKIPPED [ 54%] tests/comparators/test_hdf.py::test_diff SKIPPED [ 54%] tests/comparators/test_hdf.py::test_compare_non_existing SKIPPED [ 54%] tests/comparators/test_icc.py::test_identification PASSED [ 54%] tests/comparators/test_icc.py::test_no_differences PASSED [ 55%] tests/comparators/test_icc.py::test_diff SKIPPED [ 55%] tests/comparators/test_icc.py::test_compare_non_existing SKIPPED [ 55%] tests/comparators/test_ico_image.py::test_identification PASSED [ 55%] tests/comparators/test_ico_image.py::test_no_differences PASSED [ 55%] tests/comparators/test_ico_image.py::test_diff SKIPPED [ 56%] tests/comparators/test_ico_image.py::test_diff_meta SKIPPED [ 56%] tests/comparators/test_ico_image.py::test_diff_meta2 SKIPPED [ 56%] tests/comparators/test_ico_image.py::test_has_visuals SKIPPED [ 56%] tests/comparators/test_ipk.py::test_identification PASSED [ 57%] tests/comparators/test_ipk.py::test_no_differences PASSED [ 57%] tests/comparators/test_ipk.py::test_metadata PASSED [ 57%] tests/comparators/test_ipk.py::test_compressed_files PASSED [ 57%] tests/comparators/test_ipk.py::test_compare_non_existing PASSED [ 58%] tests/comparators/test_iso9660.py::test_identification PASSED [ 58%] tests/comparators/test_iso9660.py::test_no_differences PASSED [ 58%] tests/comparators/test_iso9660.py::test_iso9660_content PASSED [ 58%] tests/comparators/test_iso9660.py::test_iso9660_rockridge PASSED [ 58%] tests/comparators/test_iso9660.py::test_symlink PASSED [ 59%] tests/comparators/test_iso9660.py::test_compressed_files PASSED [ 59%] tests/comparators/test_iso9660.py::test_compare_non_existing PASSED [ 59%] tests/comparators/test_java.py::test_identification FAILED [ 59%] tests/comparators/test_java.py::test_no_differences PASSED [ 60%] tests/comparators/test_java.py::test_diff_procyon SKIPPED [ 60%] tests/comparators/test_java.py::test_diff_javap SKIPPED [ 60%] tests/comparators/test_java.py::test_compare_non_existing_procyon SKIPPED [ 60%] tests/comparators/test_java.py::test_compare_non_existing_javap SKIPPED [ 60%] tests/comparators/test_javascript.py::test_identification PASSED [ 61%] tests/comparators/test_javascript.py::test_no_differences PASSED [ 61%] tests/comparators/test_javascript.py::test_diff SKIPPED [ 61%] tests/comparators/test_javascript.py::test_compare_non_existing SKIPPED [ 61%] tests/comparators/test_jpeg_image.py::test_identification PASSED [ 62%] tests/comparators/test_jpeg_image.py::test_no_differences PASSED [ 62%] tests/comparators/test_jpeg_image.py::test_diff SKIPPED [ 62%] tests/comparators/test_jpeg_image.py::test_compare_non_existing SKIPPED [ 62%] tests/comparators/test_jpeg_image.py::test_diff_meta SKIPPED [ 62%] tests/comparators/test_jpeg_image.py::test_has_visuals SKIPPED [ 63%] tests/comparators/test_json.py::test_identification PASSED [ 63%] tests/comparators/test_json.py::test_invalid PASSED [ 63%] tests/comparators/test_json.py::test_no_differences PASSED [ 63%] tests/comparators/test_json.py::test_diff PASSED [ 64%] tests/comparators/test_json.py::test_compare_non_existing PASSED [ 64%] tests/comparators/test_json.py::test_ordering_differences PASSED [ 64%] tests/comparators/test_kbx.py::test_identification PASSED [ 64%] tests/comparators/test_kbx.py::test_no_differences PASSED [ 65%] tests/comparators/test_kbx.py::test_diff SKIPPED [ 65%] tests/comparators/test_kbx.py::test_compare_non_existing SKIPPED [ 65%] tests/comparators/test_lz4.py::test_identification PASSED [ 65%] tests/comparators/test_lz4.py::test_no_differences PASSED [ 65%] tests/comparators/test_lz4.py::test_content_source SKIPPED [ 66%] tests/comparators/test_lz4.py::test_content_source_without_extension SKIPPED [ 66%] tests/comparators/test_lz4.py::test_content_diff SKIPPED [ 66%] tests/comparators/test_lz4.py::test_compare_non_existing SKIPPED [ 66%] tests/comparators/test_macho.py::test_obj_identification PASSED [ 67%] tests/comparators/test_macho.py::test_obj_no_differences PASSED [ 67%] tests/comparators/test_macho.py::test_obj_compare_non_existing SKIPPED [ 67%] tests/comparators/test_macho.py::test_diff SKIPPED [ 67%] tests/comparators/test_mono.py::test_identification PASSED [ 67%] tests/comparators/test_mono.py::test_no_differences PASSED [ 68%] tests/comparators/test_mono.py::test_diff SKIPPED [ 68%] tests/comparators/test_mono.py::test_compare_non_existing SKIPPED [ 68%] tests/comparators/test_ocaml.py::test_identification SKIPPED [ 68%] tests/comparators/test_ocaml.py::test_no_differences SKIPPED [ 69%] tests/comparators/test_ocaml.py::test_diff SKIPPED [ 69%] tests/comparators/test_ocaml.py::test_compare_non_existing SKIPPED [ 69%] tests/comparators/test_odt.py::test_identification PASSED [ 69%] tests/comparators/test_odt.py::test_no_differences PASSED [ 69%] tests/comparators/test_odt.py::test_diff SKIPPED [ 70%] tests/comparators/test_odt.py::test_compare_non_existing SKIPPED [ 70%] tests/comparators/test_ogg.py::test_identification PASSED [ 70%] tests/comparators/test_ogg.py::test_no_differences PASSED [ 70%] tests/comparators/test_ogg.py::test_diff SKIPPED [ 71%] tests/comparators/test_ogg.py::test_compare_non_existing SKIPPED [ 71%] tests/comparators/test_openssh_pub_key.py::test_identification PASSED [ 71%] tests/comparators/test_openssh_pub_key.py::test_no_differences PASSED [ 71%] tests/comparators/test_openssh_pub_key.py::test_diff PASSED [ 72%] tests/comparators/test_openssh_pub_key.py::test_compare_non_existing PASSED [ 72%] tests/comparators/test_openssl.py::test_identification PASSED [ 72%] tests/comparators/test_openssl.py::test_no_differences PASSED [ 72%] tests/comparators/test_openssl.py::test_differences PASSED [ 72%] tests/comparators/test_pcap.py::test_identification PASSED [ 73%] tests/comparators/test_pcap.py::test_no_differences PASSED [ 73%] tests/comparators/test_pcap.py::test_diff PASSED [ 73%] tests/comparators/test_pcap.py::test_compare_non_existing PASSED [ 73%] tests/comparators/test_pdf.py::test_identification PASSED [ 74%] tests/comparators/test_pdf.py::test_no_differences PASSED [ 74%] tests/comparators/test_pdf.py::test_differences_found_with_weird_encoding PASSED [ 74%] tests/comparators/test_pdf.py::test_text_diff SKIPPED [ 74%] tests/comparators/test_pdf.py::test_compare_non_existing SKIPPED [ 74%] tests/comparators/test_pdf.py::test_metadata SKIPPED [ 75%] tests/comparators/test_pgp.py::test_identification PASSED [ 75%] tests/comparators/test_pgp.py::test_no_differences PASSED [ 75%] tests/comparators/test_pgp.py::test_diff SKIPPED [ 75%] tests/comparators/test_pgp.py::test_compare_non_existing SKIPPED [ 76%] tests/comparators/test_pgp.py::test_pgp_signature_identification PASSED [ 76%] tests/comparators/test_pgp.py::test_pgp_signature SKIPPED [ 76%] tests/comparators/test_png.py::test_identification PASSED [ 76%] tests/comparators/test_png.py::test_no_differences PASSED [ 76%] tests/comparators/test_png.py::test_diff SKIPPED [ 77%] tests/comparators/test_png.py::test_compare_non_existing SKIPPED [ 77%] tests/comparators/test_png.py::test_has_visuals SKIPPED [ 77%] tests/comparators/test_ppu.py::test_identification SKIPPED [ 77%] tests/comparators/test_ppu.py::test_no_differences PASSED [ 78%] tests/comparators/test_ppu.py::test_diff SKIPPED [ 78%] tests/comparators/test_ppu.py::test_compare_non_existing SKIPPED [ 78%] tests/comparators/test_ps.py::test_identification PASSED [ 78%] tests/comparators/test_ps.py::test_no_differences SKIPPED [ 79%] tests/comparators/test_ps.py::test_internal_diff SKIPPED [ 79%] tests/comparators/test_ps.py::test_text_diff SKIPPED [ 79%] tests/comparators/test_ps.py::test_compare_non_existing SKIPPED [ 79%] tests/comparators/test_rdata.py::test_identification PASSED [ 79%] tests/comparators/test_rdata.py::test_no_differences PASSED [ 80%] tests/comparators/test_rdata.py::test_num_items SKIPPED [ 80%] tests/comparators/test_rdata.py::test_item_rds SKIPPED [ 80%] tests/comparators/test_rlib.py::test_identification PASSED [ 80%] tests/comparators/test_rlib.py::test_no_differences PASSED [ 81%] tests/comparators/test_rlib.py::test_num_items FAILED [ 81%] tests/comparators/test_rlib.py::test_item0_armap FAILED [ 81%] tests/comparators/test_rlib.py::test_item1_elf FAILED [ 81%] tests/comparators/test_rlib.py::test_item2_rust_metadata_bin FAILED [ 81%] tests/comparators/test_rlib.py::test_item3_deflate_llvm_bitcode SKIPPED [ 82%] tests/comparators/test_rlib.py::test_compare_non_existing FAILED [ 82%] tests/comparators/test_rpm.py::test_identification PASSED [ 82%] tests/comparators/test_rpm.py::test_no_differences SKIPPED [ 82%] tests/comparators/test_rpm.py::test_header SKIPPED [ 83%] tests/comparators/test_rpm.py::test_listing SKIPPED [ 83%] tests/comparators/test_rpm.py::test_content SKIPPED [ 83%] tests/comparators/test_rpm.py::test_compare_non_existing SKIPPED [ 83%] tests/comparators/test_rpm.py::test_fallback_comparison SKIPPED [ 83%] tests/comparators/test_sqlite.py::test_identification PASSED [ 84%] tests/comparators/test_sqlite.py::test_no_differences PASSED [ 84%] tests/comparators/test_sqlite.py::test_diff SKIPPED [ 84%] tests/comparators/test_sqlite.py::test_compare_non_existing SKIPPED [ 84%] tests/comparators/test_squashfs.py::test_identification PASSED [ 85%] tests/comparators/test_squashfs.py::test_no_differences PASSED [ 85%] tests/comparators/test_squashfs.py::test_no_warnings PASSED [ 85%] tests/comparators/test_squashfs.py::test_superblock SKIPPED [ 85%] tests/comparators/test_squashfs.py::test_symlink SKIPPED [ 86%] tests/comparators/test_squashfs.py::test_compressed_files SKIPPED [ 86%] tests/comparators/test_squashfs.py::test_compare_non_existing SKIPPED [ 86%] tests/comparators/test_symlink.py::test_destination PASSED [ 86%] tests/comparators/test_tar.py::test_identification PASSED [ 86%] tests/comparators/test_tar.py::test_no_differences PASSED [ 87%] tests/comparators/test_tar.py::test_listing PASSED [ 87%] tests/comparators/test_tar.py::test_symlinks PASSED [ 87%] tests/comparators/test_tar.py::test_text_file PASSED [ 87%] tests/comparators/test_tar.py::test_compare_non_existing PASSED [ 88%] tests/comparators/test_tar.py::test_no_permissions_dir_in_tarball PASSED [ 88%] tests/comparators/test_text.py::test_no_differences PASSED [ 88%] tests/comparators/test_text.py::test_difference_in_ascii PASSED [ 88%] tests/comparators/test_text.py::test_difference_in_unicode PASSED [ 88%] tests/comparators/test_text.py::test_difference_between_iso88591_and_unicode PASSED [ 89%] tests/comparators/test_text.py::test_difference_between_iso88591_and_unicode_only PASSED [ 89%] tests/comparators/test_text.py::test_compare_non_existing PASSED [ 89%] tests/comparators/test_text.py::test_ordering_differences PASSED [ 89%] tests/comparators/test_utils.py::test_tools_missing PASSED [ 90%] tests/comparators/test_utils.py::test_skip_unless_tools_exist_empty SKIPPED [ 90%] tests/comparators/test_utils.py::test_skip_unless_tools_exist_missing SKIPPED [ 90%] tests/comparators/test_utils.py::test_fuzzy_matching SKIPPED [ 90%] tests/comparators/test_utils.py::test_fuzzy_matching_only_once SKIPPED [ 90%] tests/comparators/test_utils.py::test_no_fuzzy_matching SKIPPED [ 91%] tests/comparators/test_utils.py::test_no_fuzzy_matching_new_file SKIPPED [ 91%] tests/comparators/test_utils.py::test_trim_stderr_in_command PASSED [ 91%] tests/comparators/test_wasm.py::test_identification PASSED [ 91%] tests/comparators/test_wasm.py::test_no_differences PASSED [ 92%] tests/comparators/test_wasm.py::test_diff SKIPPED [ 92%] tests/comparators/test_wasm.py::test_compare_non_existing SKIPPED [ 92%] tests/comparators/test_xml.py::test_identification PASSED [ 92%] tests/comparators/test_xml.py::test_invalid PASSED [ 93%] tests/comparators/test_xml.py::test_no_differences PASSED [ 93%] tests/comparators/test_xml.py::test_diff SKIPPED [ 93%] tests/comparators/test_xsb.py::test_identification PASSED [ 93%] tests/comparators/test_xsb.py::test_no_differences PASSED [ 93%] tests/comparators/test_xsb.py::test_diff SKIPPED [ 94%] tests/comparators/test_xsb.py::test_compare_non_existing SKIPPED [ 94%] tests/comparators/test_xz.py::test_identification PASSED [ 94%] tests/comparators/test_xz.py::test_no_differences PASSED [ 94%] tests/comparators/test_xz.py::test_content_source PASSED [ 95%] tests/comparators/test_xz.py::test_content_source_without_extension PASSED [ 95%] tests/comparators/test_xz.py::test_content_diff PASSED [ 95%] tests/comparators/test_xz.py::test_compare_non_existing PASSED [ 95%] tests/comparators/test_zip.py::test_identification PASSED [ 95%] tests/comparators/test_zip.py::test_no_differences PASSED [ 96%] tests/comparators/test_zip.py::test_metadata FAILED [ 96%] tests/comparators/test_zip.py::test_compressed_files FAILED [ 96%] tests/comparators/test_zip.py::test_extra_fields FAILED [ 96%] tests/comparators/test_zip.py::test_compare_non_existing FAILED [ 97%] tests/comparators/test_zip.py::test_mozzip_identification PASSED [ 97%] tests/comparators/test_zip.py::test_mozzip_no_differences PASSED [ 97%] tests/comparators/test_zip.py::test_mozzip_metadata FAILED [ 97%] tests/comparators/test_zip.py::test_mozzip_compressed_files FAILED [ 97%] tests/comparators/test_zip.py::test_mozzip_compare_non_existing FAILED [ 98%] tests/comparators/test_zip.py::test_jmod_identification PASSED [ 98%] tests/comparators/test_zip.py::test_jmod_no_differences PASSED [ 98%] tests/comparators/test_zip.py::test_jmod_metadata FAILED [ 98%] tests/comparators/test_zip.py::test_encrypted PASSED [ 99%] tests/comparators/test_zip.py::test_commented SKIPPED [ 99%] tests/comparators/test_zst.py::test_identification SKIPPED [ 99%] tests/comparators/test_zst.py::test_no_differences SKIPPED [ 99%] tests/comparators/test_zst.py::test_content_source SKIPPED [100%] =================================== FAILURES =================================== __________________________________ test_none ___________________________________ capsys = <_pytest.capture.CaptureFixture object at 0x80914d8d0> def test_none(capsys): > ret, out = run(capsys) tests/test_excludes.py:44: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x80914d8d0>, args = () exc = out = '--- /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test1.tar\n+++ /wrkdirs/usr/ports/s...s of Good and Evil).\n├── dir/link\n│┄ symlink\n│ @@ -1 +1 @@\n│ -destination: broken\n│ +destination: really-broken\n' err = '2020-06-10 09:25:20 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable.\n' def run(capsys, *args): with pytest.raises(SystemExit) as exc: main( args + tuple( os.path.join(os.path.dirname(__file__), "data", x) for x in ("test1.tar", "test2.tar") ) ) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:20 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_excludes.py:38: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. ___________________________________ test_all ___________________________________ capsys = <_pytest.capture.CaptureFixture object at 0x809195c50> def test_all(capsys): > ret, out = run(capsys, "--exclude=*") tests/test_excludes.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x809195c50> args = ('--exclude=*',), exc = , out = '' err = '2020-06-10 09:25:20 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable.\n' def run(capsys, *args): with pytest.raises(SystemExit) as exc: main( args + tuple( os.path.join(os.path.dirname(__file__), "data", x) for x in ("test1.tar", "test2.tar") ) ) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:20 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_excludes.py:38: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. ________________________________ test_specific _________________________________ capsys = <_pytest.capture.CaptureFixture object at 0x809195090> def test_specific(capsys): > ret, out = run(capsys, "--exclude=dir/text") tests/test_excludes.py:59: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x809195090> args = ('--exclude=dir/text',), exc = out = '--- /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test1.tar\n+++ /wrkdirs/usr/ports/s...ink -> really-broken\n├── dir/link\n│┄ symlink\n│ @@ -1 +1 @@\n│ -destination: broken\n│ +destination: really-broken\n' err = '2020-06-10 09:25:20 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable.\n' def run(capsys, *args): with pytest.raises(SystemExit) as exc: main( args + tuple( os.path.join(os.path.dirname(__file__), "data", x) for x in ("test1.tar", "test2.tar") ) ) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:20 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_excludes.py:38: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. ______________________________ test_specific_case ______________________________ capsys = <_pytest.capture.CaptureFixture object at 0x8091caad0> def test_specific_case(capsys): > ret, out = run(capsys, "--exclude=dir/TEXT") tests/test_excludes.py:67: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x8091caad0> args = ('--exclude=dir/TEXT',), exc = out = '--- /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test1.tar\n+++ /wrkdirs/usr/ports/s...s of Good and Evil).\n├── dir/link\n│┄ symlink\n│ @@ -1 +1 @@\n│ -destination: broken\n│ +destination: really-broken\n' err = '2020-06-10 09:25:20 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable.\n' def run(capsys, *args): with pytest.raises(SystemExit) as exc: main( args + tuple( os.path.join(os.path.dirname(__file__), "data", x) for x in ("test1.tar", "test2.tar") ) ) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:20 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_excludes.py:38: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. ________________________________ test_multiple _________________________________ capsys = <_pytest.capture.CaptureFixture object at 0x8091cd5d0> def test_multiple(capsys): > ret, out = run(capsys, "--exclude=dir/text", "--exclude=dir/link") tests/test_excludes.py:75: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x8091cd5d0> args = ('--exclude=dir/text', '--exclude=dir/link') exc = out = '--- /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test1.tar\n+++ /wrkdirs/usr/ports/s...l\n│ +lrwxrwxrwx 0 lunar (1000) lunar (1000) 0 2015-06-29 15:49:41.000000 dir/link -> really-broken\n' err = '2020-06-10 09:25:20 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable.\n' def run(capsys, *args): with pytest.raises(SystemExit) as exc: main( args + tuple( os.path.join(os.path.dirname(__file__), "data", x) for x in ("test1.tar", "test2.tar") ) ) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:20 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_excludes.py:38: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. _________________________________ test_nomatch _________________________________ capsys = <_pytest.capture.CaptureFixture object at 0x8091cdb50> def test_nomatch(capsys): > ret, out = run(capsys, "--exclude=nomatch") tests/test_excludes.py:83: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x8091cdb50> args = ('--exclude=nomatch',), exc = out = '--- /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test1.tar\n+++ /wrkdirs/usr/ports/s...s of Good and Evil).\n├── dir/link\n│┄ symlink\n│ @@ -1 +1 @@\n│ -destination: broken\n│ +destination: really-broken\n' err = '2020-06-10 09:25:20 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable.\n' def run(capsys, *args): with pytest.raises(SystemExit) as exc: main( args + tuple( os.path.join(os.path.dirname(__file__), "data", x) for x in ("test1.tar", "test2.tar") ) ) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:20 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_excludes.py:38: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. ________________________________ test_wildcard _________________________________ capsys = <_pytest.capture.CaptureFixture object at 0x809b8a390> def test_wildcard(capsys): > ret, out = run(capsys, "--exclude=*link") tests/test_excludes.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x809b8a390> args = ('--exclude=*link',), exc = out = '--- /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test1.tar\n+++ /wrkdirs/usr/ports/s...n│ +bonorum et malorum (On the Ends of Goods and Evils, or alternatively [About]\n│ +The Purposes of Good and Evil).\n' err = '2020-06-10 09:25:21 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable.\n' def run(capsys, *args): with pytest.raises(SystemExit) as exc: main( args + tuple( os.path.join(os.path.dirname(__file__), "data", x) for x in ("test1.tar", "test2.tar") ) ) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:21 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_excludes.py:38: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. _____________________________ test_no_differences ______________________________ capsys = <_pytest.capture.CaptureFixture object at 0x809ba4950> def test_no_differences(capsys): ret, out, err = run(capsys, TEST_TAR1_PATH, TEST_TAR1_PATH) assert ret == 0 > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:21 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_main.py:117: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. _______________________ test_no_differences_directories ________________________ capsys = <_pytest.capture.CaptureFixture object at 0x809bb3b10> tmpdir = local('/tmp/pytest-of-root/pytest-2/test_no_differences_directorie0') def test_no_differences_directories(capsys, tmpdir): def create_dir(x): path = str(tmpdir.mkdir(x)) os.utime(path, (0, 0)) # Ensure consistent mtime return path ret, out, err = run(capsys, create_dir("a"), create_dir("b")) assert ret == 0 # if getfacl is not available there will be a warning message on stderr # if it's available then err should be empty > assert err == "" or "getfacl" in err E assert ('2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:21 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. or 'getfacl' in '2020-06-10 09:25:21 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable.\n') tests/test_main.py:132: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. ________________________________ test_profiling ________________________________ capsys = <_pytest.capture.CaptureFixture object at 0x809bb9d90> def test_profiling(capsys): ret, out, err = run(capsys, TEST_TAR1_PATH, TEST_TAR1_PATH, "--profile=-") assert ret == 0 assert "Profiling output for" in out > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:21 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_main.py:160: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. __________________________ test_non_unicode_filename ___________________________ capsys = <_pytest.capture.CaptureFixture object at 0x809b9c9d0> tmpdir = local('/tmp/pytest-of-root/pytest-2/test_non_unicode_filename0') def test_non_unicode_filename(capsys, tmpdir): # Bug reference: https://bugs.debian.org/898022 path = str(tmpdir.dirpath()).encode("utf-8") a = os.path.join(path, b"\xf0\x28\x8c\x28") b = os.path.join(path, b"\xf0\x28\x8c\x29") with open(a, "w"), open(b, "w"): pass # sys.argv does pretty much this decoding to arguments files = [x.decode("utf-8", errors="surrogateescape") for x in (a, b)] ret, out, err = run(capsys, *files) assert ret == 0 > assert out == err == "" E assert '' == '2020-06-10 09:25:21 W: diff...h" module is unavailable.\n' E + 2020-06-10 09:25:21 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_main.py:176: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. _________________________ test_text_option_is_default __________________________ capsys = <_pytest.capture.CaptureFixture object at 0x809ba4090> def test_text_option_is_default(capsys): > out = run(capsys) tests/test_presenters.py:84: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x809ba4090> pair = ('test1.tar', 'test2.tar'), args = () exc = out = '--- test1.tar\n+++ test2.tar\n├── file list\n│ @@ -1,4 +1,4 @@\n│ -drwxr-xr-x 0 lunar (1000) lunar (1000) ...s of Good and Evil).\n├── dir/link\n│┄ symlink\n│ @@ -1 +1 @@\n│ -destination: broken\n│ +destination: really-broken\n' def run(capsys, *args, pair=("test1.tar", "test2.tar")): with pytest.raises(SystemExit) as exc, cwd_data(): main(args + pair) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:21 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_presenters.py:50: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. _________________________ test_text_proper_indentation _________________________ capsys = <_pytest.capture.CaptureFixture object at 0x8091c7bd0> @skip_unless_file_version_is_at_least("5.37") def test_text_proper_indentation(capsys): > out = run(capsys, pair=("archive1.tar", "archive2.tar")) tests/test_presenters.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x8091c7bd0> pair = ('archive1.tar', 'archive2.tar'), args = () exc = out = '--- archive1.tar\n+++ archive2.tar\n├── file list\n│ @@ -1 +1 @@\n│ --rw-r--r-- 0 lamby (1000) lamby (1000)...st modified: Sun Mar 19 22:27:42 2017, max compression, from Unix\n│ ├── compressed\n│ │ @@ -1 +1 @@\n│ │ -a\n│ │ +b\n' def run(capsys, *args, pair=("test1.tar", "test2.tar")): with pytest.raises(SystemExit) as exc, cwd_data(): main(args + pair) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:21 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_presenters.py:50: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. ____________________________ test_text_option_color ____________________________ capsys = <_pytest.capture.CaptureFixture object at 0x80916ee10> def test_text_option_color(capsys): > out = run(capsys, "--text-color=always") tests/test_presenters.py:97: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x80916ee10> pair = ('test1.tar', 'test2.tar'), args = ('--text-color=always',) exc = out = '--- test1.tar\n+++ test2.tar\n├── file list\n│ \x1b[0;36m@@ -1,4 +1,4 @@\x1b[0m\n│ \x1b[31m-drwxr-xr-x 0 lunar ...n│ \x1b[0;36m@@ -1 +1 @@\x1b[0m\n│ \x1b[31m-destination: broken\x1b[0m\n│ \x1b[32m+destination: really-broken\x1b[0m\n' def run(capsys, *args, pair=("test1.tar", "test2.tar")): with pytest.raises(SystemExit) as exc, cwd_data(): main(args + pair) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:21 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_presenters.py:50: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. __________________________ test_text_option_with_file __________________________ tmpdir = local('/tmp/pytest-of-root/pytest-2/test_text_option_with_file0') capsys = <_pytest.capture.CaptureFixture object at 0x809bbf750> def test_text_option_with_file(tmpdir, capsys): report_path = str(tmpdir.join("report.txt")) > out = run(capsys, "--text", report_path) tests/test_presenters.py:105: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x809bbf750> pair = ('test1.tar', 'test2.tar') args = ('--text', '/tmp/pytest-of-root/pytest-2/test_text_option_with_file0/report.txt') exc = , out = '' def run(capsys, *args, pair=("test1.tar", "test2.tar")): with pytest.raises(SystemExit) as exc, cwd_data(): main(args + pair) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:21 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_presenters.py:50: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. _________________________ test_text_option_with_stdout _________________________ capsys = <_pytest.capture.CaptureFixture object at 0x809baff10> def test_text_option_with_stdout(capsys): > out = run(capsys, "--text", "-") tests/test_presenters.py:114: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x809baff10> pair = ('test1.tar', 'test2.tar'), args = ('--text', '-') exc = out = '--- test1.tar\n+++ test2.tar\n├── file list\n│ @@ -1,4 +1,4 @@\n│ -drwxr-xr-x 0 lunar (1000) lunar (1000) ...s of Good and Evil).\n├── dir/link\n│┄ symlink\n│ @@ -1 +1 @@\n│ -destination: broken\n│ +destination: really-broken\n' def run(capsys, *args, pair=("test1.tar", "test2.tar")): with pytest.raises(SystemExit) as exc, cwd_data(): main(args + pair) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:21 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_presenters.py:50: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. ________________________________ test_markdown _________________________________ capsys = <_pytest.capture.CaptureFixture object at 0x809157a10> def test_markdown(capsys): > out = run(capsys, "--markdown", "-") tests/test_presenters.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x809157a10> pair = ('test1.tar', 'test2.tar'), args = ('--markdown', '-') exc = out = '# Comparing test1.tar & test2.tar\n\n## file list\n\n @@ -1,4 +1,4 @@\n -drwxr-xr-x 0 lunar (1000) lunar ...and Evil).\n\n## dir/link\n\nsymlink\n\n @@ -1 +1 @@\n -destination: broken\n +destination: really-broken\n\n' def run(capsys, *args, pair=("test1.tar", "test2.tar")): with pytest.raises(SystemExit) as exc, cwd_data(): main(args + pair) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:22 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_presenters.py:50: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. ____________________________ test_restructuredtext _____________________________ capsys = <_pytest.capture.CaptureFixture object at 0x8091cd190> def test_restructuredtext(capsys): > out = run(capsys, "--restructured-text", "-") tests/test_presenters.py:126: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x8091cd190> pair = ('test1.tar', 'test2.tar'), args = ('--restructured-text', '-') exc = out = '===============================\nComparing test1.tar & test2.tar\n===============================\n\n---------\nfile ...ndir/link\n--------\n\n\nsymlink\n::\n\n @@ -1 +1 @@\n -destination: broken\n +destination: really-broken\n\n' def run(capsys, *args, pair=("test1.tar", "test2.tar")): with pytest.raises(SystemExit) as exc, cwd_data(): main(args + pair) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:22 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_presenters.py:50: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. __________________________________ test_json ___________________________________ capsys = <_pytest.capture.CaptureFixture object at 0x809bb95d0> def test_json(capsys): > out = run(capsys, "--json", "-") tests/test_presenters.py:132: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x809bb95d0> pair = ('test1.tar', 'test2.tar'), args = ('--json', '-') exc = out = '{"diffoscope-json-version": 1, "source1": "test1.tar", "source2": "test2.tar", "unified_diff": null, "details": [{"so...", "comments": ["symlink"], "unified_diff": "@@ -1 +1 @@\\n-destination: broken\\n+destination: really-broken\\n"}]}\n' def run(capsys, *args, pair=("test1.tar", "test2.tar")): with pytest.raises(SystemExit) as exc, cwd_data(): main(args + pair) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:22 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_presenters.py:50: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. ____________________________ test_no_report_option _____________________________ capsys = <_pytest.capture.CaptureFixture object at 0x8091f5590> def test_no_report_option(capsys): > out = run(capsys) tests/test_presenters.py:138: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x8091f5590> pair = ('test1.tar', 'test2.tar'), args = () exc = out = '--- test1.tar\n+++ test2.tar\n├── file list\n│ @@ -1,4 +1,4 @@\n│ -drwxr-xr-x 0 lunar (1000) lunar (1000) ...s of Good and Evil).\n├── dir/link\n│┄ symlink\n│ @@ -1 +1 @@\n│ -destination: broken\n│ +destination: really-broken\n' def run(capsys, *args, pair=("test1.tar", "test2.tar")): with pytest.raises(SystemExit) as exc, cwd_data(): main(args + pair) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:22 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_presenters.py:50: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. __________________________ test_html_option_with_file __________________________ tmpdir = local('/tmp/pytest-of-root/pytest-2/test_html_option_with_file0') capsys = <_pytest.capture.CaptureFixture object at 0x80a7a8ad0> def test_html_option_with_file(tmpdir, capsys): report_path = str(tmpdir.join("report.html")) > out = run(capsys, "--html", report_path) tests/test_presenters.py:146: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x80a7a8ad0> pair = ('test1.tar', 'test2.tar') args = ('--html', '/tmp/pytest-of-root/pytest-2/test_html_option_with_file0/report.html') exc = , out = '' def run(capsys, *args, pair=("test1.tar", "test2.tar")): with pytest.raises(SystemExit) as exc, cwd_data(): main(args + pair) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:22 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_presenters.py:50: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. _____________________________ test_htmldir_option ______________________________ tmpdir = local('/tmp/pytest-of-root/pytest-2/test_htmldir_option0') capsys = <_pytest.capture.CaptureFixture object at 0x8091950d0> def test_htmldir_option(tmpdir, capsys): html_dir = os.path.join(str(tmpdir), "target") > out = run(capsys, "--html-dir", html_dir, "--jquery", "disable") tests/test_presenters.py:169: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x8091950d0> pair = ('test1.tar', 'test2.tar') args = ('--html-dir', '/tmp/pytest-of-root/pytest-2/test_htmldir_option0/target', '--jquery', 'disable') exc = , out = '' def run(capsys, *args, pair=("test1.tar", "test2.tar")): with pytest.raises(SystemExit) as exc, cwd_data(): main(args + pair) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:22 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_presenters.py:50: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. _________________________ test_html_option_with_stdout _________________________ capsys = <_pytest.capture.CaptureFixture object at 0x80a7ca890> def test_html_option_with_stdout(capsys): > body = extract_body(run(capsys, "--html", "-")) tests/test_presenters.py:181: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x80a7ca890> pair = ('test1.tar', 'test2.tar'), args = ('--html', '-') exc = out = '\n\n\n \n \ndiffoscope 146\n\n\n\n\n' def run(capsys, *args, pair=("test1.tar", "test2.tar")): with pytest.raises(SystemExit) as exc, cwd_data(): main(args + pair) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:22 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_presenters.py:50: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. _________________________ test_html_regression_875281 __________________________ tmpdir = local('/tmp/pytest-of-root/pytest-2/test_html_regression_8752810') capsys = <_pytest.capture.CaptureFixture object at 0x80a7991d0> def test_html_regression_875281(tmpdir, capsys): diff_path = expand_collapsed_json(tmpdir, "debian-bug-875281") report_path = str(tmpdir.join("report.html")) out = run( capsys, "--html", report_path, "--max-page-size=5000", > pair=(diff_path,), ) tests/test_presenters.py:194: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x80a7991d0> pair = ('/tmp/pytest-of-root/pytest-2/test_html_regression_8752810/debian-bug-875281.diff.json',) args = ('--html', '/tmp/pytest-of-root/pytest-2/test_html_regression_8752810/report.html', '--max-page-size=5000') exc = , out = '' def run(capsys, *args, pair=("test1.tar", "test2.tar")): with pytest.raises(SystemExit) as exc, cwd_data(): main(args + pair) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:22 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_presenters.py:50: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. ________________________________ test_status_fd ________________________________ capsys = <_pytest.capture.CaptureFixture object at 0x809157b50> def test_status_fd(capsys): ProgressManager().register(StatusFD(sys.stderr)) ret, _, err = run(capsys, TEST_TAR1_PATH, TEST_TAR2_PATH) assert ret == 1 # Parse lines and ensure we emitted at least one line > output = [json.loads(x) for x in err.splitlines()] tests/test_progress.py:82: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_progress.py:82: in output = [json.loads(x) for x in err.splitlines()] /usr/local/lib/python3.7/json/__init__.py:348: in loads return _default_decoder.decode(s) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = s = '2020-06-10 09:25:23 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable.' _w = def decode(self, s, _w=WHITESPACE.match): """Return the Python representation of ``s`` (a ``str`` instance containing a JSON document). """ obj, end = self.raw_decode(s, idx=_w(s, 0).end()) end = _w(s, end).end() if end != len(s): > raise JSONDecodeError("Extra data", s, end) E json.decoder.JSONDecodeError: Extra data: line 1 column 5 (char 4) /usr/local/lib/python3.7/json/decoder.py:340: JSONDecodeError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. __________________________________ test_json ___________________________________ capsys = <_pytest.capture.CaptureFixture object at 0x80a7ca710> def test_json(capsys): > run_read_write(capsys, "output.json", "--json", "-") tests/test_readers.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ capsys = <_pytest.capture.CaptureFixture object at 0x80a7ca710> diff = 'output.json', args = ('--json', '-') exc = out = '{"diffoscope-json-version": 1, "source1": "test1.tar", "source2": "test2.tar", "unified_diff": null, "details": [{"so...", "comments": ["symlink"], "unified_diff": "@@ -1 +1 @@\\n-destination: broken\\n+destination: really-broken\\n"}]}\n' err = '2020-06-10 09:25:25 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable.\n' def run_read_write(capsys, diff, *args): with pytest.raises(SystemExit) as exc, cwd_data(): main(args + (diff,)) out, err = capsys.readouterr() > assert err == "" E assert '2020-06-10 0...navailable.\n' == '' E - 2020-06-10 09:25:25 W: diffoscope.main: Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. tests/test_readers.py:36: AssertionError ------------------------------ Captured log call ------------------------------- WARNING diffoscope.main:main.py:663 Fuzzy-matching is currently disabled as the "tlsh" module is unavailable. __________________________________ test_diff ___________________________________ obj_differences = [] @skip_unless_tools_exist("readelf") @skip_if_tool_version_is("readelf", readelf_version, "2.29") @skip_if_binutils_does_not_support_x86() def test_diff(obj_differences): assert len(obj_differences) == 1 expected_diff = get_data("elf_obj_expected_diff") > assert obj_differences[0].unified_diff == expected_diff E AssertionError: assert '@@ -2,10 +2,... \tretq \n' == '@@ -3,10 +3,1... \tretq \n' E - @@ -2,10 +2,10 @@ E ? ^ ^ E + @@ -3,10 +3,10 @@ E ? ^ ^ E E Disassembly of section .text: E ... E E ...Full output truncated (9 lines hidden), use '-vv' to show tests/comparators/test_elf.py:95: AssertionError _____________________________ test_lib_differences _____________________________ lib_differences = [, ]>] @skip_unless_tools_exist("readelf", "objdump") @skip_if_tool_version_is("readelf", readelf_version, "2.29") @skip_if_binutils_does_not_support_x86() def test_lib_differences(lib_differences): assert len(lib_differences) == 2 assert lib_differences[0].source1 == "file list" expected_metadata_diff = get_data("elf_lib_metadata_expected_diff") assert lib_differences[0].unified_diff == expected_metadata_diff assert "objdump" in lib_differences[1].details[0].source1 expected_objdump_diff = get_data("elf_lib_objdump_expected_diff") > assert lib_differences[1].details[0].unified_diff == expected_objdump_diff E AssertionError: assert '@@ -2,10 +2,... \tretq \n' == '@@ -3,10 +3,1... \tretq \n' E - @@ -2,10 +2,10 @@ E ? ^ ^ E + @@ -3,10 +3,10 @@ E ? ^ ^ E E Disassembly of section .text: E ... E E ...Full output truncated (9 lines hidden), use '-vv' to show tests/comparators/test_elf.py:136: AssertionError __________________________ test_ignore_readelf_errors __________________________ ignore_readelf_errors_differences = [] @skip_unless_tools_exist("readelf") @skip_if_tool_version_is("readelf", readelf_version, "2.29") @skip_if_binutils_does_not_support_x86() def test_ignore_readelf_errors(ignore_readelf_errors_differences): expected_diff = get_data("ignore_readelf_errors_expected_diff") > assert ignore_readelf_errors_differences[0].unified_diff == expected_diff E IndexError: list index out of range tests/comparators/test_elf.py:267: IndexError _______________________________ test_differences _______________________________ differences = [] @skip_unless_tools_exist("zipinfo") def test_differences(differences): > assert differences[0].source1 == "zipinfo {}" E IndexError: list index out of range tests/comparators/test_epub.py:51: IndexError __________________________ test_compare_non_existing ___________________________ monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x80a893950> epub1 = < /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test1.epub> @skip_unless_tools_exist("zipinfo") def test_compare_non_existing(monkeypatch, epub1): monkeypatch.setattr(Config(), "new_file", True) difference = epub1.compare(MissingFile("/nonexisting", epub1)) assert difference.source2 == "/nonexisting" > assert difference.details[-1].source2 == "/dev/null" E IndexError: list index out of range tests/comparators/test_epub.py:68: IndexError _____________________________ test_identification ______________________________ class1 = < /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/Test1.class> def test_identification(class1): > assert isinstance(class1, ClassFile) E AssertionError: assert False E + where False = isinstance(< /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/Test1.class>, ClassFile) tests/comparators/test_java.py:45: AssertionError ________________________________ test_num_items ________________________________ differences = [] @skip_unless_tools_exist("nm") def test_num_items(differences): > assert len(differences) == 4 E assert 0 == 4 E -0 E +4 tests/comparators/test_rlib.py:85: AssertionError _______________________________ test_item0_armap _______________________________ differences = [] @skip_unless_tools_exist("nm") @skip_if_binutils_does_not_support_x86() def test_item0_armap(differences): > assert differences[0].source1 == "nm -s {}" E IndexError: list index out of range tests/comparators/test_rlib.py:91: IndexError ________________________________ test_item1_elf ________________________________ differences = [] @skip_unless_tools_exist("nm") @skip_if_binutils_does_not_support_x86() def test_item1_elf(differences): > assert differences[1].source1 == "alloc_system-d16b8f0e.0.o" E IndexError: list index out of range tests/comparators/test_rlib.py:100: IndexError _________________________ test_item2_rust_metadata_bin _________________________ differences = [] @skip_unless_tools_exist("nm") def test_item2_rust_metadata_bin(differences): > assert differences[2].source1 == "rust.metadata.bin" E IndexError: list index out of range tests/comparators/test_rlib.py:108: IndexError __________________________ test_compare_non_existing ___________________________ monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x80a9a6150> rlib1 = < /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test1.rlib> @skip_unless_tools_exist("nm") def test_compare_non_existing(monkeypatch, rlib1): > assert_non_existing(monkeypatch, rlib1) tests/comparators/test_rlib.py:126: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x80a9a6150> fixture = < /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test1.rlib> has_null_source = True, 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, "Did not get patched" difference = fixture.compare(MissingFile("/nonexisting", fixture)) assert difference.source2 == "/nonexisting" > assert not has_details or len(difference.details) > 0 E AssertionError tests/utils/nonexisting.py:35: AssertionError ________________________________ test_metadata _________________________________ differences = [] @skip_unless_tools_exist("zipinfo") def test_metadata(differences): expected_diff = get_data("zip_zipinfo_expected_diff") > assert differences[0].unified_diff == expected_diff E IndexError: list index out of range tests/comparators/test_zip.py:65: IndexError ____________________________ test_compressed_files _____________________________ differences = [] @skip_unless_tools_exist("zipinfo") def test_compressed_files(differences): > assert differences[1].source1 == "dir/text" E IndexError: list index out of range tests/comparators/test_zip.py:70: IndexError ______________________________ test_extra_fields _______________________________ differences2 = [] @skip_unless_tools_exist("zipinfo", "bsdtar") def test_extra_fields(differences2): expected_diff = get_data("zip_bsdtar_expected_diff") > assert differences2[0].unified_diff == expected_diff E IndexError: list index out of range tests/comparators/test_zip.py:79: IndexError __________________________ test_compare_non_existing ___________________________ monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x80ab03e90> zip1 = < /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test1.zip> @skip_unless_tools_exist("zipinfo") def test_compare_non_existing(monkeypatch, zip1): > assert_non_existing(monkeypatch, zip1) tests/comparators/test_zip.py:84: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x80ab03e90> fixture = < /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test1.zip> has_null_source = True, 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, "Did not get patched" difference = fixture.compare(MissingFile("/nonexisting", fixture)) assert difference.source2 == "/nonexisting" > assert not has_details or len(difference.details) > 0 E AssertionError tests/utils/nonexisting.py:35: AssertionError _____________________________ test_mozzip_metadata _____________________________ mozzip_differences = [] mozzip1 = < /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test1.mozzip> mozzip2 = < /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test2.mozzip> @skip_unless_tools_exist("zipinfo") def test_mozzip_metadata(mozzip_differences, mozzip1, mozzip2): expected_diff = get_data("mozzip_zipinfo_expected_diff") > assert mozzip_differences[0].unified_diff == expected_diff E IndexError: list index out of range tests/comparators/test_zip.py:104: IndexError _________________________ test_mozzip_compressed_files _________________________ mozzip_differences = [] @skip_unless_tools_exist("zipinfo") def test_mozzip_compressed_files(mozzip_differences): > assert mozzip_differences[-1].source1 == "dir/text" E IndexError: list index out of range tests/comparators/test_zip.py:109: IndexError _______________________ test_mozzip_compare_non_existing _______________________ monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x80ab40550> mozzip1 = < /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test1.mozzip> @skip_unless_tools_exist("zipinfo") def test_mozzip_compare_non_existing(monkeypatch, mozzip1): > assert_non_existing(monkeypatch, mozzip1) tests/comparators/test_zip.py:117: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x80ab40550> fixture = < /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test1.mozzip> has_null_source = True, 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, "Did not get patched" difference = fixture.compare(MissingFile("/nonexisting", fixture)) assert difference.source2 == "/nonexisting" > assert not has_details or len(difference.details) > 0 E AssertionError tests/utils/nonexisting.py:35: AssertionError ______________________________ test_jmod_metadata ______________________________ jmod_differences = [] jmod1 = < /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test1.jmod> jmod2 = < /wrkdirs/usr/ports/sysutils/py-diffoscope/work-py37/diffoscope-146/tests/data/test2.jmod> @skip_unless_tools_exist("zipinfo") def test_jmod_metadata(jmod_differences, jmod1, jmod2): expected_diff = get_data("jmod_zipinfo_expected_diff") > assert jmod_differences[0].unified_diff == expected_diff E IndexError: list index out of range tests/comparators/test_zip.py:137: IndexError =========================== short test summary info ============================ SKIPPED [1] tests/test_presenters.py:154: requires compare and convert and sng SKIPPED [1] tests/test_progress.py:66: requires progressbar Python module SKIPPED [1] tests/test_source.py:244: requires black SKIPPED [1] tests/comparators/test_android.py:52: requires abootimg SKIPPED [1] tests/comparators/test_android.py:59: requires abootimg SKIPPED [1] tests/comparators/test_apk.py:63: requires apktool and zipinfo (try installing unzip) SKIPPED [1] tests/comparators/test_apk.py:68: requires apktool and zipinfo (try installing unzip) SKIPPED [1] tests/comparators/test_apk.py:76: requires Python 3.8 or higher SKIPPED [1] tests/comparators/test_apk.py:88: requires apktool and zipinfo (try installing unzip) SKIPPED [1] tests/comparators/test_apk.py:94: requires apktool and zipinfo (try installing unzip) SKIPPED [1] tests/comparators/test_apk.py:113: requires apktool and zipinfo (try installing unzip) SKIPPED [1] tests/comparators/test_berkeley_db.py:46: requires db_dump SKIPPED [1] tests/comparators/test_berkeley_db.py:52: requires db_dump SKIPPED [1] tests/comparators/test_binary.py:84: requires xxd (try installing vim | vim-lite) SKIPPED [1] tests/comparators/test_binary.py:128: requires xxd (try installing vim | vim-lite) SKIPPED [1] tests/comparators/test_binary.py:154: requires xxd (try installing vim | vim-lite) SKIPPED [1] tests/comparators/test_binary.py:170: requires xxd (try installing vim | vim-lite) SKIPPED [1] tests/comparators/test_binary.py:185: requires xxd (try installing vim | vim-lite) SKIPPED [1] tests/comparators/test_binary.py:200: requires distro Python module SKIPPED [1] tests/comparators/test_binwalk.py:32: requires binwalk Python module SKIPPED [1] tests/comparators/test_binwalk.py:38: requires binwalk Python module SKIPPED [1] tests/comparators/test_binwalk.py:49: requires binwalk Python module SKIPPED [1] tests/comparators/test_binwalk.py:61: requires binwalk Python module SKIPPED [1] tests/comparators/test_binwalk.py:71: requires binwalk Python module SKIPPED [1] tests/comparators/test_cbfs.py:101: requires cbfstool SKIPPED [1] tests/comparators/test_cbfs.py:106: requires cbfstool SKIPPED [1] tests/comparators/test_cbfs.py:111: requires cbfstool SKIPPED [1] tests/comparators/test_cbfs.py:123: requires cbfstool SKIPPED [1] tests/comparators/test_cbfs.py:135: requires cbfstool SKIPPED [1] tests/comparators/test_cbfs.py:143: requires cbfstool SKIPPED [1] tests/comparators/test_debian.py:110: requires debian.deb822 Python module SKIPPED [1] tests/comparators/test_debian.py:156: requires debian.deb822 Python module SKIPPED [1] tests/comparators/test_debian.py:164: requires debian.deb822 Python module SKIPPED [1] tests/comparators/test_debian.py:180: requires debian.deb822 Python module SKIPPED [1] tests/comparators/test_debian.py:232: requires debian.deb822 Python module SKIPPED [1] tests/comparators/test_debian.py:253: requires debian.deb822 Python module SKIPPED [1] tests/comparators/test_debian.py:258: requires debian.deb822 Python module SKIPPED [1] tests/comparators/test_debian.py:290: requires debian.deb822 Python module SKIPPED [1] tests/comparators/test_debian.py:311: requires debian.deb822 Python module SKIPPED [1] tests/comparators/test_debian.py:316: requires debian.deb822 Python module SKIPPED [1] tests/comparators/test_device.py:53: requires xxd (try installing vim | vim-lite) SKIPPED [1] tests/comparators/test_device.py:62: requires xxd (try installing vim | vim-lite) SKIPPED [1] tests/comparators/test_dex.py:67: requires enjarify SKIPPED [1] tests/comparators/test_dex.py:84: requires enjarify and zipinfo (try installing unzip) and javap SKIPPED [1] tests/comparators/test_docx.py:46: requires docx2txt SKIPPED [1] tests/comparators/test_docx.py:52: requires docx2txt SKIPPED [1] tests/comparators/test_dtb.py:65: requires fdtdump SKIPPED [1] tests/comparators/test_dtb.py:71: requires fdtdump SKIPPED [1] tests/comparators/test_elf.py:168: requires xxd (try installing vim | vim-lite) SKIPPED [1] tests/comparators/test_elf.py:223: requires debian.deb822 Python module SKIPPED [1] tests/comparators/test_elf.py:237: requires debian.deb822 Python module SKIPPED [1] tests/comparators/test_ffprobe.py:46: requires ffprobe SKIPPED [1] tests/comparators/test_ffprobe.py:52: requires ffprobe SKIPPED [1] tests/comparators/test_fonts.py:49: requires showttf SKIPPED [1] tests/comparators/test_fonts.py:55: requires showttf SKIPPED [1] tests/comparators/test_fsimage.py:77: requires guestfs Python module SKIPPED [1] tests/comparators/test_fsimage.py:89: requires guestfs Python module SKIPPED [1] tests/comparators/test_fsimage.py:109: requires guestfs Python module SKIPPED [1] tests/comparators/test_fsimage.py:123: requires guestfs Python module SKIPPED [1] tests/comparators/test_gettext.py:50: requires msgunfmt (try installing gettext-tools) SKIPPED [1] tests/comparators/test_gettext.py:60: requires msgunfmt (try installing gettext-tools) SKIPPED [1] tests/comparators/test_gettext.py:69: requires msgunfmt (try installing gettext-tools) SKIPPED [1] tests/comparators/test_gif.py:49: requires gifbuild SKIPPED [1] tests/comparators/test_gif.py:55: requires gifbuild SKIPPED [1] tests/comparators/test_gif.py:60: requires gifbuild and compose and convert and identify SKIPPED [1] tests/comparators/test_gif.py:70: requires gifbuild and compose and convert and identify SKIPPED [1] tests/comparators/test_gnumeric.py:46: requires ssconvert SKIPPED [1] tests/comparators/test_gnumeric.py:52: requires ssconvert SKIPPED [1] tests/comparators/test_haskell.py:33: requires ghc (try installing ghc) SKIPPED [1] tests/comparators/test_haskell.py:50: requires ghc (try installing ghc) SKIPPED [1] tests/comparators/test_hdf.py:57: requires h5py Python module SKIPPED [1] tests/comparators/test_hdf.py:62: requires h5py Python module SKIPPED [1] tests/comparators/test_hdf.py:73: requires h5py Python module SKIPPED [1] tests/comparators/test_hdf.py:84: requires h5py Python module SKIPPED [1] tests/comparators/test_icc.py:78: requires cd-iccdump (try installing colord) SKIPPED [1] tests/comparators/test_icc.py:90: requires cd-iccdump (try installing colord) SKIPPED [1] tests/comparators/test_ico_image.py:54: requires img2txt (try installing libcaca) and convert SKIPPED [1] tests/comparators/test_ico_image.py:65: requires identify SKIPPED [1] tests/comparators/test_ico_image.py:72: requires identify SKIPPED [1] tests/comparators/test_ico_image.py:79: requires img2txt (try installing libcaca) and compose and convert and identify SKIPPED [1] tests/comparators/test_java.py:78: requires procyon SKIPPED [1] tests/comparators/test_java.py:83: requires javap SKIPPED [1] tests/comparators/test_java.py:88: requires procyon SKIPPED [1] tests/comparators/test_java.py:93: requires javap SKIPPED [1] tests/comparators/test_javascript.py:49: requires js-beautify SKIPPED [1] tests/comparators/test_javascript.py:55: requires js-beautify SKIPPED [1] tests/comparators/test_jpeg_image.py:60: requires img2txt (try installing libcaca) and identify SKIPPED [1] tests/comparators/test_jpeg_image.py:66: requires img2txt (try installing libcaca) and identify SKIPPED [1] tests/comparators/test_jpeg_image.py:79: requires identify SKIPPED [1] tests/comparators/test_jpeg_image.py:86: requires img2txt (try installing libcaca) and compose and convert and identify SKIPPED [1] tests/comparators/test_kbx.py:46: requires kbxutil SKIPPED [1] tests/comparators/test_kbx.py:52: requires kbxutil SKIPPED [1] tests/comparators/test_lz4.py:49: requires lz4 (try installing lz4) SKIPPED [1] tests/comparators/test_lz4.py:55: requires lz4 (try installing lz4) SKIPPED [1] tests/comparators/test_lz4.py:68: requires lz4 (try installing lz4) SKIPPED [1] tests/comparators/test_lz4.py:74: requires lz4 (try installing lz4) SKIPPED [1] tests/comparators/test_macho.py:51: requires otool and lipo SKIPPED [1] tests/comparators/test_macho.py:59: requires otool and lipo SKIPPED [1] tests/comparators/test_mono.py:54: requires pedump (try installing mono) SKIPPED [1] tests/comparators/test_mono.py:60: requires pedump (try installing mono) SKIPPED [1] tests/comparators/test_ocaml.py:60: requires ocamlobjinfo SKIPPED [1] tests/comparators/test_ocaml.py:70: requires ocamlobjinfo SKIPPED [1] tests/comparators/test_ocaml.py:76: requires ocamlobjinfo SKIPPED [1] tests/comparators/test_ocaml.py:82: requires ocamlobjinfo SKIPPED [1] tests/comparators/test_odt.py:46: requires odt2txt SKIPPED [1] tests/comparators/test_odt.py:52: requires odt2txt SKIPPED [1] tests/comparators/test_ogg.py:46: requires oggDump SKIPPED [1] tests/comparators/test_ogg.py:52: requires oggDump SKIPPED [1] tests/comparators/test_pdf.py:56: requires pdftotext (try installing poppler-utils) SKIPPED [1] tests/comparators/test_pdf.py:62: requires pdftotext (try installing poppler-utils) SKIPPED [1] tests/comparators/test_pdf.py:72: requires PyPDF2 Python module SKIPPED [1] tests/comparators/test_pgp.py:48: requires pgpdump SKIPPED [1] tests/comparators/test_pgp.py:54: requires pgpdump SKIPPED [1] tests/comparators/test_pgp.py:64: requires pgpdump SKIPPED [1] tests/comparators/test_png.py:49: requires sng SKIPPED [1] tests/comparators/test_png.py:55: requires sng SKIPPED [1] tests/comparators/test_png.py:60: requires sng and compose and convert and identify SKIPPED [1] tests/comparators/test_ppu.py:49: requires ppudump (try installing fpc) SKIPPED [1] tests/comparators/test_ppu.py:64: requires ppudump (try installing fpc) SKIPPED [1] tests/comparators/test_ppu.py:70: requires ppudump (try installing fpc) SKIPPED [1] tests/comparators/test_ps.py:43: requires ps2ascii (try installing ghostscript9-base) SKIPPED [1] tests/comparators/test_ps.py:54: requires ps2ascii (try installing ghostscript9-base) SKIPPED [1] tests/comparators/test_ps.py:60: requires ps2ascii (try installing ghostscript9-base) SKIPPED [1] tests/comparators/test_ps.py:67: requires ps2ascii (try installing ghostscript9-base) SKIPPED [1] tests/comparators/test_rdata.py:47: requires Rscript SKIPPED [1] tests/comparators/test_rdata.py:52: requires Rscript SKIPPED [1] tests/comparators/test_rlib.py:112: requires llvm-config SKIPPED [1] tests/comparators/test_rpm.py:44: requires rpm Python module SKIPPED [1] tests/comparators/test_rpm.py:55: requires rpm Python module SKIPPED [1] tests/comparators/test_rpm.py:63: requires rpm Python module SKIPPED [1] tests/comparators/test_rpm.py:72: requires rpm Python module SKIPPED [1] tests/comparators/test_rpm.py:81: requires rpm Python module SKIPPED [1] tests/comparators/test_rpm.py:87: requires xxd (try installing vim | vim-lite) SKIPPED [1] tests/comparators/test_sqlite.py:48: requires sqlite3 (try installing sqlite3) SKIPPED [1] tests/comparators/test_sqlite.py:58: requires sqlite3 (try installing sqlite3) SKIPPED [1] tests/comparators/test_squashfs.py:65: requires unsquashfs (try installing squashfs-tools) SKIPPED [1] tests/comparators/test_squashfs.py:71: requires unsquashfs (try installing squashfs-tools) SKIPPED [1] tests/comparators/test_squashfs.py:78: requires unsquashfs (try installing squashfs-tools) SKIPPED [1] tests/comparators/test_squashfs.py:86: requires unsquashfs (try installing squashfs-tools) SKIPPED [1] tests/comparators/test_utils.py:50: requires SKIPPED [1] tests/comparators/test_utils.py:55: requires /missing SKIPPED [1] tests/comparators/test_utils.py:73: requires tlsh Python module SKIPPED [1] tests/comparators/test_utils.py:85: requires tlsh Python module SKIPPED [1] tests/comparators/test_utils.py:95: requires tlsh Python module SKIPPED [1] tests/comparators/test_utils.py:103: requires tlsh Python module SKIPPED [1] tests/comparators/test_wasm.py:47: requires wasm2wat SKIPPED [1] tests/comparators/test_wasm.py:54: requires wasm2wat SKIPPED [1] tests/comparators/test_xml.py:51: requires Python 3.8 or higher SKIPPED [1] tests/comparators/test_xsb.py:46: requires dumpxsb SKIPPED [1] tests/comparators/test_xsb.py:52: requires dumpxsb SKIPPED [1] tests/comparators/test_zip.py:150: requires zipnote SKIPPED [1] tests/comparators/test_zst.py:52: requires zstd SKIPPED [1] tests/comparators/test_zst.py:57: requires zstd SKIPPED [1] tests/comparators/test_zst.py:68: requires zstd ============= 45 failed, 244 passed, 154 skipped in 48.15 seconds ============== *** Error code 1 Stop. make: stopped in /usr/ports/sysutils/py-diffoscope