Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lcov report improvements part 2 #1851

Merged
merged 16 commits into from
Oct 2, 2024

Commits on Sep 22, 2024

  1. Configuration menu
    Copy the full SHA
    0f3b227 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9cc8fd0 View commit details
    Browse the repository at this point in the history

Commits on Sep 24, 2024

  1. [lcov] Refactor LcovReporter.lcov_file

    Split the bulk of the code in LcovReporter.lcov_file out into two free helper
    functions, lcov_lines and lcov_arcs.  This is easier to read and will make it
    easier to do future planned changes in a type-safe manner.
    
    No functional changes in this commit.
    zackw committed Sep 24, 2024
    Configuration menu
    Copy the full SHA
    e72cb37 View commit details
    Browse the repository at this point in the history
  2. [lcov] Improve reporting of branch destinations.

    The branch field of a BRDA: record can be an arbitrary textual label.
    Therefore, instead of emitting meaningless numbers, emit the string
    “to line <N>” for ordinary branches (where <N> is the arc destination
    line, and “to exit” for branches that exit the function.  When there is
    more than one exit arc from a single line, provide the negated arc
    destination as a disambiguator.
    
    Thanks to Henry Cox (@henry2cox), one of the LCOV maintainers, for
    clarifying the semantics of BRDA: records for us.
    zackw committed Sep 24, 2024
    Configuration menu
    Copy the full SHA
    f45f2fa View commit details
    Browse the repository at this point in the history
  3. Implement function coverage reporting in lcov reports.

    Quite straightforward: a function has been executed if any of its region’s
    lines have been executed.
    zackw committed Sep 24, 2024
    Configuration menu
    Copy the full SHA
    8c62e38 View commit details
    Browse the repository at this point in the history
  4. [lcov] Ignore vacuous function regions.

    Should fix the test failures with pypy pretending to be python 3.8.
    zackw committed Sep 24, 2024
    Configuration menu
    Copy the full SHA
    db57977 View commit details
    Browse the repository at this point in the history
  5. Adjust test expectations for lcov reports generated under PyPy 3.8.

    There is a bug somewhere, in which if we collect data in --branch mode under
    PyPy 3.8, regions for top-level functions come out of the analysis engine with
    empty lines arrays.  The previous commit prevented this from crashing the lcov
    reporter; this commit adjusts the tests of the lcov reporter so that we expect
    the function records affected by the bug to be missing.
    
    I don’t think it’s worth trying to pin down the cause of the bug, since Python
    3.8 is approaching end-of-life for both CPython and PyPy.
    zackw committed Sep 24, 2024
    Configuration menu
    Copy the full SHA
    13059ee View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    837bc7e View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    228854a View commit details
    Browse the repository at this point in the history
  8. Revise lcovreport.lcov_arcs using the new arc_description API.

    Doesn’t quite work yet, see discussion in nedbat#1850.
    zackw committed Sep 24, 2024
    Configuration menu
    Copy the full SHA
    d767721 View commit details
    Browse the repository at this point in the history

Commits on Sep 25, 2024

  1. Configuration menu
    Copy the full SHA
    24b21d1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a6c26f2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    77ee8f2 View commit details
    Browse the repository at this point in the history

Commits on Oct 2, 2024

  1. Configuration menu
    Copy the full SHA
    b7d298a View commit details
    Browse the repository at this point in the history
  2. Use tests.helpers.xfail_pypy38 for lcov tests that fail with pypy 3.8.

    This replaces the custom fn_coverage_missing_in_pypy_38 logic that was
    used in earlier commits.
    zackw committed Oct 2, 2024
    Configuration menu
    Copy the full SHA
    f90ef28 View commit details
    Browse the repository at this point in the history
  3. tests: split xfail_pypy38 decorator into _older_ and _all_ variants

    The lcov output tests that are affected by bugs in PyPy 3.8, fail with the
    current version of PyPy 3.8 (7.3.11), unlike the other tests annotated with
    @xfail_pypy38.  Split this decorator into two variants, xfail_older_pypy38
    (used for all the tests that were labeled xfail_py38 prior to this patchset)
    and xfail_all_pypy38 (used for the lcov output tests).
    zackw committed Oct 2, 2024
    Configuration menu
    Copy the full SHA
    e6a79ae View commit details
    Browse the repository at this point in the history