• 
      

    Fix issues with interdiff context filtering.

    Review Request #7374 — Created June 4, 2015 and submitted — Latest diff uploaded

    Information

    Review Board
    release-2.0.x
    b522ca3...

    Reviewers

    There were three bugs found in the interdiff filtering code, uncovered
    from reports sent to us.
    
    1. It was possible for an interdiff to filter out all content from the
       diff, depending on where the diff chunk details and content ended up.
       This was the result of an off-by-one in the leading lines of context.
    
    2. It also failed to filter out trailing chunks, due to not taking into
       account the lines of context after the modifications. We now track
       the number of lines of context after the modifications and deduct
       them from the returned range.
    
    3. Last but not least, when determining if a range was valid, we were
       assuming both sides were of equal importance. This wasn't the case.
       We now consider only the ranges valid for the given change type.
    
    Some of the unit tests were failing with these fixes. I've gone over
    them and plugged in the new values, which I believe are sane. I've also
    added a new unit test for the trailing lines of context.

    Unit tests pass.

    Tested with all the interdiff tests I have. They looked correct (more
    correct, in some cases, now that I've dug into the before/after and what
    I'd expect from doing this by hand).

    Tested with some broken diffs sent my way. They looked correct after.