diff options
author | 2015-05-04 15:07:29 +0000 | |
---|---|---|
committer | 2015-05-04 17:52:07 +0000 | |
commit | 1f4ce8034892aa490269aacf2fd4c74122d72920 (patch) | |
tree | 39d354277e2ad63fd304480c548529f951391a9e /src/main/java/com/google/devtools/build/lib/rules/objc/TestSupport.java | |
parent | 497d35e06119c560cbf1198bf68ae11824094240 (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.java | 25 |
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; } |