aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe
diff options
context:
space:
mode:
authorGravatar dslomov <dslomov@google.com>2017-04-03 18:54:48 +0000
committerGravatar Marcel Hlopko <hlopko@google.com>2017-04-04 10:07:02 +0200
commit3f00727b700e5591218934d7a8df164cd572be65 (patch)
treeaf056be005b842763f39e707decb7a051db6bb91 /src/main/java/com/google/devtools/build/lib/skyframe
parente368bd491042f86c0c90b7a43413f44d12946bd0 (diff)
Add "--build_manual_tests" options that forces manual tests to be built.
This is useful for IDEs and other tools utilizing command-line aspects for reflection over build graph. RELNOTES: None. PiperOrigin-RevId: 152038248
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/LegacyLoadingPhaseRunner.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java16
4 files changed, 23 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/LegacyLoadingPhaseRunner.java b/src/main/java/com/google/devtools/build/lib/skyframe/LegacyLoadingPhaseRunner.java
index b2e4b5efb3..1fd16b1989 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/LegacyLoadingPhaseRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/LegacyLoadingPhaseRunner.java
@@ -134,7 +134,7 @@ public final class LegacyLoadingPhaseRunner extends LoadingPhaseRunner {
ResolvedTargets<Target> targets =
getTargetsToBuild(
parseFailureListener, targetPatterns, options.compileOneDependency,
- options.buildTagFilterList, keepGoing);
+ options.buildTagFilterList, options.buildManualTests, keepGoing);
ImmutableSet<Target> filteredTargets = targets.getFilteredTargets();
@@ -268,6 +268,7 @@ public final class LegacyLoadingPhaseRunner extends LoadingPhaseRunner {
* @param targetPatterns the list of command-line target patterns specified by the user
* @param compileOneDependency if true, enables alternative interpretation of targetPatterns; see
* {@link LoadingOptions#compileOneDependency}
+ * @param buildManualTests
* @throws TargetParsingException if parsing failed and !keepGoing
*/
private ResolvedTargets<Target> getTargetsToBuild(
@@ -275,11 +276,12 @@ public final class LegacyLoadingPhaseRunner extends LoadingPhaseRunner {
List<String> targetPatterns,
boolean compileOneDependency,
List<String> buildTagFilterList,
- boolean keepGoing)
+ boolean buildManualTests, boolean keepGoing)
throws TargetParsingException, InterruptedException {
ResolvedTargets<Target> evaluated =
targetPatternEvaluator.parseTargetPatternList(eventHandler, targetPatterns,
- FilteringPolicies.FILTER_MANUAL, keepGoing);
+ buildManualTests ? FilteringPolicies.NO_FILTER : FilteringPolicies.FILTER_MANUAL,
+ keepGoing);
ResolvedTargets<Target> result = ResolvedTargets.<Target>builder()
.merge(evaluated)
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index 8734f3b34b..fa7fccc86c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -1908,6 +1908,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
relativeWorkingDirectory.getPathString(), options.compileOneDependency,
options.buildTestsOnly, determineTests,
ImmutableList.copyOf(options.buildTagFilterList),
+ options.buildManualTests,
TestFilter.forOptions(options, eventHandler, ruleClassNames));
EvaluationResult<TargetPatternPhaseValue> evalResult;
eventHandler.post(new LoadingPhaseStartedEvent(packageProgress));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
index 7a87ba202b..444fd4258a 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
@@ -189,7 +189,11 @@ final class TargetPatternPhaseFunction implements SkyFunction {
Environment env, TargetPatternList options) throws InterruptedException {
List<SkyKey> patternSkyKeys = new ArrayList<>();
for (TargetPatternSkyKeyOrException keyOrException :
- TargetPatternValue.keys(options.getTargetPatterns(), FilteringPolicies.FILTER_MANUAL,
+ TargetPatternValue.keys(
+ options.getTargetPatterns(),
+ options.getBuildManualTests()
+ ? FilteringPolicies.NO_FILTER
+ : FilteringPolicies.FILTER_MANUAL,
options.getOffset())) {
try {
patternSkyKeys.add(keyOrException.getSkyKey());
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java
index 7238ddbb94..085eacdc31 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java
@@ -130,7 +130,7 @@ public final class TargetPatternPhaseValue implements SkyValue {
public static SkyKey key(ImmutableList<String> targetPatterns, String offset,
boolean compileOneDependency, boolean buildTestsOnly, boolean determineTests,
ImmutableList<String> buildTargetFilter,
- @Nullable TestFilter testFilter) {
+ boolean buildManualTests, @Nullable TestFilter testFilter) {
return SkyKey.create(
SkyFunctions.TARGET_PATTERN_PHASE,
new TargetPatternList(
@@ -140,7 +140,7 @@ public final class TargetPatternPhaseValue implements SkyValue {
buildTestsOnly,
determineTests,
buildTargetFilter,
- testFilter));
+ buildManualTests, testFilter));
}
/**
@@ -155,17 +155,20 @@ public final class TargetPatternPhaseValue implements SkyValue {
private final boolean buildTestsOnly;
private final boolean determineTests;
private final ImmutableList<String> buildTargetFilter;
+ private final boolean buildManualTests;
@Nullable private final TestFilter testFilter;
public TargetPatternList(ImmutableList<String> targetPatterns, String offset,
boolean compileOneDependency, boolean buildTestsOnly, boolean determineTests,
- ImmutableList<String> buildTargetFilter, @Nullable TestFilter testFilter) {
+ ImmutableList<String> buildTargetFilter, boolean buildManualTests,
+ @Nullable TestFilter testFilter) {
this.targetPatterns = Preconditions.checkNotNull(targetPatterns);
this.offset = Preconditions.checkNotNull(offset);
this.compileOneDependency = compileOneDependency;
this.buildTestsOnly = buildTestsOnly;
this.determineTests = determineTests;
this.buildTargetFilter = Preconditions.checkNotNull(buildTargetFilter);
+ this.buildManualTests = buildManualTests;
this.testFilter = testFilter;
if (buildTestsOnly || determineTests) {
Preconditions.checkNotNull(testFilter);
@@ -196,6 +199,10 @@ public final class TargetPatternPhaseValue implements SkyValue {
return buildTargetFilter;
}
+ public boolean getBuildManualTests() {
+ return buildManualTests;
+ }
+
public TestFilter getTestFilter() {
return testFilter;
}
@@ -217,7 +224,7 @@ public final class TargetPatternPhaseValue implements SkyValue {
@Override
public int hashCode() {
return Objects.hash(targetPatterns, offset, compileOneDependency, buildTestsOnly,
- determineTests, testFilter);
+ determineTests, buildManualTests, testFilter);
}
@Override
@@ -235,6 +242,7 @@ public final class TargetPatternPhaseValue implements SkyValue {
&& other.buildTestsOnly == buildTestsOnly
&& other.determineTests == determineTests
&& other.buildTargetFilter.equals(buildTargetFilter)
+ && other.buildManualTests == buildManualTests
&& Objects.equals(other.testFilter, testFilter);
}
}