From 999762d038081ae44a26a21df4f8af5fddeba453 Mon Sep 17 00:00:00 2001 From: Googler Date: Wed, 10 Apr 2024 06:04:39 -0700 Subject: [PATCH] Prepare Bazel unit tests for loading top-level symbols from `rules_java` PiperOrigin-RevId: 623470267 Change-Id: I203929d7a3f8626aba71c6f1af7d1df82096b37e --- .../lib/analysis/mock/BazelAnalysisMock.java | 6 ++++ .../util/AbstractMockJavaSupport.java | 30 +++++++++++++++++++ .../build/lib/analysis/util/AnalysisMock.java | 7 +++++ 3 files changed, 43 insertions(+) create mode 100644 src/test/java/com/google/devtools/build/lib/analysis/util/AbstractMockJavaSupport.java 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 index ec13088327072b..177e77f161131d 100644 --- 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 @@ -23,6 +23,7 @@ import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; import com.google.devtools.build.lib.analysis.ShellConfiguration; +import com.google.devtools.build.lib.analysis.util.AbstractMockJavaSupport; import com.google.devtools.build.lib.analysis.util.AnalysisMock; import com.google.devtools.build.lib.bazel.bzlmod.LocalPathOverride; import com.google.devtools.build.lib.bazel.bzlmod.NonRegistryOverride; @@ -968,6 +969,11 @@ public MockCcSupport ccSupport() { return BazelMockCcSupport.INSTANCE; } + @Override + public AbstractMockJavaSupport javaSupport() { + return AbstractMockJavaSupport.BAZEL; + } + @Override public MockPythonSupport pySupport() { return BazelMockPythonSupport.INSTANCE; diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AbstractMockJavaSupport.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AbstractMockJavaSupport.java new file mode 100644 index 00000000000000..dd9b3a0f7c292a --- /dev/null +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AbstractMockJavaSupport.java @@ -0,0 +1,30 @@ +// Copyright 2024 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.analysis.util; + +import com.google.devtools.build.lib.packages.util.MockToolsConfig; +import java.io.IOException; + +public abstract class AbstractMockJavaSupport { + + public static final AbstractMockJavaSupport BAZEL = + new AbstractMockJavaSupport() { + @Override + public void setupRulesJava(MockToolsConfig mockToolsConfig) { + // nothing special required + } + }; + + public abstract void setupRulesJava(MockToolsConfig mockToolsConfig) throws IOException; +} 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 5883823b0ce7a2..f9ae747b54e99c 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 @@ -139,6 +139,8 @@ public void setupMockToolsRepository(MockToolsConfig config) throws IOException public abstract MockCcSupport ccSupport(); + public abstract AbstractMockJavaSupport javaSupport(); + public abstract MockPythonSupport pySupport(); public ImmutableMap getSkyFunctions(BlazeDirectories directories) { @@ -272,6 +274,11 @@ public MockCcSupport ccSupport() { return delegate.ccSupport(); } + @Override + public AbstractMockJavaSupport javaSupport() { + return delegate.javaSupport(); + } + @Override public MockPythonSupport pySupport() { return delegate.pySupport();