30
30
import datadog .trace .civisibility .events .BuildEventsHandlerImpl ;
31
31
import datadog .trace .civisibility .events .TestEventsHandlerImpl ;
32
32
import datadog .trace .civisibility .ipc .SignalServer ;
33
+ import datadog .trace .civisibility .source .index .RepoIndex ;
33
34
import datadog .trace .civisibility .telemetry .CiVisibilityMetricCollectorImpl ;
34
35
import datadog .trace .civisibility .test .ExecutionStrategy ;
35
36
import datadog .trace .civisibility .utils .ConcurrentHashMapContextStore ;
@@ -90,7 +91,8 @@ public static void start(Instrumentation inst, SharedCommunicationObjects sco) {
90
91
// so if lines are explicitly enabled,
91
92
// we rely on Jacoco instrumentation rather than on our own coverage mechanism
92
93
!config .isCiVisibilityCoverageLinesEnabled ()) {
93
- Predicate <String > instrumentationFilter = createCoverageInstrumentationFilter (config );
94
+ Predicate <String > instrumentationFilter =
95
+ createCoverageInstrumentationFilter (services , repoServices );
94
96
inst .addTransformer (new CoverageClassTransformer (instrumentationFilter ));
95
97
}
96
98
@@ -112,9 +114,15 @@ private static Path getCurrentPath() {
112
114
}
113
115
}
114
116
115
- private static Predicate <String > createCoverageInstrumentationFilter (Config config ) {
116
- String [] includedPackages = config .getCiVisibilityCodeCoverageIncludedPackages ();
117
- String [] excludedPackages = config .getCiVisibilityCodeCoverageExcludedPackages ();
117
+ private static Predicate <String > createCoverageInstrumentationFilter (
118
+ CiVisibilityServices services , CiVisibilityRepoServices repoServices ) {
119
+ String [] includedPackages = services .config .getCiVisibilityCodeCoverageIncludedPackages ();
120
+ if (includedPackages .length == 0 && services .processHierarchy .isHeadless ()) {
121
+ RepoIndex repoIndex = repoServices .repoIndexProvider .getIndex ();
122
+ includedPackages =
123
+ Config .convertJacocoExclusionFormatToPackagePrefixes (repoIndex .getRootPackages ());
124
+ }
125
+ String [] excludedPackages = services .config .getCiVisibilityCodeCoverageExcludedPackages ();
118
126
return new CoverageInstrumentationFilter (includedPackages , excludedPackages );
119
127
}
120
128
0 commit comments