From 570c17f1fb1579a797112ad3a08dd8c994f4ff58 Mon Sep 17 00:00:00 2001 From: Ulf Adams Date: Thu, 23 Apr 2015 18:12:56 +0000 Subject: Move the BazelAnalysisMock to a subpackage of analysis. Analysis tests are incoming. -- MOS_MIGRATED_REVID=91903404 --- src/test/java/BUILD | 2 +- .../build/lib/analysis/BazelAnalysisMock.java | 119 -------------------- .../build/lib/analysis/mock/BazelAnalysisMock.java | 120 +++++++++++++++++++++ .../devtools/build/lib/testutil/TestConstants.java | 2 +- 4 files changed, 122 insertions(+), 121 deletions(-) delete mode 100644 src/test/java/com/google/devtools/build/lib/analysis/BazelAnalysisMock.java create mode 100644 src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java (limited to 'src') diff --git a/src/test/java/BUILD b/src/test/java/BUILD index c3e33e15aa..c4867fdf4c 100644 --- a/src/test/java/BUILD +++ b/src/test/java/BUILD @@ -191,11 +191,11 @@ java_test( java_library( name = "analysis_testutil", srcs = glob([ + "com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java", "com/google/devtools/build/lib/analysis/util/*.java", "com/google/devtools/build/lib/exec/util/*.java", "com/google/devtools/build/lib/packages/util/*.java", "com/google/devtools/build/lib/skyframe/util/*.java", - "com/google/devtools/build/lib/analysis/BazelAnalysisMock.java", ]), data = [ "//src/main/native:libunix.dylib", 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 deleted file mode 100644 index 28eb2d5667..0000000000 --- a/src/test/java/com/google/devtools/build/lib/analysis/BazelAnalysisMock.java +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright 2015 Google Inc. 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.analysis; - -import com.google.common.base.Functions; -import com.google.common.collect.ImmutableList; -import com.google.common.io.ByteStreams; -import com.google.devtools.build.lib.analysis.config.ConfigurationFactory; -import com.google.devtools.build.lib.analysis.config.FragmentOptions; -import com.google.devtools.build.lib.analysis.util.AnalysisMock; -import com.google.devtools.build.lib.bazel.rules.BazelConfiguration; -import com.google.devtools.build.lib.bazel.rules.BazelConfigurationCollection; -import com.google.devtools.build.lib.bazel.rules.BazelRuleClassProvider; -import com.google.devtools.build.lib.packages.util.MockToolsConfig; -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; -import java.nio.charset.StandardCharsets; -import java.util.Collection; - -public class BazelAnalysisMock extends AnalysisMock { - public static final AnalysisMock INSTANCE = new BazelAnalysisMock(); - - @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', ", - " target_version = '8')", - "filegroup(name = 'jdk-null')", - "filegroup(name = 'jdk-default', srcs = [':java'], path = 'jdk/jre')", - "filegroup(name = 'jdk', srcs = [':jdk-default', ':jdk-null'])", - "filegroup(name='langtools', srcs=['jdk/lib/tools.jar'])", - "filegroup(name='bootclasspath', srcs=['jdk/jre/lib/rt.jar'])", - "filegroup(name='java', srcs = ['jdk/jre/bin/java'])", - "exports_files(['JavaBuilder_deploy.jar','SingleJar_deploy.jar',", - " 'JavaBuilderCanary_deploy.jar', 'ijar'])"); - config.create("tools/cpp/BUILD", - "filegroup(name = 'toolchain', srcs = [':cc-compiler-local', ':empty'])", - "cc_toolchain(name = 'cc-compiler-k8', all_files = ':empty', compiler_files = ':empty',", - " cpu = 'local', dwp_files = ':empty', dynamic_runtime_libs = [':empty'], ", - " linker_files = ':empty',", - " objcopy_files = ':empty', static_runtime_libs = [':empty'], strip_files = ':empty',", - ")", - "cc_toolchain(name = 'cc-compiler-piii', all_files = ':empty', compiler_files = ':empty',", - " cpu = 'local', dwp_files = ':empty', dynamic_runtime_libs = [':empty'], ", - " linker_files = ':empty',", - " objcopy_files = ':empty', static_runtime_libs = [':empty'], strip_files = ':empty',", - ")", - "cc_toolchain(name = 'cc-compiler-darwin', all_files = ':empty', ", - " compiler_files = ':empty',", - " cpu = 'local', dwp_files = ':empty', dynamic_runtime_libs = [':empty'], ", - " linker_files = ':empty',", - " objcopy_files = ':empty', static_runtime_libs = [':empty'], strip_files = ':empty',", - ")"); - config.create("tools/cpp/CROSSTOOL", readFromResources("MOCK_CROSSTOOL")); - config.create("tools/genrule/BUILD", - "exports_files(['genrule-setup.sh'])"); - } - - @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); - } catch (IOException e) { - // This should never happen. - throw new AssertionError(e); - } - } - - @Override - public ConfigurationFactory createConfigurationFactory() { - return new ConfigurationFactory(new BazelConfigurationCollection(), - new BazelConfiguration.Loader(), - new CppConfigurationLoader(Functions.identity()), - new JvmConfigurationLoader(BazelRuleClassProvider.JAVA_CPU_SUPPLIER), - new JavaConfigurationLoader(BazelRuleClassProvider.JAVA_CPU_SUPPLIER), - new ObjcConfigurationLoader()); - } - - @Override - public ConfigurationCollectionFactory createConfigurationCollectionFactory() { - return new BazelConfigurationCollection(); - } - - @Override - public Collection getOptionOverrides() { - return ImmutableList.of(); - } - - @Override - public ImmutableList> getBuildOptions() { - return BazelRuleClassProvider.BUILD_OPTIONS; - } -} diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java new file mode 100644 index 0000000000..6e2b2e4c1a --- /dev/null +++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java @@ -0,0 +1,120 @@ +// Copyright 2015 Google Inc. 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.analysis.mock; + +import com.google.common.base.Functions; +import com.google.common.collect.ImmutableList; +import com.google.common.io.ByteStreams; +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.analysis.util.AnalysisMock; +import com.google.devtools.build.lib.bazel.rules.BazelConfiguration; +import com.google.devtools.build.lib.bazel.rules.BazelConfigurationCollection; +import com.google.devtools.build.lib.bazel.rules.BazelRuleClassProvider; +import com.google.devtools.build.lib.packages.util.MockToolsConfig; +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; +import java.nio.charset.StandardCharsets; +import java.util.Collection; + +public class BazelAnalysisMock extends AnalysisMock { + public static final AnalysisMock INSTANCE = new BazelAnalysisMock(); + + @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', ", + " target_version = '8')", + "filegroup(name = 'jdk-null')", + "filegroup(name = 'jdk-default', srcs = [':java'], path = 'jdk/jre')", + "filegroup(name = 'jdk', srcs = [':jdk-default', ':jdk-null'])", + "filegroup(name='langtools', srcs=['jdk/lib/tools.jar'])", + "filegroup(name='bootclasspath', srcs=['jdk/jre/lib/rt.jar'])", + "filegroup(name='java', srcs = ['jdk/jre/bin/java'])", + "exports_files(['JavaBuilder_deploy.jar','SingleJar_deploy.jar',", + " 'JavaBuilderCanary_deploy.jar', 'ijar'])"); + config.create("tools/cpp/BUILD", + "filegroup(name = 'toolchain', srcs = [':cc-compiler-local', ':empty'])", + "cc_toolchain(name = 'cc-compiler-k8', all_files = ':empty', compiler_files = ':empty',", + " cpu = 'local', dwp_files = ':empty', dynamic_runtime_libs = [':empty'], ", + " linker_files = ':empty',", + " objcopy_files = ':empty', static_runtime_libs = [':empty'], strip_files = ':empty',", + ")", + "cc_toolchain(name = 'cc-compiler-piii', all_files = ':empty', compiler_files = ':empty',", + " cpu = 'local', dwp_files = ':empty', dynamic_runtime_libs = [':empty'], ", + " linker_files = ':empty',", + " objcopy_files = ':empty', static_runtime_libs = [':empty'], strip_files = ':empty',", + ")", + "cc_toolchain(name = 'cc-compiler-darwin', all_files = ':empty', ", + " compiler_files = ':empty',", + " cpu = 'local', dwp_files = ':empty', dynamic_runtime_libs = [':empty'], ", + " linker_files = ':empty',", + " objcopy_files = ':empty', static_runtime_libs = [':empty'], strip_files = ':empty',", + ")"); + config.create("tools/cpp/CROSSTOOL", readFromResources("MOCK_CROSSTOOL")); + config.create("tools/genrule/BUILD", + "exports_files(['genrule-setup.sh'])"); + } + + @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); + } catch (IOException e) { + // This should never happen. + throw new AssertionError(e); + } + } + + @Override + public ConfigurationFactory createConfigurationFactory() { + return new ConfigurationFactory(new BazelConfigurationCollection(), + new BazelConfiguration.Loader(), + new CppConfigurationLoader(Functions.identity()), + new JvmConfigurationLoader(BazelRuleClassProvider.JAVA_CPU_SUPPLIER), + new JavaConfigurationLoader(BazelRuleClassProvider.JAVA_CPU_SUPPLIER), + new ObjcConfigurationLoader()); + } + + @Override + public ConfigurationCollectionFactory createConfigurationCollectionFactory() { + return new BazelConfigurationCollection(); + } + + @Override + public Collection getOptionOverrides() { + return ImmutableList.of(); + } + + @Override + public ImmutableList> getBuildOptions() { + return BazelRuleClassProvider.BUILD_OPTIONS; + } +} diff --git a/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java b/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java index 2bae9b9335..0e4edbc882 100644 --- a/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java +++ b/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java @@ -46,7 +46,7 @@ public class TestConstants { * Name of a class with an INSTANCE field of type AnalysisMock to be used for analysis tests. */ public static final String TEST_ANALYSIS_MOCK = - "com.google.devtools.build.lib.analysis.BazelAnalysisMock"; + "com.google.devtools.build.lib.analysis.mock.BazelAnalysisMock"; /** * Directory where we can find bazel's Java tests, relative to a test's runfiles directory. -- cgit v1.2.3