Bug#849142: test regression in test_dex.test_differences with enjarify >= 1.0.3

Levente Polyak levente at leventepolyak.net
Thu Dec 22 22:53:04 UTC 2016


Package: diffoscope

current version: git HEAD 8dde15f9200094882c26a1cf422556c43ec5d5dc

The test_differences test case fails in the test_dex module when using
enjarify 1.0.3. A downgrade of enjarify to 1.0.2 makes the test pass
again. As enjarify 1.0.3 itself seems to do what its supposed to do, i
think the test diff/output is just too strictly tied to the 1.0.2 output.

If the guess above is actually the case, a possible workaround may be to
expect enjarify to be 1.0.2 and skip the test otherwise.
However we start ending up with too many tests strictly tight to a very
specific toolset version, making a more general approach for multiple
sets more and more important.

cheers,
Levente

Logs:
=================================== FAILURES
===================================
_______________________________ test_differences
_______________________________

differences = [<Difference test1.jar -- test2.jar [<Difference zipinfo
-v {} -- zipinfo -v {} []>, <Difference com/example/MainActiv....class
[<Difference javap -verbose -constants -s -l -private {} -- javap
-verbose -constants -s -l -private {} []>]>]>]

    @skip_unless_tools_exist('enjarify', 'zipinfo', 'javap')
    @skip_unless_tool_is_at_least('javap', javap_version, '1.8')
    def test_differences(differences):
        assert differences[0].source1 == 'test1.jar'
        assert differences[0].source2 == 'test2.jar'
        zipinfo = differences[0].details[0]
        classdiff = differences[0].details[1]
        assert zipinfo.source1 == 'zipinfo -v {}'
        assert zipinfo.source2 == 'zipinfo -v {}'
        assert classdiff.source1 == 'com/example/MainActivity.class'
        assert classdiff.source2 == 'com/example/MainActivity.class'
        expected_diff = open(data('dex_expected_diffs')).read()
        found_diff = zipinfo.unified_diff +
classdiff.details[0].unified_diff
>       assert expected_diff == found_diff
E       assert '@@ -54,15 +5...args_size=1\n' == '@@ -54,15
+54...args_size=1\n'
E         Skipping 500 identical leading characters in diff, use -v to show
E         Skipping 1284 identical trailing characters in diff, use -v to
show
E         -           fc227a58
E         +           bc28236e
E         - +  32-bit CRC value (hex):                         19c9f64e
E         ?                                                    ^  ^ ^^^
E         + +  32-bit CRC value (hex):                         59c3af78
E         ?                                                    ^  ^^ ^^
E              compr

tests/comparators/test_dex.py:57: AssertionError



More information about the Reproducible-builds mailing list