diff options
Diffstat (limited to 'src/test/java/com/google/devtools')
4 files changed, 25 insertions, 1 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/BazelAnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/BazelAnalysisMock.java index b4418a879a..6107b4180b 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/BazelAnalysisMock.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/BazelAnalysisMock.java @@ -27,6 +27,8 @@ import com.google.devtools.build.lib.rules.cpp.CppConfigurationLoader; import com.google.devtools.build.lib.rules.java.JavaConfigurationLoader; import com.google.devtools.build.lib.rules.java.JvmConfigurationLoader; import com.google.devtools.build.lib.rules.objc.ObjcConfigurationLoader; +import com.google.devtools.build.lib.vfs.FileSystemUtils; +import com.google.devtools.build.lib.vfs.Path; import java.io.IOException; import java.io.InputStream; @@ -38,6 +40,7 @@ public class BazelAnalysisMock extends AnalysisMock { @Override public void setupMockClient(MockToolsConfig config) throws IOException { + config.create("WORKSPACE"); config.create("tools/jdk/BUILD", "package(default_visibility=['//visibility:public'])", "java_toolchain(name = 'toolchain', encoding = 'UTF-8', source_version = '8', ", @@ -64,6 +67,13 @@ public class BazelAnalysisMock extends AnalysisMock { config.create("tools/cpp/CROSSTOOL", readFromResources("MOCK_CROSSTOOL")); } + @Override + public void setupMockWorkspaceFiles(Path embeddedBinariesRoot) throws IOException { + Path jdkWorkspacePath = embeddedBinariesRoot.getRelative("jdk.WORKSPACE"); + FileSystemUtils.createDirectoryAndParents(jdkWorkspacePath.getParentDirectory()); + FileSystemUtils.writeContentAsLatin1(jdkWorkspacePath, ""); + } + public static String readFromResources(String filename) { try (InputStream in = BazelAnalysisMock.class.getClassLoader().getResourceAsStream(filename)) { return new String(ByteStreams.toByteArray(in), StandardCharsets.UTF_8); diff --git a/src/test/java/com/google/devtools/build/lib/analysis/actions/SymlinkActionTest.java b/src/test/java/com/google/devtools/build/lib/analysis/actions/SymlinkActionTest.java index c2e1673e68..d2607aa5d8 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/actions/SymlinkActionTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/actions/SymlinkActionTest.java @@ -40,7 +40,7 @@ public class SymlinkActionTest extends BuildViewTestCase { @Override public void setUp() throws Exception { super.setUp(); - input = scratchFile("/workspace/input.txt", "Hello, world."); + input = scratchFile("input.txt", "Hello, world."); inputArtifact = getSourceArtifact("input.txt"); Path linkedInput = directories.getExecRoot().getRelative("input.txt"); FileSystemUtils.createDirectoryAndParents(linkedInput.getParentDirectory()); diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java index 173d521443..0c1c52c570 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java @@ -18,6 +18,7 @@ import com.google.devtools.build.lib.analysis.ConfigurationCollectionFactory; import com.google.devtools.build.lib.analysis.config.ConfigurationFactory; import com.google.devtools.build.lib.analysis.config.FragmentOptions; import com.google.devtools.build.lib.packages.util.MockToolsConfig; +import com.google.devtools.build.lib.vfs.Path; import java.io.IOException; import java.util.Collection; @@ -33,6 +34,12 @@ public abstract class AnalysisMock { */ public abstract void setupMockClient(MockToolsConfig mockToolsConfig) throws IOException; + /** + * This is called from test setup to create any necessary mock workspace files in the + * <code>_embedded_binaries</code> directory. + */ + public abstract void setupMockWorkspaceFiles(Path embeddedBinariesRoot) throws IOException; + public abstract ConfigurationFactory createConfigurationFactory(); public abstract ConfigurationCollectionFactory createConfigurationCollectionFactory(); @@ -54,6 +61,11 @@ public abstract class AnalysisMock { } @Override + public void setupMockWorkspaceFiles(Path embeddedBinariesRoot) throws IOException { + delegate.setupMockWorkspaceFiles(embeddedBinariesRoot); + } + + @Override public ConfigurationFactory createConfigurationFactory() { return delegate.createConfigurationFactory(); } diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java index faade0d605..d595cede55 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java @@ -174,6 +174,8 @@ public abstract class BuildViewTestCase extends FoundationTestCase { binTools = BinTools.forUnitTesting(directories, TestConstants.EMBEDDED_TOOLS); mockToolsConfig = new MockToolsConfig(rootDirectory, false); mock.setupMockClient(mockToolsConfig); + mock.setupMockWorkspaceFiles(directories.getEmbeddedBinariesRoot()); + configurationFactory = mock.createConfigurationFactory(); packageCacheOptions = parsePackageCacheOptions(); workspaceStatusActionFactory = |