aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/TestSupport.java
diff options
context:
space:
mode:
authorGravatar Daniel Wagner-Hall <danielwh@google.com>2015-05-04 15:07:29 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-05-04 17:52:07 +0000
commit1f4ce8034892aa490269aacf2fd4c74122d72920 (patch)
tree39d354277e2ad63fd304480c548529f951391a9e /src/main/java/com/google/devtools/build/lib/rules/objc/TestSupport.java
parent497d35e06119c560cbf1198bf68ae11824094240 (diff)
Add ios_test.sh.bazel_template
-- MOS_MIGRATED_REVID=92725547
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/TestSupport.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/TestSupport.java25
1 files changed, 18 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/TestSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/TestSupport.java
index b46ccf4763..173c781f49 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/TestSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/TestSupport.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.rules.objc;
+import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
@@ -29,8 +30,6 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.util.FileType;
-import java.util.List;
-
/**
* Support for running XcTests.
*/
@@ -62,7 +61,7 @@ class TestSupport {
// xctestIpa is the app bundle being tested
Artifact xctestIpa = xctestIpa();
- List<Substitution> substitutions = new ImmutableList.Builder<Substitution>()
+ ImmutableList.Builder<Substitution> substitutions = new ImmutableList.Builder<Substitution>()
.add(Substitution.of("%(test_app_ipa)s", testIpa.getRootRelativePathString()))
.add(Substitution.of("%(test_app_name)s", baseNameWithoutIpa(testIpa)))
@@ -71,14 +70,18 @@ class TestSupport {
.add(Substitution.of("%(iossim_path)s", iossim().getRootRelativePath().getPathString()))
- .addAll(deviceSubstitutions().getSubstitutionsForTestRunnerScript())
+ .addAll(deviceSubstitutions().getSubstitutionsForTestRunnerScript());
- .build();
+ Optional<Artifact> testRunner = testRunner();
+ if (testRunner.isPresent()) {
+ substitutions.add(
+ Substitution.of("%(testrunner_binary)s", testRunner.get().getRootRelativePathString()));
+ }
Artifact template = ruleContext.getPrerequisiteArtifact("$test_template", Mode.TARGET);
ruleContext.registerAction(new TemplateExpansionAction(ruleContext.getActionOwner(),
- template, generatedTestScript(), substitutions, /*executable=*/true));
+ template, generatedTestScript(), substitutions.build(), /*executable=*/true));
}
private IosTestSubstitutionProvider deviceSubstitutions() {
@@ -102,6 +105,13 @@ class TestSupport {
}
/**
+ * Gets the binary of the testrunner attribute, if there is one.
+ */
+ private Optional<Artifact> testRunner() {
+ return Optional.fromNullable(ruleContext.getPrerequisiteArtifact("$test_runner", Mode.TARGET));
+ }
+
+ /**
* Adds all files needed to run this test to the passed Runfiles builder.
*/
TestSupport addRunfiles(Runfiles.Builder runfilesBuilder) {
@@ -110,7 +120,8 @@ class TestSupport {
.addArtifact(xctestIpa())
.addArtifact(generatedTestScript())
.addArtifact(iossim())
- .addTransitiveArtifacts(deviceRunfiles());
+ .addTransitiveArtifacts(deviceRunfiles())
+ .addArtifacts(testRunner().asSet());
return this;
}