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

Cobertura now handles defprotocol and defimpl definitions #306

Merged
merged 2 commits into from
Mar 27, 2023

Conversation

gorghoa
Copy link
Contributor

@gorghoa gorghoa commented Mar 21, 2023

A protocol (defprotocol) or implementation (defimpl) definition covered during the tests triggers an error when using the cobertura formatter.

This PR fixes it.

** (MatchError) no match of right hand side value: nil
    (excoveralls 0.16.0) lib/excoveralls/cobertura.ex:168: ExCoveralls.Cobertura.module_name/1
    (excoveralls 0.16.0) lib/excoveralls/cobertura.ex:99: anonymous fn/3 in ExCoveralls.Cobertura.generate_packages/2
    (elixir 1.14.2) lib/enum.ex:2468: Enum."-reduce/3-lists^foldl/2-0-"/3
    (excoveralls 0.16.0) lib/excoveralls/cobertura.ex:97: ExCoveralls.Cobertura.generate_packages/2
    (excoveralls 0.16.0) lib/excoveralls/cobertura.ex:74: ExCoveralls.Cobertura.generate_xml/2
    (excoveralls 0.16.0) lib/excoveralls/cobertura.ex:16: ExCoveralls.Cobertura.execute/2
    (elixir 1.14.2) lib/enum.ex:975: Enum."-each/2-lists^foreach/1-0-"/2
    (excoveralls 0.16.0) lib/excoveralls.ex:65: ExCoveralls.execute/3
    (mix 1.14.2) lib/mix/tasks/test.ex:549: Mix.Tasks.Test.do_run/3
    (mix 1.14.2) lib/mix/task.ex:421: anonymous fn/3 in Mix.Task.run_task/4
    (excoveralls 0.16.0) lib/mix/tasks.ex:54: Mix.Tasks.Coveralls.do_run/2
    (mix 1.14.2) lib/mix/task.ex:421: anonymous fn/3 in Mix.Task.run_task/4
    (mix 1.14.2) lib/mix/cli.ex:84: Mix.CLI.run_task/2
    (elixir 1.14.2) lib/code.ex:1260: Code.require_file/2

ping @albertored for review! 🙏

@albertored
Copy link
Contributor

Hi @gorghoa ! Thanks for the PR, I've just found the same bug today in one of my projects. Just a small comment on your fix and for me it is ready to be merged (@parroty )

@gorghoa gorghoa force-pushed the fix-cobertura-protocol-impl branch from 9c04ab2 to dd20243 Compare March 21, 2023 23:28
@gorghoa gorghoa force-pushed the fix-cobertura-protocol-impl branch from dd20243 to 689d136 Compare March 21, 2023 23:32
@parroty
Copy link
Owner

parroty commented Mar 26, 2023

Hi. Thank you for the PR and comments.

just a small comment on your fix and for me it is ready to be merged

I just wanted to confirm small comment on your fix part status (it's fixed and ready for merge?). I don't have additional comments, but wanted to confirm before hitting merge button 🙇 .

@albertored
Copy link
Contributor

@parroty yes, it's ready for merge

@parroty parroty merged commit 8212269 into parroty:master Mar 27, 2023
@parroty
Copy link
Owner

parroty commented Mar 27, 2023

Thanks!

@gorghoa
Copy link
Contributor Author

gorghoa commented Mar 27, 2023

Thank you @albertored and @parroty, have a great day!

tonyrud added a commit to Vetspire/excoveralls that referenced this pull request Sep 27, 2024
* Cobertura now handles defprotocol and defimpl definitions (parroty#306)

* Cobertura now handles defprotocol and defimpl definitions

* Cobertura, catch all if module type is unknown

* Bump version and update CHANGELOG

* Add Cobertura docs to README.md (parroty#312)

* Update Elixir requirement to 1.11+ (parroty#316)

* Update Elixir requirement to 1.11+

* Update deps

* Replace hackney with httpc (parroty#311)

* Replace hackney with httpc

* SSL options

* FIXUP

* Cache fixed

* Aaaah, caching again

* FIXUP

* Add missing apps to :extra_applications

* Add better check for :public_key

* Bump version and update CHANGELOG

* Fix lcov 2.0 source file handling (parroty#315)

Prior to 2.0 being released, `genhtml` was much better about handling
source files from the following paths:

* `test/support/some_helper.ex`
* `lib/foo/bar.ex`

But after 2.0 was released, when rendering with `genhtml` the paths
would be mangled and look like the following:

* `test/support/test/support/some_helper.ex`
* `lib/foo/lib/foo/bar.ex`

I have tried in vain with many permutations of `--prefix` when running
`genhtml` but the ultimate fix that made all of this go away was using
the absolute path for the source file (`SF`).

* Update CHANGELOG

* Remove erroneous line in ExCoveralls.poster (parroty#318)

* Import `.coverdata` after test run and improve documentation (parroty#309)

* Import `.coverdata` after test run and improve docs

* Update README table of contents

* Update README based on review suggestion

Co-authored-by: Alberto Sartori <alberto.sartori.as@gmail.com>

---------

Co-authored-by: Alberto Sartori <alberto.sartori.as@gmail.com>

* Update CHANGELOG

* Accept custom http options (parroty#319)

* Accept custom http options

* Add HTTP options docs to README

* Bump version and update CHANGELOG

* Always floor coverage instead of rounding (parroty#310)

* Always floor coverage instead of rounding

We do not want to report a 100% coverage when there are lines
that are not covered.

* Add option to restore previous ceil coverage behaviour

* Bump version and update CHANGELOG

* Update README examples (parroty#320)

* Use explicit steps to remove 1.16 deprecation warning (parroty#322)

* Update CHANGELOG and bump version

* Detect and warn about incorrectly used ignore-comments (parroty#325)

* Detect and warn about incorrectly used ignore-comments

Resolves parroty#197.

* Keep existing ignoring behavior

* Improve formatting

* Test more ignore-related warnings

* Remove warning in the case of ignore-next-line at the EOF

* Test the warning output

* Add a changelog entry

* Adjust test descriptions

---------

Co-authored-by: Roman <205906+RKushnir@users.noreply.github.com>

* Fix Elixir 1.17 single-quoted string warning (parroty#327)

* Bump version and update CHANGELOG

* add missing step for Cobertura's range (parroty#329)

Without this change, the output is full of warnings such as
```
warning: negative steps are not supported in String.slice/2, pass 44..-1//1 instead
```

* Update CHANGELOG and version

* Revert "add missing step for Cobertura's range (parroty#329)" (parroty#330)

This reverts commit 00a96c4.

* Revert version change

* Update Range to use function syntax (parroty#332)

* add missing step for Cobertura's range

* Update Range to use function syntax

* run tests in elixir 1.17

* fix test with relative path

---------

Co-authored-by: parroty <parroty@users.noreply.github.com>

* Update CHANGELOG and version

---------

Co-authored-by: Rodrigue Villetard <rodrigue@villetard.tech>
Co-authored-by: parroty <parroty@users.noreply.github.com>
Co-authored-by: Artem Solomatin <artem00298@gmail.com>
Co-authored-by: Andrea Leopardi <an.leopardi@gmail.com>
Co-authored-by: Matthew Johnston <warmwaffles@gmail.com>
Co-authored-by: Zach Allaun <zach.allaun@gmail.com>
Co-authored-by: Alberto Sartori <alberto.sartori.as@gmail.com>
Co-authored-by: Victor Rodrigues <rodrigues@users.noreply.github.com>
Co-authored-by: gitneko <67227083+gitneko@users.noreply.github.com>
Co-authored-by: Roman <RKushnir@users.noreply.github.com>
Co-authored-by: Roman <205906+RKushnir@users.noreply.github.com>
Co-authored-by: Hans Krutzer <git@pixelspaceships.com>
Co-authored-by: Juan Peri <eternoperegrino@gmail.com>
Co-authored-by: Kenta Nakase <1172471+parroty@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants