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

Bug: Only last filter expression is respected #99

Conversation

coenm
Copy link
Contributor

@coenm coenm commented May 15, 2018

Using a filter like /p:Exclude="[coverlet.*]*,[*]Coverlet.Core*" would only respect the last [*]Coverlet.Core* filter expression.

This PR aims to fix this bug such that all filters are used to determine if a type is excluded or not.

During the fix, i've noticed the possibility to use a questionmark in the filterexpressions.

This PR changes the behavior of the questionmark. Originally, the ? meant (almost) any character at the position of the ?. Now the questionmark means that the character just before the questionmark is optional.

So, first /p:Exclude="[coverlet?]* would match assemblies named coverlet1, coverletX but not coverlet.

The new behaviour matches assemblies named coverlet, and coverle but nothing else (so the last t is optional).

Let me know what you think of this.

@codecov
Copy link

codecov bot commented May 15, 2018

Codecov Report

Merging #99 into master will increase coverage by 0.22%.
The diff coverage is 100%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #99      +/-   ##
==========================================
+ Coverage   98.68%   98.91%   +0.22%     
==========================================
  Files          15       15              
  Lines        1370     1378       +8     
==========================================
+ Hits         1352     1363      +11     
+ Misses         18       15       -3
Impacted Files Coverage Δ
src/coverlet.core/Helpers/InstrumentationHelper.cs 98.26% <100%> (+1.9%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0b42b03...9346a42. Read the comment docs.

Copy link
Collaborator

@tonerdo tonerdo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is awesome. Thanks for catching the bug!!!

@tonerdo tonerdo merged commit a6046c4 into coverlet-coverage:master May 16, 2018
@coenm coenm deleted the bugfix/MultipleExcludeFiltersOnlyRespectLastFilterExpression branch May 16, 2018 11:25
NorekZ pushed a commit to NorekZ/coverlet that referenced this pull request Nov 8, 2018
…ludeFiltersOnlyRespectLastFilterExpression

Bug: Only last filter expression is respected
mburumaxwell pushed a commit to faluapp/falu-dotnet that referenced this pull request Jun 12, 2021
Bumps [coverlet.collector](https://github.com/coverlet-coverage/coverlet) from 1.3.0 to 3.0.1.

#Release notes

*Sourced from [coverlet.collector's releases](https://github.com/coverlet-coverage/coverlet/releases).*

> ## v3.0.0
> * [#131](coverlet-coverage/coverlet#131) makes a slight change to the Coverlet JSON format
> * 807f7b1bd5bea8158ffff343d5511cd16e0da9a0 uses a separate `coverlet.tracker` assembly to hold tracking code
> * [#128](coverlet-coverage/coverlet#128) adds support for assemblies with `.exe` extension
> * a1f18b4156374f3398d704e898ec58c7c6c64bf8 improves identifying compiler generated types
> * [#134](coverlet-coverage/coverlet#134) adds considerable coverage tracking performance improvements
>
> ## v2.0.1
> * [#102](coverlet-coverage/coverlet#102) fixes issues with NUNIT3 Test adapter ([#101](coverlet-coverage/coverlet#101))
> * [#104](coverlet-coverage/coverlet#104) shows overall averages as part of final console output
> * [#112](coverlet-coverage/coverlet#112) adds support for standard `ExcludeFromCodeCoverage` attribute to specify types and methods to exclude from code coverage. Deprecates `ExcludeFromCoverage` attribute
> * coverlet-coverage/coverlet@7f190e4 prevents Opencover and Cobertura output generated at the same time from overwriting each other ([#111](coverlet-coverage/coverlet#111))
> * [#116](coverlet-coverage/coverlet#116) strongly signs the Coverlet assembly and aims to fix [#40](coverlet-coverage/coverlet#40)
>
> ## v2.0.0
> * [#78](coverlet-coverage/coverlet#78) adds support for generating multiple report formats in a single run
> * [#73](coverlet-coverage/coverlet#73) improves branch coverage support and output formats*
> * coverlet-coverage/coverlet@d2effb3 shows method coverage in summary output
> * [#88](coverlet-coverage/coverlet#88) improves disk usage by using gzip compression
> * [#93](coverlet-coverage/coverlet#93) adds `ThresholdType` property that allows you to specify the coverage type to apply the `Threshold` property to
> * coverlet-coverage/coverlet@ebedd70 renames `Exclude` property to `ExcludeByFile`*
> * coverlet-coverage/coverlet@9ed0864 supports using filter expressions to exclude assemblies, namespaces or types. Uses the `Exclude` property*
> * [#99](coverlet-coverage/coverlet#99) adds improvements to evaluation of filter expressions
>
> `*` - Backwards incompatible change

#Commits

- See f...
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.

None yet

2 participants