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

feat(coverage): Basic test coverage support #366

Merged

Commits on Apr 5, 2024

  1. feat: Test coverage support

    This commit lays the foundation for displaying coverage results
    from `bazel coverage`.
    
    For the time being, the functionality is only exposed through the
    user-defined tasks in the `tasks.json`. It is thereby a bit hard to
    discover. But this is fine for the time being, because coverage still
    has a couple of rough edges anyway. As soon as it is more stable, we
    should add builtin commands and expose coverage runs also in the "Bazel
    Build Target" tree.
    
    Changes in this commit:
    * Bumps the VS Code version to 1.88, i.e. the first VS Code version
      which supports the test coverage API.
    * Upgrades to ES2022.  I wanted to use `replaceAll` which was introduced
      in ES2021.
      VS Code 1.88 is based on Node 18 which in turn is based on V8 10.1. V8
      10.18 supports ECMA-262 also known as ES2023.  However, ES2023 is not
      yet available a target language in the `tsconfig.json`.  Furthermore,
      Firefox does not fully support ES2023, yet. While web browsers are
      currently not relevant, they might become so in the future if we want
      to turn this into a browser-enabled VSCode extension.
      An upgrade to ES2021 would have been sufficient, but I went directly
      to ES2022 because it might some of the other new features might also
      turn out useful.
    * Introduces a custom LCOV parser. I could not find any other
      high-quality open-source parser. E.g., most other parser don't
      properly parse function names with `:` and / or `,` in them.
    * Introduces test cases for that custom LCOV parser.
    
    Future work:
    * Support for branch coverage
    * Demangling of function names
    * Builtin commands to trigger coverage runs & offer them in the "Bazel
      Build Tree"
    
    Tested with: Java, C++, Go, Rust
    Untested: Python, Swift, Kotlin, Scala and many more
    
    This is the first step towards bazel-contrib#362
    vogelsgesang committed Apr 5, 2024
    Configuration menu
    Copy the full SHA
    d2c82d8 View commit details
    Browse the repository at this point in the history

Commits on Apr 7, 2024

  1. Configuration menu
    Copy the full SHA
    095c9ec View commit details
    Browse the repository at this point in the history

Commits on Apr 9, 2024

  1. Configuration menu
    Copy the full SHA
    b51e674 View commit details
    Browse the repository at this point in the history

Commits on Apr 10, 2024

  1. Fix linter errors

    vogelsgesang committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    883ad82 View commit details
    Browse the repository at this point in the history
  2. Fix eslint

    vogelsgesang committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    0e39248 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8490757 View commit details
    Browse the repository at this point in the history
  4. Fix formatting

    vogelsgesang committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    d1e9093 View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2024

  1. Configuration menu
    Copy the full SHA
    7348ffa View commit details
    Browse the repository at this point in the history

Commits on May 2, 2024

  1. Configuration menu
    Copy the full SHA
    ed2e4d1 View commit details
    Browse the repository at this point in the history
  2. Add tests to GitHub CI

    vogelsgesang committed May 2, 2024
    Configuration menu
    Copy the full SHA
    c6f021b View commit details
    Browse the repository at this point in the history
  3. Fix rebase issue

    vogelsgesang committed May 2, 2024
    Configuration menu
    Copy the full SHA
    18a46df View commit details
    Browse the repository at this point in the history