aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2016-11-18 09:55:47 +0000
committerGravatar Yun Peng <pcloudy@google.com>2016-11-18 10:54:49 +0000
commit6447ad9f0684a3719a092a8fc11cada2285a7fa0 (patch)
tree19f4939fb3cabfaf97dc6f4f698e00f2d6c740d0 /src/test/java/com/google
parentb40cbaa4d9ad8f550ce76f95b3870ee45ce78aca (diff)
Extract the integration setup to a new class IntegrationMock.
-- MOS_MIGRATED_REVID=139558919
Diffstat (limited to 'src/test/java/com/google')
-rw-r--r--src/test/java/com/google/devtools/build/lib/BUILD13
-rw-r--r--src/test/java/com/google/devtools/build/lib/integration/util/IntegrationMock.java66
-rw-r--r--src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java5
-rw-r--r--src/test/java/com/google/devtools/build/lib/testutil/BlazeTestUtils.java37
4 files changed, 82 insertions, 39 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/BUILD b/src/test/java/com/google/devtools/build/lib/BUILD
index 4e14f536be..05e709a7bf 100644
--- a/src/test/java/com/google/devtools/build/lib/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/BUILD
@@ -358,6 +358,18 @@ java_library(
],
)
+java_library(
+ name = "integration_testutil",
+ srcs = glob([
+ "integration/util/*.java",
+ ]),
+ deps = [
+ ":testutil",
+ "//src/main/java/com/google/devtools/build/lib:build-base",
+ "//src/main/java/com/google/devtools/build/lib:vfs",
+ ],
+)
+
java_test(
name = "analysis_actions_test",
srcs = glob([
@@ -1074,6 +1086,7 @@ java_test(
":actions_testutil",
":analysis_testutil",
":foundations_testutil",
+ ":integration_testutil",
":testutil",
"//src/main/java/com/google/devtools/build/lib:bazel-rules",
"//src/main/java/com/google/devtools/build/lib:build-base",
diff --git a/src/test/java/com/google/devtools/build/lib/integration/util/IntegrationMock.java b/src/test/java/com/google/devtools/build/lib/integration/util/IntegrationMock.java
new file mode 100644
index 0000000000..5b497450b3
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/integration/util/IntegrationMock.java
@@ -0,0 +1,66 @@
+// Copyright 2014 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.integration.util;
+
+import com.google.devtools.build.lib.analysis.BlazeDirectories;
+import com.google.devtools.build.lib.analysis.config.BinTools;
+import com.google.devtools.build.lib.testutil.BlazeTestUtils;
+import com.google.devtools.build.lib.testutil.TestConstants;
+import com.google.devtools.build.lib.vfs.FileSystemUtils;
+import com.google.devtools.build.lib.vfs.Path;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+
+/**
+ * Performs setup for integration tests.
+ */
+public class IntegrationMock {
+ public static IntegrationMock get() {
+ return new IntegrationMock();
+ }
+
+ /**
+ * Populates the _embedded_binaries/ directory, containing all binaries/libraries, by symlinking
+ * directories#getEmbeddedBinariesRoot() to the test's runfiles tree.
+ */
+ public BinTools getIntegrationBinTools(BlazeDirectories directories) throws IOException {
+ Path embeddedDir = directories.getEmbeddedBinariesRoot();
+ FileSystemUtils.createDirectoryAndParents(embeddedDir);
+
+ Path runfiles = directories.getFileSystem().getPath(BlazeTestUtils.runfilesDir());
+ // Copy over everything in embedded_scripts.
+ Collection<Path> files = new ArrayList<>();
+ for (String embeddedScriptPath : TestConstants.EMBEDDED_SCRIPTS_PATHS) {
+ Path embeddedScripts = runfiles.getRelative(embeddedScriptPath);
+ if (embeddedScripts.exists()) {
+ files.addAll(embeddedScripts.getDirectoryEntries());
+ } else {
+ System.err.println("test does not have " + embeddedScripts);
+ }
+ }
+
+ for (Path fromFile : files) {
+ try {
+ embeddedDir.getChild(fromFile.getBaseName()).createSymbolicLink(fromFile);
+ } catch (IOException e) {
+ System.err.println("Could not symlink: " + e.getMessage());
+ }
+ }
+
+ return BinTools.forIntegrationTesting(
+ directories, embeddedDir.toString(), TestConstants.EMBEDDED_TOOLS);
+ }
+}
diff --git a/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java b/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java
index 39d1a374a2..4237114600 100644
--- a/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java
@@ -36,8 +36,8 @@ import com.google.devtools.build.lib.events.PrintingEventHandler;
import com.google.devtools.build.lib.events.Reporter;
import com.google.devtools.build.lib.exec.ExecutionOptions;
import com.google.devtools.build.lib.exec.SingleBuildFileCache;
+import com.google.devtools.build.lib.integration.util.IntegrationMock;
import com.google.devtools.build.lib.rules.apple.AppleConfiguration;
-import com.google.devtools.build.lib.testutil.BlazeTestUtils;
import com.google.devtools.build.lib.testutil.TestFileOutErr;
import com.google.devtools.build.lib.testutil.TestUtils;
import com.google.devtools.build.lib.util.BlazeClock;
@@ -88,7 +88,8 @@ public class StandaloneSpawnStrategyTest {
BlazeDirectories directories =
new BlazeDirectories(outputBase, outputBase, workspaceDir, "mock-product-name");
- BlazeTestUtils.getIntegrationBinTools(directories);
+ // This call implicitly symlinks the integration bin tools into the exec root.
+ IntegrationMock.get().getIntegrationBinTools(directories);
OptionsParser optionsParser = OptionsParser.newOptionsParser(ExecutionOptions.class);
optionsParser.parse("--verbose_failures");
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/BlazeTestUtils.java b/src/test/java/com/google/devtools/build/lib/testutil/BlazeTestUtils.java
index 6c5b83fe35..d4b66a120a 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/BlazeTestUtils.java
+++ b/src/test/java/com/google/devtools/build/lib/testutil/BlazeTestUtils.java
@@ -18,18 +18,13 @@ import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
-import com.google.devtools.build.lib.analysis.BlazeDirectories;
-import com.google.devtools.build.lib.analysis.config.BinTools;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.Path;
-
import java.io.File;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
/**
@@ -40,38 +35,6 @@ public class BlazeTestUtils {
private BlazeTestUtils() {}
/**
- * Populates the _embedded_binaries/ directory, containing all binaries/libraries, by symlinking
- * directories#getEmbeddedBinariesRoot() to the test's runfiles tree.
- */
- public static BinTools getIntegrationBinTools(BlazeDirectories directories) throws IOException {
- Path embeddedDir = directories.getEmbeddedBinariesRoot();
- FileSystemUtils.createDirectoryAndParents(embeddedDir);
-
- Path runfiles = directories.getFileSystem().getPath(BlazeTestUtils.runfilesDir());
- // Copy over everything in embedded_scripts.
- Collection<Path> files = new ArrayList<>();
- for (String embeddedScriptPath : TestConstants.EMBEDDED_SCRIPTS_PATHS) {
- Path embeddedScripts = runfiles.getRelative(embeddedScriptPath);
- if (embeddedScripts.exists()) {
- files.addAll(embeddedScripts.getDirectoryEntries());
- } else {
- System.err.println("test does not have " + embeddedScripts);
- }
- }
-
- for (Path fromFile : files) {
- try {
- embeddedDir.getChild(fromFile.getBaseName()).createSymbolicLink(fromFile);
- } catch (IOException e) {
- System.err.println("Could not symlink: " + e.getMessage());
- }
- }
-
- return BinTools.forIntegrationTesting(
- directories, embeddedDir.toString(), TestConstants.EMBEDDED_TOOLS);
- }
-
- /**
* Writes a FilesetRule to a String array.
*
* @param name the name of the rule.