Skip to content

Backport "Port coverage filter options for packages and files" to LTS #20941

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

Merged
merged 6 commits into from
Jul 2, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Change the -coverage-exclude-classlikes option and its doc
[Cherry-picked c01baea]
  • Loading branch information
KacperFKorban authored and WojciechMazur committed Jul 2, 2024
commit b074ceea461c64294c5a1a2ae0d9abeb7df4aa2f
2 changes: 1 addition & 1 deletion compiler/src/dotty/tools/dotc/config/ScalaSettings.scala
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ trait CommonScalaSettings:

/* Coverage settings */
val coverageOutputDir = PathSetting("-coverage-out", "Destination for coverage classfiles and instrumentation data.", "", aliases = List("--coverage-out"))
val coverageExcludePackages: Setting[List[String]] = MultiStringSetting("-coverage-exclude-packages", "packages", "List of regexes for packages to exclude from coverage.", aliases = List("--coverage-exclude-packages"))
val coverageExcludeClasslikes: Setting[List[String]] = MultiStringSetting("-coverage-exclude-classlikes", "packages, clesses and modules", "List of regexes for packages, classes and modules to exclude from coverage.", aliases = List("--coverage-exclude-classlikes"))
val coverageExcludeFiles: Setting[List[String]] = MultiStringSetting("-coverage-exclude-files", "files", "List of regexes for files to exclude from coverage.", aliases = List("--coverage-exclude-files"))

/* Other settings */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ class InstrumentCoverage extends MacroTransform with IdentityDenotTransformer:
Serializer.serialize(coverage, outputPath, ctx.settings.sourceroot.value)

private def isClassIncluded(sym: Symbol)(using Context): Boolean =
val excludedClassNamePatterns = ctx.settings.coverageExcludePackages.value.map(_.r.pattern)
val excludedClassNamePatterns = ctx.settings.coverageExcludeClasslikes.value.map(_.r.pattern)
excludedClassNamePatterns.isEmpty || !excludedClassNamePatterns.exists(
_.matcher(sym.fullName.toText(ctx.printerFn(ctx)).show).nn.matches
)
Expand Down
2 changes: 1 addition & 1 deletion tests/coverage/pos/ExcludeClass.scala
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//> using options -coverage-exclude-packages:covtest.Klass
//> using options -coverage-exclude-classlikes:covtest.Klass

package covtest

Expand Down
10 changes: 5 additions & 5 deletions tests/coverage/pos/ExcludeClass.scoverage.check
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ Klass2
Class
covtest.Klass2
abs
217
218
219
220
16
i
Ident
Expand All @@ -42,8 +42,8 @@ Klass2
Class
covtest.Klass2
abs
234
236
238
18
unary_-
Select
Expand All @@ -59,8 +59,8 @@ Klass2
Class
covtest.Klass2
abs
175
182
177
184
14
abs
DefDef
Expand Down
2 changes: 1 addition & 1 deletion tests/coverage/pos/ExcludeDef.scala
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//> using options -coverage-exclude-packages:covtest\..*
//> using options -coverage-exclude-classlikes:covtest\..*

package covtest

Expand Down
2 changes: 1 addition & 1 deletion tests/coverage/pos/ExcludeOtherStuff.scala
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//> using options -coverage-exclude-packages:covtest.Oject,covtest.Tait
//> using options -coverage-exclude-classlikes:covtest.Oject,covtest.Tait

package covtest

Expand Down
2 changes: 1 addition & 1 deletion tests/coverage/pos/ExcludePackage.scala
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//> using options -coverage-exclude-packages:covtest
//> using options -coverage-exclude-classlikes:covtest

package covtest

Expand Down