diff options
author | 2017-01-31 20:22:22 +0000 | |
---|---|---|
committer | 2017-02-01 08:55:25 +0000 | |
commit | 45da6c7b9775abe83057add6f20162adeb5ca76c (patch) | |
tree | e7790166f583ffc65ce1c0eddfd6296a0d95e498 /src/main/java/com/google/devtools/build/lib/rules | |
parent | f2f7839eefe1274bf9e25708201ec3cd89b19846 (diff) |
Throw an exception when persistent workers are used to run tests with use_testrunner=0
--
PiperOrigin-RevId: 146150454
MOS_MIGRATED_REVID=146150454
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/test/TestActionBuilder.java | 8 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java | 9 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestActionBuilder.java index b7becb4eaf..b84be6979a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/test/TestActionBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestActionBuilder.java @@ -34,6 +34,7 @@ import com.google.devtools.build.lib.packages.TargetUtils; import com.google.devtools.build.lib.packages.TestSize; import com.google.devtools.build.lib.packages.TestTimeout; import com.google.devtools.build.lib.rules.test.TestProvider.TestParams; +import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.util.Pair; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.vfs.PathFragment; @@ -282,12 +283,17 @@ public final class TestActionBuilder { targetName.getRelative(shardRunDir + "coverage.micro.dat"), root); } + boolean useTestRunner = false; + if (ruleContext.attributes().has("use_testrunner", Type.BOOLEAN)) { + useTestRunner = ruleContext.attributes().get("use_testrunner", Type.BOOLEAN); + } env.registerAction(new TestRunnerAction( ruleContext.getActionOwner(), inputs, testRuntime, testLog, cacheStatus, coverageArtifact, microCoverageArtifact, testProperties, testEnv, executionSettings, - shard, run, config, ruleContext.getWorkspaceName())); + shard, run, config, ruleContext.getWorkspaceName(), + useTestRunner)); results.add(cacheStatus); } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java index b84055110b..e9143087f4 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java @@ -89,6 +89,7 @@ public class TestRunnerAction extends AbstractAction implements NotifyOnActionCa private final int shardNum; private final int runNumber; private final String workspaceName; + private final boolean useTestRunner; // Mutable state related to test caching. private boolean checkedCaching = false; @@ -127,7 +128,8 @@ public class TestRunnerAction extends AbstractAction implements NotifyOnActionCa int shardNum, int runNumber, BuildConfiguration configuration, - String workspaceName) { + String workspaceName, + boolean useTestRunner) { super(owner, inputs, // Note that this action only cares about the runfiles, not the mapping. new RunfilesSupplierImpl(new PathFragment("runfiles"), executionSettings.getRunfiles()), @@ -167,6 +169,7 @@ public class TestRunnerAction extends AbstractAction implements NotifyOnActionCa this.undeclaredOutputsAnnotationsPath = undeclaredOutputsAnnotationsDir.getChild("ANNOTATIONS"); this.testInfrastructureFailure = baseDir.getChild("test.infrastructure_failure"); this.workspaceName = workspaceName; + this.useTestRunner = useTestRunner; Map<String, String> mergedTestEnv = new HashMap<>(configuration.getTestEnv()); mergedTestEnv.putAll(extraTestEnv); @@ -585,6 +588,10 @@ public class TestRunnerAction extends AbstractAction implements NotifyOnActionCa return executionSettings; } + public boolean useTestRunner() { + return useTestRunner; + } + public boolean isSharded() { return testShard != null; } |