Code cleanup: Bazel mock language support classes
In this change:
- Delete dead code
(BazelMockCcSupport.setupBasePackage).
- Remove member object and anonymous nested class
(BazelMockCcSupport.CC_LABEL_NAME_FILTER) and
replace with static method. This yields simpler
code, it avoids storing an object unnecessarily,
and avoids that object having a reference to the
outer object (which in general could hinder
GC'ing the outer object if someone held a
reference to the nested object). Note, it's not
like we *need* these improvements, but they are
useful, even if their benefit is marginal.
- Mark classes final, so they are easier to reason
about (no need to check for subclasses and
potentially overridden methods).
RELNOTES: none
PiperOrigin-RevId: 294891140
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockAndroidSupport.java b/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockAndroidSupport.java
index a7458af..a90a80c 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockAndroidSupport.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockAndroidSupport.java
@@ -19,10 +19,10 @@
import com.google.devtools.build.lib.util.Pair;
import java.io.IOException;
-/**
- * Mocks out Android dependencies for testing.
- */
-public class BazelMockAndroidSupport {
+/** Mocks out Android dependencies for testing. */
+public final class BazelMockAndroidSupport {
+
+ private BazelMockAndroidSupport() {}
public static void setupNdk(MockToolsConfig config) throws IOException {
new Crosstool(config, "android/crosstool")
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java b/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java
index 033ef7c..f7a4c79 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java
@@ -25,42 +25,23 @@
public static final BazelMockCcSupport INSTANCE = new BazelMockCcSupport();
/** Filter to remove implicit dependencies of C/C++ rules. */
- private static final Predicate<String> CC_LABEL_NAME_FILTER =
- new Predicate<String>() {
- @Override
- public boolean apply(String label) {
- return !label.startsWith("//tools/cpp");
- }
- };
+ private static final boolean isNotCcLabel(String label) {
+ return !label.startsWith("//tools/cpp");
+ }
private BazelMockCcSupport() {}
private static final ImmutableList<String> CROSSTOOL_ARCHS =
ImmutableList.of("piii", "k8", "armeabi-v7a", "ppc");
- protected static void createBasePackage(MockToolsConfig config) throws IOException {
- config.create(
- "base/BUILD",
- "package(default_visibility=['//visibility:public'])",
- "cc_library(name = 'system_malloc', linkstatic = 1)",
- "cc_library(name = 'base', srcs=['timestamp.h'])");
- if (config.isRealFileSystem()) {
- config.linkTool("base/timestamp.h");
- } else {
- config.create("base/timestamp.h", "");
- }
- }
-
@Override
protected String getRealFilesystemCrosstoolTopPath() {
- assert false;
- return null;
+ throw new UnsupportedOperationException("TODO");
}
@Override
protected String[] getRealFilesystemTools(String crosstoolTop) {
- assert false;
- return null;
+ throw new UnsupportedOperationException("TODO");
}
@Override
@@ -87,6 +68,6 @@
@Override
public Predicate<String> labelNameFilter() {
- return CC_LABEL_NAME_FILTER;
+ return BazelMockCcSupport::isNotCcLabel;
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockPythonSupport.java b/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockPythonSupport.java
index d4d0a55..d96b9f2 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockPythonSupport.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockPythonSupport.java
@@ -18,10 +18,12 @@
import java.io.IOException;
/** Mock python support in Bazel. */
-public class BazelMockPythonSupport extends MockPythonSupport {
+public final class BazelMockPythonSupport extends MockPythonSupport {
public static final BazelMockPythonSupport INSTANCE = new BazelMockPythonSupport();
+ private BazelMockPythonSupport() {}
+
private static void addTool(MockToolsConfig config, String toolRelativePath) throws IOException {
config.create(
TestConstants.TOOLS_REPOSITORY_SCRATCH + toolRelativePath,