Turn on Bzlmod for all `BuildViewTestCase`s Notable changes: - No more injected PrecomputedValue boilerplate to enable Bzlmod; it's all built into BuildViewTestCase - All "mocked" repos are turned into builtin modules PiperOrigin-RevId: 573163786 Change-Id: I952bfa8b1cc964c2de4e90e58fb97140cd2475fd
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunction.java index 5591c8c..a23e2a7 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunction.java
@@ -26,6 +26,7 @@ import com.google.devtools.build.lib.cmdline.RepositoryName; import com.google.devtools.build.lib.packages.BuildFileContainsErrorsException; import com.google.devtools.build.lib.packages.Package; +import com.google.devtools.build.lib.packages.RuleClassProvider; import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions; import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyFunctionException; @@ -40,6 +41,11 @@ /** {@link SkyFunction} for {@link RepositoryMappingValue}s. */ public class RepositoryMappingFunction implements SkyFunction { + private final RuleClassProvider ruleClassProvider; + + public RepositoryMappingFunction(RuleClassProvider ruleClassProvider) { + this.ruleClassProvider = ruleClassProvider; + } @Nullable @Override @@ -58,7 +64,10 @@ // such as @platforms. RepositoryMappingValue bazelToolsMapping = (RepositoryMappingValue) - env.getValue(RepositoryMappingValue.key(RepositoryName.BAZEL_TOOLS)); + env.getValue( + RepositoryMappingValue.Key.create( + ruleClassProvider.getToolsRepository(), + /* rootModuleShouldSeeWorkspaceRepos= */ false)); if (bazelToolsMapping == null) { return null; } @@ -76,7 +85,9 @@ RepositoryName.MAIN), StarlarkBuiltinsValue.BUILTINS_REPO) .withAdditionalMappings(bazelToolsMapping.getRepositoryMapping()), - "bazel_tools", + // The "associated module" doesn't exist here (@_builtins doesn't come from a module), + // so we just supply dummy values. + "", Version.EMPTY); }
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java index 88a0e83..44f904a 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -714,7 +714,7 @@ map.put(SkyFunctions.REGISTERED_TOOLCHAINS, new RegisteredToolchainsFunction()); map.put(SkyFunctions.SINGLE_TOOLCHAIN_RESOLUTION, new SingleToolchainResolutionFunction()); map.put(SkyFunctions.TOOLCHAIN_RESOLUTION, new ToolchainResolutionFunction()); - map.put(SkyFunctions.REPOSITORY_MAPPING, new RepositoryMappingFunction()); + map.put(SkyFunctions.REPOSITORY_MAPPING, new RepositoryMappingFunction(ruleClassProvider)); map.put(SkyFunctions.RESOLVED_FILE, new ResolvedFileFunction()); map.put( SkyFunctions.PLATFORM_MAPPING,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java index 73a3ea6..54a9fbe 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
@@ -505,7 +505,7 @@ .put( BzlmodRepoRuleValue.BZLMOD_REPO_RULE, new BzlmodRepoRuleFunction(ruleClassProvider, directories)) - .put(SkyFunctions.REPOSITORY_MAPPING, new RepositoryMappingFunction()) + .put(SkyFunctions.REPOSITORY_MAPPING, new RepositoryMappingFunction(ruleClassProvider)) .put( SkyFunctions.PACKAGE, new PackageFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/AutoExecGroupsTest.java b/src/test/java/com/google/devtools/build/lib/analysis/AutoExecGroupsTest.java index 4279b3f..93ae96b 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/AutoExecGroupsTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/AutoExecGroupsTest.java
@@ -1830,8 +1830,8 @@ mockToolsConfig, CcToolchainConfig.builder() .withFeatures(CppRuleClasses.THIN_LTO, CppRuleClasses.SUPPORTS_START_END_LIB) - .withToolchainTargetConstraints("@//platforms:constraint_1") - .withToolchainExecConstraints("@//platforms:constraint_1")); + .withToolchainTargetConstraints("@@//platforms:constraint_1") + .withToolchainExecConstraints("@@//platforms:constraint_1")); ImmutableList<Action> actions = getActions("//test:custom_rule_name", CppLinkAction.class); ImmutableList<Action> cppLTOActions = @@ -2006,8 +2006,8 @@ mockToolsConfig, CcToolchainConfig.builder() .withFeatures(MockCcSupport.HEADER_MODULES_FEATURES) - .withToolchainTargetConstraints("@//platforms:constraint_1") - .withToolchainExecConstraints("@//platforms:constraint_1")); + .withToolchainTargetConstraints("@@//platforms:constraint_1") + .withToolchainExecConstraints("@@//platforms:constraint_1")); ImmutableList<Action> cppCompileActions = getActions("//bazel_internal/test_rules/cc:custom_rule_name", CppCompileAction.class); @@ -2077,8 +2077,8 @@ mockToolsConfig, CcToolchainConfig.builder() .withFeatures(MockCcSupport.HEADER_MODULES_FEATURES) - .withToolchainTargetConstraints("@//platforms:constraint_1") - .withToolchainExecConstraints("@//platforms:constraint_1")); + .withToolchainTargetConstraints("@@//platforms:constraint_1") + .withToolchainExecConstraints("@@//platforms:constraint_1")); ImmutableList<Action> cppCompileActions = getActions("//bazel_internal/test_rules/cc:custom_rule_name", CppCompileAction.class); @@ -2143,8 +2143,8 @@ mockToolsConfig, CcToolchainConfig.builder() .withFeatures(CppRuleClasses.PARSE_HEADERS) - .withToolchainTargetConstraints("@//platforms:constraint_1") - .withToolchainExecConstraints("@//platforms:constraint_1")); + .withToolchainTargetConstraints("@@//platforms:constraint_1") + .withToolchainExecConstraints("@@//platforms:constraint_1")); ImmutableList<Action> cppCompileActions = getActions("//bazel_internal/test_rules/cc:custom_rule_name", CppCompileAction.class);
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/LocationExpanderIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/analysis/LocationExpanderIntegrationTest.java index 7a31156..951f810 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/LocationExpanderIntegrationTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/LocationExpanderIntegrationTest.java
@@ -17,7 +17,6 @@ import static com.google.common.truth.Truth.assertThat; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; -import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.ModifiedFileSet; import com.google.devtools.build.lib.vfs.Root; @@ -138,21 +137,21 @@ assertThat(expander.expand("foo $(rootpaths :foo) bar")) .matches("foo expansion/foo.txt bar"); assertThat(expander.expand("foo $(rlocationpath :foo) bar")) - .isEqualTo("foo workspace/expansion/foo.txt bar"); + .isEqualTo("foo " + ruleClassProvider.getRunfilesPrefix() + "/expansion/foo.txt bar"); assertThat(expander.expand("foo $(rlocationpaths :foo) bar")) - .isEqualTo("foo workspace/expansion/foo.txt bar"); + .isEqualTo("foo " + ruleClassProvider.getRunfilesPrefix() + "/expansion/foo.txt bar"); assertThat(expander.expand("foo $(rlocationpath //expansion:foo) bar")) - .isEqualTo("foo workspace/expansion/foo.txt bar"); + .isEqualTo("foo " + ruleClassProvider.getRunfilesPrefix() + "/expansion/foo.txt bar"); assertThat(expander.expand("foo $(rlocationpaths //expansion:foo) bar")) - .isEqualTo("foo workspace/expansion/foo.txt bar"); + .isEqualTo("foo " + ruleClassProvider.getRunfilesPrefix() + "/expansion/foo.txt bar"); assertThat(expander.expand("foo $(rlocationpath @//expansion:foo) bar")) - .isEqualTo("foo workspace/expansion/foo.txt bar"); + .isEqualTo("foo " + ruleClassProvider.getRunfilesPrefix() + "/expansion/foo.txt bar"); assertThat(expander.expand("foo $(rlocationpaths @//expansion:foo) bar")) - .isEqualTo("foo workspace/expansion/foo.txt bar"); + .isEqualTo("foo " + ruleClassProvider.getRunfilesPrefix() + "/expansion/foo.txt bar"); assertThat(expander.expand("foo $(rlocationpath @workspace//expansion:foo) bar")) - .isEqualTo("foo workspace/expansion/foo.txt bar"); + .isEqualTo("foo " + ruleClassProvider.getRunfilesPrefix() + "/expansion/foo.txt bar"); assertThat(expander.expand("foo $(rlocationpaths @workspace//expansion:foo) bar")) - .isEqualTo("foo workspace/expansion/foo.txt bar"); + .isEqualTo("foo " + ruleClassProvider.getRunfilesPrefix() + "/expansion/foo.txt bar"); } @Test @@ -262,6 +261,6 @@ assertThat(expander.expand("foo $(rlocationpaths :foo) bar")) .isEqualTo( "foo __main__/expansion/bar.txt __main__/expansion/foo.txt bar" - .replace("__main__", TestConstants.WORKSPACE_NAME)); + .replace("__main__", ruleClassProvider.getRunfilesPrefix())); } }
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/RunfilesRepoMappingManifestTest.java b/src/test/java/com/google/devtools/build/lib/analysis/RunfilesRepoMappingManifestTest.java index 4517be1..e7949eb 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/RunfilesRepoMappingManifestTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/RunfilesRepoMappingManifestTest.java
@@ -22,20 +22,9 @@ import com.google.devtools.build.lib.actions.Action; import com.google.devtools.build.lib.actions.CommandLineExpansionException; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; -import com.google.devtools.build.lib.bazel.bzlmod.BazelLockFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.BazelModuleResolutionFunction; -import com.google.devtools.build.lib.bazel.bzlmod.FakeRegistry; -import com.google.devtools.build.lib.bazel.bzlmod.ModuleFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.YankedVersionsUtil; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.BazelCompatibilityMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.CheckDirectDepsMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.LockfileMode; import com.google.devtools.build.lib.rules.repository.RepositoryDirectoryDirtinessChecker; -import com.google.devtools.build.lib.skyframe.PrecomputedValue; -import com.google.devtools.build.lib.skyframe.PrecomputedValue.Injected; import com.google.devtools.build.lib.skyframe.SkyframeExecutorRepositoryHelpersHolder; import com.google.devtools.build.lib.util.Fingerprint; -import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; import java.util.Map.Entry; import net.starlark.java.eval.EvalException; @@ -48,25 +37,6 @@ /** Tests that the repo mapping manifest file is properly generated for runfiles. */ @RunWith(JUnit4.class) public class RunfilesRepoMappingManifestTest extends BuildViewTestCase { - private Path moduleRoot; - private FakeRegistry registry; - - @Override - protected ImmutableList<Injected> extraPrecomputedValues() throws Exception { - moduleRoot = scratch.dir("modules"); - registry = FakeRegistry.DEFAULT_FACTORY.newFakeRegistry(moduleRoot.getPathString()); - return ImmutableList.of( - PrecomputedValue.injected( - ModuleFileFunction.REGISTRIES, ImmutableList.of(registry.getUrl())), - PrecomputedValue.injected(ModuleFileFunction.IGNORE_DEV_DEPS, false), - PrecomputedValue.injected(ModuleFileFunction.MODULE_OVERRIDES, ImmutableMap.of()), - PrecomputedValue.injected( - BazelModuleResolutionFunction.CHECK_DIRECT_DEPENDENCIES, CheckDirectDepsMode.WARNING), - PrecomputedValue.injected( - BazelModuleResolutionFunction.BAZEL_COMPATIBILITY_MODE, BazelCompatibilityMode.ERROR), - PrecomputedValue.injected(BazelLockFileFunction.LOCKFILE_MODE, LockfileMode.UPDATE), - PrecomputedValue.injected(YankedVersionsUtil.ALLOWED_YANKED_VERSIONS, ImmutableList.of())); - } @Override protected SkyframeExecutorRepositoryHelpersHolder getRepositoryHelpersHolder() { @@ -76,11 +46,6 @@ new RepositoryDirectoryDirtinessChecker()); } - @Before - public void enableBzlmod() throws Exception { - setBuildLanguageOptions("--enable_bzlmod"); - } - /** * Sets up a Bazel module bare_rule@1.0, which provides a bare_binary rule that passes along * runfiles in the data attribute, and does nothing else. @@ -269,6 +234,7 @@ "bazel_dep(name='bare_rule',version='1.0')"); scratch.overwriteFile( "BUILD", "load('@bare_rule//:defs.bzl', 'bare_binary')", "bare_binary(name='aaa')"); + invalidatePackages(); RepoMappingManifestAction actionBeforeChange = getRepoMappingManifestActionForTarget("//:aaa"); @@ -288,6 +254,7 @@ "bazel_dep(name='bare_rule',version='1.0')"); scratch.overwriteFile( "BUILD", "load('@bare_rule//:defs.bzl', 'bare_binary')", "bare_binary(name='aaa')"); + invalidatePackages(); RepoMappingManifestAction actionBeforeChange = getRepoMappingManifestActionForTarget("//:aaa"); @@ -320,6 +287,7 @@ scratch.overwriteFile(moduleRoot.getRelative("bbb~1.0").getRelative("BUILD").getPathString()); scratch.overwriteFile( moduleRoot.getRelative("bbb~1.0").getRelative("def.bzl").getPathString(), "BBB = '1'"); + invalidatePackages(); RepoMappingManifestAction actionBeforeChange = getRepoMappingManifestActionForTarget("//:aaa"); @@ -391,6 +359,7 @@ moduleRoot.getRelative("ddd~1.0/BUILD").getPathString(), "load('@bare_rule//:defs.bzl', 'bare_binary')", "bare_binary(name='ddd')"); + invalidatePackages(); RunfilesSupport runfilesSupport = getRunfilesSupport("@aaa~1.0//:aaa"); ImmutableList<String> runfilesPaths =
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/StarlarkAttrTransitionProviderTest.java b/src/test/java/com/google/devtools/build/lib/analysis/StarlarkAttrTransitionProviderTest.java index efead04..d5cc1a2 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/StarlarkAttrTransitionProviderTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/StarlarkAttrTransitionProviderTest.java
@@ -617,7 +617,7 @@ "settings_under_test = {", " '//command_line_option:cpu': 'armeabi-v7a',", " '//command_line_option:compilation_mode': 'dbg',", - " '//command_line_option:crosstool_top': '@//android/crosstool:everything',", + " '//command_line_option:crosstool_top': '@@//android/crosstool:everything',", " '//command_line_option:platform_suffix': 'my-platform-suffix',", "}", "def set_options_transition_func(settings, attr):",
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/StarlarkRuleTransitionProviderTest.java b/src/test/java/com/google/devtools/build/lib/analysis/StarlarkRuleTransitionProviderTest.java index c52d316..48920e7 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/StarlarkRuleTransitionProviderTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/StarlarkRuleTransitionProviderTest.java
@@ -27,21 +27,11 @@ import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; import com.google.devtools.build.lib.analysis.util.DummyTestFragment; import com.google.devtools.build.lib.analysis.util.DummyTestFragment.DummyTestOptions; -import com.google.devtools.build.lib.bazel.bzlmod.BazelLockFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.BazelModuleResolutionFunction; -import com.google.devtools.build.lib.bazel.bzlmod.FakeRegistry; -import com.google.devtools.build.lib.bazel.bzlmod.ModuleFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.YankedVersionsUtil; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.BazelCompatibilityMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.CheckDirectDepsMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.LockfileMode; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.RuleTransitionData; import com.google.devtools.build.lib.rules.cpp.CppOptions; import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; -import com.google.devtools.build.lib.skyframe.PrecomputedValue; -import com.google.devtools.build.lib.skyframe.PrecomputedValue.Injected; import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.vfs.ModifiedFileSet; @@ -49,7 +39,6 @@ import com.google.devtools.build.lib.vfs.Root; import com.google.testing.junit.testparameterinjector.TestParameterInjector; import com.google.testing.junit.testparameterinjector.TestParameters; -import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -60,28 +49,6 @@ /** Tests for StarlarkRuleTransitionProvider. */ @RunWith(TestParameterInjector.class) public final class StarlarkRuleTransitionProviderTest extends BuildViewTestCase { - private FakeRegistry registry; - - @Override - protected ImmutableList<Injected> extraPrecomputedValues() { - try { - registry = - FakeRegistry.DEFAULT_FACTORY.newFakeRegistry(scratch.dir("modules").getPathString()); - } catch (IOException e) { - throw new IllegalStateException(e); - } - return ImmutableList.of( - PrecomputedValue.injected( - ModuleFileFunction.REGISTRIES, ImmutableList.of(registry.getUrl())), - PrecomputedValue.injected(ModuleFileFunction.IGNORE_DEV_DEPS, false), - PrecomputedValue.injected(ModuleFileFunction.MODULE_OVERRIDES, ImmutableMap.of()), - PrecomputedValue.injected(YankedVersionsUtil.ALLOWED_YANKED_VERSIONS, ImmutableList.of()), - PrecomputedValue.injected( - BazelModuleResolutionFunction.CHECK_DIRECT_DEPENDENCIES, CheckDirectDepsMode.WARNING), - PrecomputedValue.injected( - BazelModuleResolutionFunction.BAZEL_COMPATIBILITY_MODE, BazelCompatibilityMode.ERROR), - PrecomputedValue.injected(BazelLockFileFunction.LOCKFILE_MODE, LockfileMode.UPDATE)); - } @Override protected ConfiguredRuleClassProvider createRuleClassProvider() { @@ -1320,7 +1287,7 @@ @Test public void successfulTypeConversionOfNativeListOption_unambiguousLabels() throws Exception { - setBuildLanguageOptions("--enable_bzlmod", "--incompatible_unambiguous_label_stringification"); + setBuildLanguageOptions("--incompatible_unambiguous_label_stringification"); scratch.overwriteFile("MODULE.bazel", "bazel_dep(name='rules_x',version='1.0')"); registry.addModule(createModuleKey("rules_x", "1.0"), "module(name='rules_x', version='1.0')"); @@ -1358,6 +1325,8 @@ "platform(name = 'my_platform')", "my_rule(name = 'test')"); + invalidatePackages(); + getConfiguredTarget("//test"); assertNoEvents(); }
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 740ac5f..fec50b1 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
@@ -13,6 +13,7 @@ // limitations under the License. package com.google.devtools.build.lib.analysis.mock; +import static com.google.common.collect.ImmutableMap.toImmutableMap; import static java.nio.charset.StandardCharsets.UTF_8; import com.google.common.collect.ImmutableList; @@ -46,6 +47,7 @@ import java.nio.file.Paths; import java.util.Arrays; import java.util.List; +import java.util.Map; /** Subclass of {@link AnalysisMock} using Bazel-specific semantics. */ public final class BazelAnalysisMock extends AnalysisMock { @@ -126,13 +128,16 @@ @Override public void setupMockClient(MockToolsConfig config, List<String> workspaceContents) throws IOException { + config.create("local_config_xcode_workspace/WORKSPACE"); config.create("local_config_xcode_workspace/BUILD", "xcode_config(name = 'host_xcodes')"); config.create( + "local_config_xcode_workspace/MODULE.bazel", "module(name = 'local_config_xcode')"); + config.create( "protobuf_workspace/BUILD", "licenses(['notice'])", "exports_files(['protoc', 'cc_toolchain'])"); - config.create("local_config_xcode_workspace/WORKSPACE"); config.create("protobuf_workspace/WORKSPACE"); + config.create("protobuf_workspace/MODULE.bazel", "module(name='com_google_protobuf')"); config.overwrite("WORKSPACE", workspaceContents.toArray(new String[0])); /* The rest of platforms is initialized in {@link MockPlatformSupport}. */ config.create("platforms_workspace/WORKSPACE", "workspace(name = 'platforms')"); @@ -142,6 +147,8 @@ config.create( "local_config_platform_workspace/MODULE.bazel", "module(name = 'local_config_platform')"); config.create("build_bazel_apple_support/WORKSPACE", "workspace(name = 'apple_support')"); + config.create( + "build_bazel_apple_support/MODULE.bazel", "module(name = 'build_bazel_apple_support')"); config.create("embedded_tools/WORKSPACE", "workspace(name = 'bazel_tools')"); Runfiles runfiles = Runfiles.create(); for (String filename : @@ -401,11 +408,11 @@ "embedded_tools/tools/allowlists/config_feature_flag/BUILD", "package_group(", " name='config_feature_flag',", - " includes=['@//tools/allowlists/config_feature_flag'],", + " includes=['@@//tools/allowlists/config_feature_flag'],", ")", "package_group(", " name='config_feature_flag_setter',", - " includes=['@//tools/allowlists/config_feature_flag:config_feature_flag_setter'],", + " includes=['@@//tools/allowlists/config_feature_flag:config_feature_flag_setter'],", ")"); config.create( @@ -506,6 +513,9 @@ " toolchain_type = '@rules_java//java/toolchains/javac:toolchain_type',", " )"); + config.create("third_party/bazel_rules/rules_proto/WORKSPACE"); + config.create("third_party/bazel_rules/rules_proto/MODULE.bazel", "module(name='rules_proto')"); + MockPlatformSupport.setup(config); ccSupport().setup(config); pySupport().setup(config); @@ -681,24 +691,28 @@ } @Override - protected ImmutableMap<String, NonRegistryOverride> getBuiltinModules( - BlazeDirectories directories) { - return ImmutableMap.of( - "bazel_tools", - LocalPathOverride.create( - directories.getEmbeddedBinariesRoot().getRelative("embedded_tools").getPathString()), - "platforms", - LocalPathOverride.create( - directories - .getEmbeddedBinariesRoot() - .getRelative("platforms_workspace") - .getPathString()), - "rules_java", - LocalPathOverride.create( - directories - .getEmbeddedBinariesRoot() - .getRelative("rules_java_workspace") - .getPathString())); + public ImmutableMap<String, NonRegistryOverride> getBuiltinModules(BlazeDirectories directories) { + ImmutableMap<String, String> moduleNameToPath = + ImmutableMap.<String, String>builder() + .put("bazel_tools", "embedded_tools") + .put("platforms", "platforms_workspace") + .put("local_config_platform", "local_config_platform_workspace") + .put("rules_java", "rules_java_workspace") + .put("com_google_protobuf", "protobuf_workspace") + .put("rules_proto", "third_party/bazel_rules/rules_proto") + .put("build_bazel_apple_support", "build_bazel_apple_support") + .put("local_config_xcode", "local_config_xcode_workspace") + .buildOrThrow(); + return moduleNameToPath.entrySet().stream() + .collect( + toImmutableMap( + Map.Entry::getKey, + e -> + LocalPathOverride.create( + directories + .getWorkingDirectory() + .getRelative(e.getValue()) + .getPathString()))); } @Override
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/starlark/StarlarkSubruleTest.java b/src/test/java/com/google/devtools/build/lib/analysis/starlark/StarlarkSubruleTest.java index 746efbe..2e9fa56 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/starlark/StarlarkSubruleTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/starlark/StarlarkSubruleTest.java
@@ -249,7 +249,7 @@ getProvider("//subrule_testing:foo", "//subrule_testing:myrule.bzl", "MyInfo"); assertThat(provider).isNotNull(); - assertThat(provider.getValue("result")).isEqualTo("called in: @//subrule_testing:foo"); + assertThat(provider.getValue("result")).isEqualTo("called in: @@//subrule_testing:foo"); } @Test
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/test/TestActionBuilderTest.java b/src/test/java/com/google/devtools/build/lib/analysis/test/TestActionBuilderTest.java index fc61e3f..943aa82 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/test/TestActionBuilderTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/test/TestActionBuilderTest.java
@@ -330,7 +330,7 @@ new StarlarkProvider.Key(Label.parseCanonicalUnchecked("//:aspect.bzl"), "StructImpl"); StructImpl info = (StructImpl) aspectValue.get(key); assertThat(((Depset) info.getValue("labels")).getSet(String.class).toList()) - .containsExactly("@//:suite", "@//:test_a", "@//:test_b"); + .containsExactly("@@//:suite", "@@//:test_a", "@@//:test_b"); } @Test @@ -363,7 +363,7 @@ new StarlarkProvider.Key(Label.parseCanonicalUnchecked("//:aspect.bzl"), "StructImpl"); StructImpl info = (StructImpl) aspectValue.get(key); assertThat(((Depset) info.getValue("labels")).getSet(String.class).toList()) - .containsExactly("@//:suite", "@//:test_b"); + .containsExactly("@@//:suite", "@@//:test_b"); } @Test @@ -396,7 +396,7 @@ StructImpl info = (StructImpl) a.get(key); labels.addAll(((Depset) info.getValue("labels")).getSet(String.class).toList()); } - assertThat(labels).containsExactly("@//:test_a", "@//:test_b"); + assertThat(labels).containsExactly("@@//:test_a", "@@//:test_b"); } private void writeLabelCollectionAspect() 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 977c8c8..fdcfa58 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
@@ -15,6 +15,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Maps; import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; import com.google.devtools.build.lib.bazel.bzlmod.BazelDepGraphFunction; @@ -24,6 +25,10 @@ import com.google.devtools.build.lib.bazel.bzlmod.ModuleFileFunction; import com.google.devtools.build.lib.bazel.bzlmod.NonRegistryOverride; import com.google.devtools.build.lib.bazel.bzlmod.RepoSpecFunction; +import com.google.devtools.build.lib.bazel.bzlmod.SingleExtensionEvalFunction; +import com.google.devtools.build.lib.bazel.bzlmod.SingleExtensionUsagesFunction; +import com.google.devtools.build.lib.bazel.repository.downloader.DownloadManager; +import com.google.devtools.build.lib.bazel.repository.starlark.StarlarkRepositoryFunction; import com.google.devtools.build.lib.bazel.rules.android.AndroidNdkRepositoryFunction; import com.google.devtools.build.lib.bazel.rules.android.AndroidNdkRepositoryRule; import com.google.devtools.build.lib.bazel.rules.android.AndroidSdkRepositoryFunction; @@ -49,6 +54,7 @@ import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; +import org.mockito.Mockito; /** Create a mock client for the analysis phase, as well as a configuration factory. */ public abstract class AnalysisMock extends LoadingMock { @@ -127,30 +133,36 @@ addExtraRepositoryFunctions(repositoryHandlers); - return ImmutableMap.of( - SkyFunctions.REPOSITORY_DIRECTORY, - new RepositoryDelegatorFunction( - repositoryHandlers.build(), - null, - new AtomicBoolean(true), - ImmutableMap::of, - directories, - BazelSkyframeExecutorConstants.EXTERNAL_PACKAGE_HELPER), - SkyFunctions.MODULE_FILE, - new ModuleFileFunction( - FakeRegistry.DEFAULT_FACTORY, - directories.getWorkspace(), - getBuiltinModules(directories)), - SkyFunctions.BAZEL_DEP_GRAPH, - new BazelDepGraphFunction(), - SkyFunctions.BAZEL_LOCK_FILE, - new BazelLockFileFunction(directories.getWorkspace()), - SkyFunctions.BAZEL_MODULE_RESOLUTION, - new BazelModuleResolutionFunction(), - SkyFunctions.REPO_SPEC, - new RepoSpecFunction(FakeRegistry.DEFAULT_FACTORY), - SkyFunctions.CLIENT_ENVIRONMENT_VARIABLE, - new ClientEnvironmentFunction(new AtomicReference<>(ImmutableMap.of()))); + DownloadManager downloadManager = Mockito.mock(DownloadManager.class); + + return ImmutableMap.<SkyFunctionName, SkyFunction>builder() + .put( + SkyFunctions.REPOSITORY_DIRECTORY, + new RepositoryDelegatorFunction( + repositoryHandlers.buildKeepingLast(), + new StarlarkRepositoryFunction(downloadManager), + new AtomicBoolean(true), + ImmutableMap::of, + directories, + BazelSkyframeExecutorConstants.EXTERNAL_PACKAGE_HELPER)) + .put( + SkyFunctions.MODULE_FILE, + new ModuleFileFunction( + FakeRegistry.DEFAULT_FACTORY, + directories.getWorkspace(), + getBuiltinModules(directories))) + .put(SkyFunctions.BAZEL_DEP_GRAPH, new BazelDepGraphFunction()) + .put(SkyFunctions.BAZEL_LOCK_FILE, new BazelLockFileFunction(directories.getWorkspace())) + .put(SkyFunctions.BAZEL_MODULE_RESOLUTION, new BazelModuleResolutionFunction()) + .put( + SkyFunctions.SINGLE_EXTENSION_EVAL, + new SingleExtensionEvalFunction(directories, ImmutableMap::of, downloadManager)) + .put(SkyFunctions.SINGLE_EXTENSION_USAGES, new SingleExtensionUsagesFunction()) + .put(SkyFunctions.REPO_SPEC, new RepoSpecFunction(FakeRegistry.DEFAULT_FACTORY)) + .put( + SkyFunctions.CLIENT_ENVIRONMENT_VARIABLE, + new ClientEnvironmentFunction(new AtomicReference<>(ImmutableMap.of()))) + .buildOrThrow(); } // Allow subclasses to add extra repository functions. @@ -158,7 +170,7 @@ ImmutableMap.Builder<String, RepositoryFunction> repositoryHandlers); /** Returns the built-in modules. */ - protected abstract ImmutableMap<String, NonRegistryOverride> getBuiltinModules( + public abstract ImmutableMap<String, NonRegistryOverride> getBuiltinModules( BlazeDirectories directories); /** @@ -222,11 +234,22 @@ @Override public ImmutableMap<SkyFunctionName, SkyFunction> getSkyFunctions( BlazeDirectories directories) { - return delegate.getSkyFunctions(directories); + return ImmutableMap.<SkyFunctionName, SkyFunction>builder() + .putAll( + Maps.filterKeys( + super.getSkyFunctions(directories), + fnName -> !fnName.equals(SkyFunctions.MODULE_FILE))) + .put( + SkyFunctions.MODULE_FILE, + new ModuleFileFunction( + FakeRegistry.DEFAULT_FACTORY, + directories.getWorkspace(), + getBuiltinModules(directories))) + .buildOrThrow(); } @Override - protected ImmutableMap<String, NonRegistryOverride> getBuiltinModules( + public ImmutableMap<String, NonRegistryOverride> getBuiltinModules( BlazeDirectories directories) { return delegate.getBuiltinModules(directories); }
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java index 792e1a3..b5d6f3c 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
@@ -195,7 +195,6 @@ analysisMock.getProductName()); workspaceStatusActionFactory = new AnalysisTestUtil.DummyWorkspaceStatusActionFactory(); - scratch.file(rootDirectory.getRelative("MODULE.bazel").getPathString(), ""); moduleRoot = scratch.dir("modules"); registry = FakeRegistry.DEFAULT_FACTORY.newFakeRegistry(moduleRoot.getPathString());
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BUILD b/src/test/java/com/google/devtools/build/lib/analysis/util/BUILD index f3d85dd..f37bec1 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/BUILD +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BUILD
@@ -82,6 +82,8 @@ "//src/main/java/com/google/devtools/build/lib/bazel/bzlmod:resolution", "//src/main/java/com/google/devtools/build/lib/bazel/bzlmod:resolution_impl", "//src/main/java/com/google/devtools/build/lib/bazel/repository:repository_options", + "//src/main/java/com/google/devtools/build/lib/bazel/repository/downloader", + "//src/main/java/com/google/devtools/build/lib/bazel/repository/starlark", "//src/main/java/com/google/devtools/build/lib/bazel/rules/android", "//src/main/java/com/google/devtools/build/lib/bugreport", "//src/main/java/com/google/devtools/build/lib/clock", @@ -139,6 +141,7 @@ "//third_party:guava", "//third_party:jsr305", "//third_party:junit4", + "//third_party:mockito", "//third_party:truth", ], )
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 93492e9..f123d75 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
@@ -106,7 +106,14 @@ import com.google.devtools.build.lib.analysis.starlark.StarlarkTransition.TransitionException; import com.google.devtools.build.lib.analysis.test.BaselineCoverageAction; import com.google.devtools.build.lib.analysis.test.InstrumentedFilesInfo; +import com.google.devtools.build.lib.bazel.bzlmod.BazelLockFileFunction; +import com.google.devtools.build.lib.bazel.bzlmod.BazelModuleResolutionFunction; +import com.google.devtools.build.lib.bazel.bzlmod.FakeRegistry; import com.google.devtools.build.lib.bazel.bzlmod.ModuleFileFunction; +import com.google.devtools.build.lib.bazel.bzlmod.YankedVersionsUtil; +import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.BazelCompatibilityMode; +import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.CheckDirectDepsMode; +import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.LockfileMode; import com.google.devtools.build.lib.buildtool.BuildRequestOptions; import com.google.devtools.build.lib.clock.BlazeClock; import com.google.devtools.build.lib.cmdline.Label; @@ -226,6 +233,9 @@ protected BlazeDirectories directories; protected ActionKeyContext actionKeyContext; + protected Path moduleRoot; + protected FakeRegistry registry; + // Note that these configurations are virtual (they use only VFS) protected BuildConfigurationValue targetConfig; // "target" or "build" config protected BuildConfigurationValue execConfig; @@ -273,6 +283,8 @@ rootDirectory, /* defaultSystemJavabase= */ null, analysisMock.getProductName()); + moduleRoot = scratch.dir("modules"); + registry = FakeRegistry.DEFAULT_FACTORY.newFakeRegistry(moduleRoot.getPathString()); actionKeyContext = new ActionKeyContext(); mockToolsConfig = new MockToolsConfig(rootDirectory, false); @@ -287,9 +299,6 @@ getOutputPath().createDirectoryAndParents(); ImmutableList<PrecomputedValue.Injected> extraPrecomputedValues = ImmutableList.<PrecomputedValue.Injected>builder() - .add( - PrecomputedValue.injected( - PrecomputedValue.STARLARK_SEMANTICS, StarlarkSemantics.DEFAULT)) .add(PrecomputedValue.injected(PrecomputedValue.REPO_ENV, ImmutableMap.of())) .add(PrecomputedValue.injected(ModuleFileFunction.MODULE_OVERRIDES, ImmutableMap.of())) .add( @@ -307,6 +316,24 @@ PrecomputedValue.injected( BuildInfoCollectionFunction.BUILD_INFO_FACTORIES, ruleClassProvider.getBuildInfoFactoriesAsMap())) + .add( + PrecomputedValue.injected( + ModuleFileFunction.REGISTRIES, ImmutableList.of(registry.getUrl()))) + .add(PrecomputedValue.injected(ModuleFileFunction.IGNORE_DEV_DEPS, false)) + .add(PrecomputedValue.injected(ModuleFileFunction.MODULE_OVERRIDES, ImmutableMap.of())) + .add( + PrecomputedValue.injected( + YankedVersionsUtil.ALLOWED_YANKED_VERSIONS, ImmutableList.of())) + .add( + PrecomputedValue.injected( + BazelModuleResolutionFunction.CHECK_DIRECT_DEPENDENCIES, + CheckDirectDepsMode.WARNING)) + .add( + PrecomputedValue.injected( + BazelModuleResolutionFunction.BAZEL_COMPATIBILITY_MODE, + BazelCompatibilityMode.ERROR)) + .add( + PrecomputedValue.injected(BazelLockFileFunction.LOCKFILE_MODE, LockfileMode.UPDATE)) .addAll(extraPrecomputedValues()) .build(); PackageFactory.BuilderForTesting pkgFactoryBuilder = @@ -557,6 +584,7 @@ if (!analysisMock.isThisBazel()) { parser.parse("--experimental_google_legacy_api"); // For starlark java_binary; } + parser.parse("--enable_bzlmod"); parser.parse(options); return parser.getOptions(BuildLanguageOptions.class); }
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelDepGraphFunctionTest.java b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelDepGraphFunctionTest.java index e6bf528..f563b3b 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelDepGraphFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelDepGraphFunctionTest.java
@@ -153,10 +153,6 @@ @Test public void createValue_basic() throws Exception { - scratch.file( - rootDirectory.getRelative("MODULE.bazel").getPathString(), - "module(name='my_root', version='1.0')"); - // Root depends on dep@1.0 and dep@2.0 at the same time with a multiple-version override. // Root also depends on rules_cc as a normal dep. // dep@1.0 depends on rules_java, which is overridden by a non-registry override (see below). @@ -227,10 +223,6 @@ @Test public void createValue_moduleExtensions() throws Exception { - scratch.file( - rootDirectory.getRelative("MODULE.bazel").getPathString(), - "module(name='my_root', version='1.0')"); - Module root = buildModule("root", "1.0") .setKey(ModuleKey.ROOT) @@ -329,10 +321,6 @@ @Test public void useExtensionBadLabelFails() throws Exception { - scratch.file( - rootDirectory.getRelative("MODULE.bazel").getPathString(), - "module(name='module', version='1.0')"); - Module root = buildModule("module", "1.0") .addExtensionUsage(createModuleExtensionUsage("@foo//:defs.bzl", "bar"))
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileFunctionTest.java b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileFunctionTest.java index 938d72e..dcd6b49 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileFunctionTest.java
@@ -217,7 +217,7 @@ @Test public void simpleModule() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='my_root', version='1.0')", "bazel_dep(name = 'dep_1', version = '1.0')", @@ -258,7 +258,7 @@ public void moduleWithFlags() throws Exception { // Test having --override_module, --ignore_dev_dependency, --check_bazel_compatibility // --check_direct_dependencies & --registry - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='my_root', version='1.0')"); @@ -317,7 +317,7 @@ @Test public void moduleWithLocalOverrides() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='root',version='0.1')", "local_path_override(module_name='ss',path='code_for_ss')"); @@ -360,7 +360,7 @@ @Test public void fullModule() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='my_root', version='1.0')", "register_toolchains('//my:toolchain', '//my:toolchain2')", @@ -404,7 +404,7 @@ @Test public void invalidLockfileEmptyFile() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='my_root', version='1.0')"); @@ -447,7 +447,7 @@ @Test public void invalidLockfileNullFlag() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='my_root', version='1.0')"); @@ -491,7 +491,7 @@ @Test public void invalidLockfileMalformed() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='my_root', version='1.0')");
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelModuleResolutionFunctionTest.java b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelModuleResolutionFunctionTest.java index a5c5ba6..aeceea9 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelModuleResolutionFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelModuleResolutionFunctionTest.java
@@ -137,7 +137,7 @@ @Test public void testBazelInvalidCompatibility() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='mod', version='1.0', bazel_compatibility=['>5.1.0dd'])"); @@ -151,7 +151,7 @@ @Test public void testSimpleBazelCompatibilityFailure() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='mod', version='1.0', bazel_compatibility=['>5.1.0', '<5.1.4'])"); @@ -168,7 +168,7 @@ @Test public void testBazelCompatibilityWarning() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='mod', version='1.0', bazel_compatibility=['>5.1.0', '<5.1.4'])"); @@ -186,7 +186,7 @@ @Test public void testDisablingBazelCompatibility() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='mod', version='1.0', bazel_compatibility=['>5.1.0', '<5.1.4'])"); @@ -229,7 +229,7 @@ @Test public void testRcIsCompatibleWithReleaseRequirement() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='mod', version='1.0', bazel_compatibility=['>=6.4.0'])"); @@ -242,7 +242,7 @@ @Test public void testPrereleaseIsNotCompatibleWithReleaseRequirement() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='mod', version='1.0', bazel_compatibility=['>=6.4.0'])"); @@ -278,7 +278,7 @@ -not including- 5.1.2 and 5.1.4. Ex: 5.1.3rc44, 5.1.3, 5.1.4-pre22.44 */ - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='mod', version='1.0', bazel_compatibility=['>5.1.0', '<5.1.6'])", "bazel_dep(name = 'a', version = '1.0')"); @@ -342,7 +342,7 @@ } private void setupModulesForYankedVersion() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='mod', version='1.0')", "bazel_dep(name = 'a', version = '1.0')"); @@ -361,7 +361,7 @@ @Test public void testYankedVersionSideEffects_equalCompatibilityLevel() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='mod', version='1.0')", "bazel_dep(name = 'a', version = '1.0')", @@ -403,7 +403,7 @@ @Test public void testYankedVersionSideEffects_differentCompatibilityLevel() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='mod', version='1.0')", "bazel_dep(name = 'a', version = '1.0')", @@ -443,7 +443,7 @@ @Test public void overrideOnNonexistentModule() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='mod', version='1.0')", "bazel_dep(name = 'a', version = '1.0')",
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionResolutionTest.java b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionResolutionTest.java index aef4257..a971372 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionResolutionTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionResolutionTest.java
@@ -234,7 +234,9 @@ SkyFunctions.IGNORED_PACKAGE_PREFIXES, new IgnoredPackagePrefixesFunction( /* ignoredPackagePrefixesFile= */ PathFragment.EMPTY_FRAGMENT)) - .put(SkyFunctions.REPOSITORY_MAPPING, new RepositoryMappingFunction()) + .put( + SkyFunctions.REPOSITORY_MAPPING, + new RepositoryMappingFunction(ruleClassProvider)) .put( SkyFunctions.EXTERNAL_PACKAGE, new ExternalPackageFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleFileFunctionTest.java b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleFileFunctionTest.java index 152e2fc..53f267e 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleFileFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleFileFunctionTest.java
@@ -177,7 +177,7 @@ @Test public void testRootModule() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(", " name='aaa',", @@ -237,7 +237,7 @@ @Test public void testRootModule_noModuleFunctionIsOkay() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "bazel_dep(name='bbb',version='1.0')"); FakeRegistry registry = registryFactory.newFakeRegistry("/foo"); @@ -262,7 +262,7 @@ @Test public void testRootModule_badSelfOverride() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='aaa')", "single_version_override(module_name='aaa',version='7')"); @@ -283,7 +283,7 @@ "bazel_tools", LocalPathOverride.create( rootDirectory.getRelative("bazel_tools_original").getPathString()))); - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='aaa')", "local_path_override(module_name='bazel_tools',path='./bazel_tools_new')"); @@ -352,15 +352,15 @@ public void testLocalPathOverride() throws Exception { // There is an override for B to use the local path "code_for_b", so we shouldn't even be // looking at the registry. - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='aaa',version='0.1')", "local_path_override(module_name='bbb',path='code_for_b')"); - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("code_for_b/MODULE.bazel").getPathString(), "module(name='bbb',version='1.0')", "bazel_dep(name='ccc',version='2.0')"); - scratch.file(rootDirectory.getRelative("code_for_b/WORKSPACE").getPathString()); + scratch.overwriteFile(rootDirectory.getRelative("code_for_b/WORKSPACE").getPathString()); FakeRegistry registry = registryFactory .newFakeRegistry("/foo") @@ -388,7 +388,7 @@ @Test public void testCommandLineModuleOverrides() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='aaa',version='0.1')", "bazel_dep(name = \"bbb\", version = \"1.0\")", @@ -396,15 +396,15 @@ // Command line override has the priority. Thus, "used_override" with dependency on 'ccc' // should be selected. - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("ignored_override/MODULE.bazel").getPathString(), "module(name='bbb',version='1.0')"); - scratch.file(rootDirectory.getRelative("ignored_override/WORKSPACE").getPathString()); - scratch.file( + scratch.overwriteFile(rootDirectory.getRelative("ignored_override/WORKSPACE").getPathString()); + scratch.overwriteFile( rootDirectory.getRelative("used_override/MODULE.bazel").getPathString(), "module(name='bbb',version='1.0')", "bazel_dep(name='ccc',version='2.0')"); - scratch.file(rootDirectory.getRelative("used_override/WORKSPACE").getPathString()); + scratch.overwriteFile(rootDirectory.getRelative("used_override/WORKSPACE").getPathString()); // ModuleFileFuncion.MODULE_OVERRIDES should be filled from command line options // Inject for testing @@ -624,7 +624,7 @@ @Test public void testModuleExtensions_duplicateProxy_asRoot() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "myext1 = use_extension('//:defs.bzl','myext',dev_dependency=True)", "myext1.tag(name = 'tag1')", @@ -836,7 +836,7 @@ @Test public void testModuleExtensions_innate() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "repo = use_repo_rule('//:repo.bzl','repo')", "repo(name='repo_name', value='something')", @@ -914,7 +914,7 @@ @Test public void testModuleFileExecute_syntaxError() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='aaa',version='0.1',compatibility_level=4)", "foo()"); @@ -926,7 +926,7 @@ @Test public void testModuleFileExecute_evalError() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='aaa',version='0.1',compatibility_level=\"4\")"); @@ -953,7 +953,7 @@ @Test public void badModuleName_module() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='f.',version='0.1')"); @@ -965,7 +965,7 @@ @Test public void badModuleName_bazelDep() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "bazel_dep(name='f.',version='0.1')"); @@ -977,7 +977,7 @@ @Test public void badRepoName_module() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='foo',version='0.1',repo_name='_foo')"); @@ -989,7 +989,7 @@ @Test public void badRepoName_bazelDep() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "bazel_dep(name='foo',version='0.1',repo_name='_foo')"); @@ -1001,7 +1001,7 @@ @Test public void badRepoName_useRepo() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "ext=use_extension('//:hello.bzl', 'ext')", "use_repo(ext, foo='_foo')"); @@ -1014,7 +1014,7 @@ @Test public void badRepoName_useRepo_assignedName() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "ext=use_extension('//:hello.bzl', 'ext')", "use_repo(ext, _foo='foo')"); @@ -1034,7 +1034,7 @@ "local_config_platform", LocalPathOverride.create("/local_config_platform")); setUpWithBuiltinModules(builtinModules); - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "bazel_dep(name='foo',version='1.0')"); ModuleFileFunction.REGISTRIES.set(differencer, ImmutableList.of()); @@ -1065,11 +1065,11 @@ "local_config_platform", LocalPathOverride.create("/local_config_platform")); setUpWithBuiltinModules(builtinModules); - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "bazel_dep(name='foo',version='1.0')"); - scratch.file(rootDirectory.getRelative("tools/WORKSPACE").getPathString()); - scratch.file( + scratch.overwriteFile(rootDirectory.getRelative("tools/WORKSPACE").getPathString()); + scratch.overwriteFile( rootDirectory.getRelative("tools/MODULE.bazel").getPathString(), "module(name='bazel_tools',version='1.0')", "bazel_dep(name='foo',version='2.0')"); @@ -1094,7 +1094,7 @@ @Test public void moduleRepoName() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='aaa',version='0.1',repo_name='bbb')"); FakeRegistry registry = registryFactory.newFakeRegistry("/foo"); @@ -1117,7 +1117,7 @@ @Test public void moduleRepoName_conflict() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='aaa',version='0.1',repo_name='bbb')", "bazel_dep(name='bbb',version='1.0')"); @@ -1132,7 +1132,7 @@ @Test public void module_calledTwice() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "module(name='aaa',version='0.1',repo_name='bbb')", "module(name='aaa',version='0.1',repo_name='bbb')"); @@ -1147,7 +1147,7 @@ @Test public void module_calledLate() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "use_extension('//:extensions.bzl', 'my_ext')", "module(name='aaa',version='0.1',repo_name='bbb')"); @@ -1162,7 +1162,7 @@ @Test public void restrictedSyntax() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "if 3+5>7: module(name='aaa',version='0.1',repo_name='bbb')"); FakeRegistry registry = registryFactory.newFakeRegistry("/foo"); @@ -1185,7 +1185,7 @@ .setBool(BuildLanguageOptions.EXPERIMENTAL_ISOLATED_EXTENSION_USAGES, true) .build()); - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "isolated_ext = use_extension('//:extensions.bzl', 'my_ext', isolate = True)"); FakeRegistry registry = registryFactory.newFakeRegistry("/foo"); @@ -1212,7 +1212,7 @@ .setBool(BuildLanguageOptions.EXPERIMENTAL_ISOLATED_EXTENSION_USAGES, true) .build()); - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "use_extension('//:extensions.bzl', 'my_ext', isolate = True)"); FakeRegistry registry = registryFactory.newFakeRegistry("/foo"); @@ -1227,7 +1227,7 @@ @Test public void isolatedUsage_notEnabled() throws Exception { - scratch.file( + scratch.overwriteFile( rootDirectory.getRelative("MODULE.bazel").getPathString(), "use_extension('//:extensions.bzl', 'my_ext', isolate = True)"); FakeRegistry registry = registryFactory.newFakeRegistry("/foo");
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryIntegrationTest.java index 08242a6..e77b35d 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryIntegrationTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryIntegrationTest.java
@@ -19,33 +19,19 @@ import static org.junit.Assert.fail; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; -import com.google.devtools.build.lib.analysis.util.AnalysisMock; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; -import com.google.devtools.build.lib.bazel.repository.downloader.DownloadManager; import com.google.devtools.build.lib.packages.BuildFileContainsErrorsException; import com.google.devtools.build.lib.packages.NoSuchPackageException; -import com.google.devtools.build.lib.rules.repository.LocalRepositoryFunction; -import com.google.devtools.build.lib.rules.repository.LocalRepositoryRule; -import com.google.devtools.build.lib.rules.repository.RepositoryDelegatorFunction; -import com.google.devtools.build.lib.rules.repository.RepositoryFunction; -import com.google.devtools.build.lib.skyframe.BazelSkyframeExecutorConstants; import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; -import com.google.devtools.build.lib.skyframe.SkyFunctions; import com.google.devtools.build.lib.starlarkbuildapi.repository.RepositoryBootstrap; import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.util.AbruptExitException; -import com.google.devtools.build.skyframe.SkyFunction; -import com.google.devtools.build.skyframe.SkyFunctionName; import java.io.OutputStream; import java.nio.charset.StandardCharsets; -import java.util.concurrent.atomic.AtomicBoolean; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; -import org.mockito.Mockito; /** Integration test for Starlark repository not as heavyweight than shell integration tests. */ @RunWith(JUnit4.class) @@ -54,45 +40,6 @@ // The RuleClassProvider loaded with the StarlarkRepositoryModule private ConfiguredRuleClassProvider ruleProvider = null; - /** - * Proxy to the real analysis mock to overwrite {@code #getSkyFunctions(BlazeDirectories)} to - * inject the StarlarkRepositoryFunction in the list of SkyFunctions. In Bazel, this function is - * injected by the corresponding {@code BlazeModule}. - */ - private static class CustomAnalysisMock extends AnalysisMock.Delegate { - CustomAnalysisMock(AnalysisMock proxied) { - super(proxied); - } - - @Override - public ImmutableMap<SkyFunctionName, SkyFunction> getSkyFunctions( - BlazeDirectories directories) { - // Add both the local repository and the Starlark repository functions - // The RepositoryCache mock injected with the StarlarkRepositoryFunction - DownloadManager downloader = Mockito.mock(DownloadManager.class); - RepositoryFunction localRepositoryFunction = new LocalRepositoryFunction(); - StarlarkRepositoryFunction starlarkRepositoryFunction = - new StarlarkRepositoryFunction(downloader); - ImmutableMap<String, RepositoryFunction> repositoryHandlers = - ImmutableMap.of(LocalRepositoryRule.NAME, localRepositoryFunction); - - RepositoryDelegatorFunction function = - new RepositoryDelegatorFunction( - repositoryHandlers, - starlarkRepositoryFunction, - new AtomicBoolean(true), - ImmutableMap::of, - directories, - BazelSkyframeExecutorConstants.EXTERNAL_PACKAGE_HELPER); - return ImmutableMap.of(SkyFunctions.REPOSITORY_DIRECTORY, function); - } - } - - @Override - protected AnalysisMock getAnalysisMock() { - return new CustomAnalysisMock(super.getAnalysisMock()); - } - @Override protected ConfiguredRuleClassProvider createRuleClassProvider() { // We inject the repository module in our test rule class provider. @@ -409,14 +356,13 @@ rootDirectory.getRelative("WORKSPACE").getPathString(), new ImmutableList.Builder<String>() .addAll(analysisMock.getWorkspaceContents(mockToolsConfig)) - .add("workspace(name='bleh')") .add("load('//:def.bzl', 'macro')") .build()); scratch.file("data.txt"); scratch.file("BUILD", "filegroup(", " name='files', ", " srcs=['data.txt'])"); invalidatePackages(); assertThat(getRuleContext(getConfiguredTarget("//:files")).getWorkspaceName()) - .isEqualTo("bleh"); + .isEqualTo(ruleClassProvider.getRunfilesPrefix()); } @Test
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryTest.java b/src/test/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryTest.java index 702fc89..ed1e3f2 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryTest.java
@@ -59,6 +59,7 @@ "embedded_tools/tools/android/android_sdk_repository_template.bzl", ResourceLoader.readFromResources("tools/android/android_sdk_repository_template.bzl")); scratch.appendFile("WORKSPACE", "local_config_platform(name='local_config_platform')"); + scratch.overwriteFile("local_config_platform_workspace/constraints.bzl", "HOST_CONSTRAINTS=[]"); } private void scratchPlatformsDirectories(int... apiLevels) throws Exception {
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/MockProtoSupport.java b/src/test/java/com/google/devtools/build/lib/packages/util/MockProtoSupport.java index fdf0af4..5c5dcea 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/util/MockProtoSupport.java +++ b/src/test/java/com/google/devtools/build/lib/packages/util/MockProtoSupport.java
@@ -214,7 +214,6 @@ ")"); } - config.create("third_party/bazel_rules/rules_proto/WORKSPACE"); config.create( "third_party/bazel_rules/rules_proto/proto/BUILD", "licenses(['notice'])",
diff --git a/src/test/java/com/google/devtools/build/lib/query2/testutil/AbstractQueryTest.java b/src/test/java/com/google/devtools/build/lib/query2/testutil/AbstractQueryTest.java index 54828b1..0b75426 100644 --- a/src/test/java/com/google/devtools/build/lib/query2/testutil/AbstractQueryTest.java +++ b/src/test/java/com/google/devtools/build/lib/query2/testutil/AbstractQueryTest.java
@@ -1618,18 +1618,37 @@ helper.useRuleClassProvider(analysisMock.createRuleClassProvider()); helper.writeFile("/workspace/embedded_tools/BUILD"); helper.writeFile("/workspace/embedded_tools/WORKSPACE"); - helper.writeFile( - "/workspace/embedded_tools/MODULE.bazel", "module(name = \"bazel_tools\", version = \"\")"); + helper.writeFile("/workspace/embedded_tools/MODULE.bazel", "module(name='bazel_tools')"); helper.writeFile("/workspace/platforms_workspace/BUILD"); helper.writeFile("/workspace/platforms_workspace/WORKSPACE"); + helper.writeFile("/workspace/platforms_workspace/MODULE.bazel", "module(name='platforms')"); + helper.writeFile("/workspace/local_config_xcode_workspace/BUILD"); + helper.writeFile("/workspace/local_config_xcode_workspace/WORKSPACE"); helper.writeFile( - "/workspace/platforms_workspace/MODULE.bazel", - "module(name = \"platforms\", version = \"\")"); + "/workspace/local_config_xcode_workspace/MODULE.bazel", + "module(name='local_config_xcode')"); helper.writeFile("/workspace/rules_java_workspace/BUILD"); helper.writeFile("/workspace/rules_java_workspace/WORKSPACE"); + helper.writeFile("/workspace/rules_java_workspace/MODULE.bazel", "module(name='rules_java')"); + helper.writeFile("/workspace/protobuf_workspace/BUILD"); + helper.writeFile("/workspace/protobuf_workspace/WORKSPACE"); helper.writeFile( - "/workspace/rules_java_workspace/MODULE.bazel", - "module(name = \"rules_java\", version = \"\")"); + "/workspace/protobuf_workspace/MODULE.bazel", "module(name='com_google_protobuf')"); + helper.writeFile("/workspace/local_config_platform_workspace/BUILD"); + helper.writeFile("/workspace/local_config_platform_workspace/WORKSPACE"); + helper.writeFile( + "/workspace/local_config_platform_workspace/MODULE.bazel", + "module(name='local_config_platform')"); + helper.writeFile("/workspace/build_bazel_apple_support/BUILD"); + helper.writeFile("/workspace/build_bazel_apple_support/WORKSPACE"); + helper.writeFile( + "/workspace/build_bazel_apple_support/MODULE.bazel", + "module(name='build_bazel_apple_support')"); + helper.writeFile("/workspace/third_party/bazel_rules/rules_proto/BUILD"); + helper.writeFile("/workspace/third_party/bazel_rules/rules_proto/WORKSPACE"); + helper.writeFile( + "/workspace/third_party/bazel_rules/rules_proto/MODULE.bazel", + "module(name='rules_proto')"); } @Test
diff --git a/src/test/java/com/google/devtools/build/lib/query2/testutil/SkyframeQueryHelper.java b/src/test/java/com/google/devtools/build/lib/query2/testutil/SkyframeQueryHelper.java index 262d023..a2c3682 100644 --- a/src/test/java/com/google/devtools/build/lib/query2/testutil/SkyframeQueryHelper.java +++ b/src/test/java/com/google/devtools/build/lib/query2/testutil/SkyframeQueryHelper.java
@@ -136,8 +136,6 @@ registry = FakeRegistry.DEFAULT_FACTORY.newFakeRegistry(moduleRoot.getPathString()); writeFile("MODULE.bazel", "module( name = \"root\", version = \"1.0\")"); - initTargetPatternEvaluator(analysisMock.createRuleClassProvider()); - MockToolsConfig mockToolsConfig = new MockToolsConfig(rootDirectory); analysisMock.setupMockClient(mockToolsConfig); analysisMock.setupMockWorkspaceFiles(directories.getEmbeddedBinariesRoot()); @@ -146,6 +144,8 @@ analysisMock.pySupport().setup(mockToolsConfig); performAdditionalClientSetup(mockToolsConfig); + initTargetPatternEvaluator(analysisMock.createRuleClassProvider()); + this.queryEnvironmentFactory = makeQueryEnvironmentFactory(); }
diff --git a/src/test/java/com/google/devtools/build/lib/rules/LabelBuildSettingTest.java b/src/test/java/com/google/devtools/build/lib/rules/LabelBuildSettingTest.java index 5d6c0ff..6a40e28 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/LabelBuildSettingTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/LabelBuildSettingTest.java
@@ -17,22 +17,10 @@ import static com.google.common.truth.Truth.assertThat; import static com.google.devtools.build.lib.bazel.bzlmod.BzlmodTestUtil.createModuleKey; -import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; -import com.google.devtools.build.lib.bazel.bzlmod.BazelLockFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.BazelModuleResolutionFunction; -import com.google.devtools.build.lib.bazel.bzlmod.FakeRegistry; -import com.google.devtools.build.lib.bazel.bzlmod.ModuleFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.YankedVersionsUtil; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.BazelCompatibilityMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.CheckDirectDepsMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.LockfileMode; import com.google.devtools.build.lib.cmdline.Label; -import com.google.devtools.build.lib.skyframe.PrecomputedValue; -import com.google.devtools.build.lib.skyframe.PrecomputedValue.Injected; -import java.io.IOException; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -40,28 +28,6 @@ /** Tests for {@link LabelBuildSettings} rules. */ @RunWith(JUnit4.class) public class LabelBuildSettingTest extends BuildViewTestCase { - private FakeRegistry registry; - - @Override - protected ImmutableList<Injected> extraPrecomputedValues() { - try { - registry = - FakeRegistry.DEFAULT_FACTORY.newFakeRegistry(scratch.dir("modules").getPathString()); - } catch (IOException e) { - throw new IllegalStateException(e); - } - return ImmutableList.of( - PrecomputedValue.injected( - ModuleFileFunction.REGISTRIES, ImmutableList.of(registry.getUrl())), - PrecomputedValue.injected(ModuleFileFunction.IGNORE_DEV_DEPS, false), - PrecomputedValue.injected(ModuleFileFunction.MODULE_OVERRIDES, ImmutableMap.of()), - PrecomputedValue.injected(YankedVersionsUtil.ALLOWED_YANKED_VERSIONS, ImmutableList.of()), - PrecomputedValue.injected( - BazelModuleResolutionFunction.CHECK_DIRECT_DEPENDENCIES, CheckDirectDepsMode.WARNING), - PrecomputedValue.injected( - BazelModuleResolutionFunction.BAZEL_COMPATIBILITY_MODE, BazelCompatibilityMode.ERROR), - PrecomputedValue.injected(BazelLockFileFunction.LOCKFILE_MODE, LockfileMode.UPDATE)); - } private void writeRulesBzl(String type) throws Exception { scratch.file( @@ -285,8 +251,6 @@ @Test public void transitionOutput_otherRepo() throws Exception { - setBuildLanguageOptions("--enable_bzlmod"); - scratch.overwriteFile("MODULE.bazel", "bazel_dep(name='foo',version='1.0')"); registry.addModule(createModuleKey("foo", "1.0"), "module(name='foo', version='1.0')"); scratch.file("modules/foo~1.0/WORKSPACE"); @@ -336,15 +300,15 @@ "label_flag(name = 'my_flag2', build_setting_default = ':first_rule')", "filegroup(name = 'first_rule')", "rule_with_transition(name = 'buildme')"); + + invalidatePackages(); + assertThat(getConfiguredTarget("//test:buildme")).isNotNull(); assertNoEvents(); } @Test public void testInvisibleRepoInLabelResultsInEarlyError() throws Exception { - setBuildLanguageOptions("--enable_bzlmod"); - - scratch.file("MODULE.bazel"); scratch.file( "test/defs.bzl", "def _setting_impl(ctx):",
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AbstractAndroidLocalTestTestBase.java b/src/test/java/com/google/devtools/build/lib/rules/android/AbstractAndroidLocalTestTestBase.java index 8578ca0..78d7e3b 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/android/AbstractAndroidLocalTestTestBase.java +++ b/src/test/java/com/google/devtools/build/lib/rules/android/AbstractAndroidLocalTestTestBase.java
@@ -320,7 +320,7 @@ assertThat(action.getFileContents()) .isAnyOf( "//java/com/foo:flag1: on\n//java/com/foo:flag2: off", - "@//java/com/foo:flag1: on\n@//java/com/foo:flag2: off"); + "@@//java/com/foo:flag1: on\n@@//java/com/foo:flag2: off"); } @Test
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java index 4f521aa..3a28a56 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java
@@ -3829,7 +3829,7 @@ "/FooFlags.java"); FileWriteAction action = (FileWriteAction) getGeneratingAction(flagList); assertThat(action.getFileContents()) - .isEqualTo("@//java/com/foo:flag1: on\n@//java/com/foo:flag2: off"); + .isEqualTo("@@//java/com/foo:flag1: on\n@@//java/com/foo:flag2: off"); } @Test
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcBadDependenciesTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcBadDependenciesTest.java index a71998a..242cfd7 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcBadDependenciesTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcBadDependenciesTest.java
@@ -34,7 +34,7 @@ scratch.file("foo/unknown.oops", "foo"); configure("//foo:foo"); assertContainsEvent( - getErrorMsgMisplacedFiles("srcs", "cc_library", "@//foo:foo", "@//foo:unknown.oops")); + getErrorMsgMisplacedFiles("srcs", "cc_library", "@@//foo:foo", "@@//foo:unknown.oops")); } @Test @@ -62,8 +62,6 @@ " srcs = ['//dependency:generated'])"); configure("//foo:foo"); assertContainsEvent( - String.format( - "attribute srcs: '%s' does not produce any cc_library srcs files", - "@//dependency:generated")); + "attribute srcs: '@@//dependency:generated' does not produce any cc_library srcs files"); } }
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java index 27d70ef..cc9983c 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
@@ -715,7 +715,7 @@ "badlib", "lib_with_dash_static", // message: - "in linkopts attribute of cc_library rule @//badlib:lib_with_dash_static: " + "in linkopts attribute of cc_library rule @@//badlib:lib_with_dash_static: " + "Apple builds do not support statically linked binaries", // build file: "cc_library(name = 'lib_with_dash_static',",
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java index dab629f..5c7b7e1 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java
@@ -2196,7 +2196,7 @@ "-Xlinker", "-rpath", "-Xlinker", - "$ORIGIN/main.runfiles/" + TestConstants.WORKSPACE_NAME + "/_solib_k8/") + "$ORIGIN/main.runfiles/" + ruleClassProvider.getRunfilesPrefix() + "/_solib_k8/") .inOrder(); assertThat(linkArgv) .contains("-L" + TestConstants.PRODUCT_NAME + "-out/k8-fastbuild/bin/_solib_k8"); @@ -2267,7 +2267,7 @@ "-Xlinker", "-rpath", "-Xlinker", - "$ORIGIN/main.runfiles/" + TestConstants.WORKSPACE_NAME + "/_solib_k8/") + "$ORIGIN/main.runfiles/" + ruleClassProvider.getRunfilesPrefix() + "/_solib_k8/") .inOrder(); assertThat(Joiner.on(" ").join(linkArgv)) .contains("-Xlinker -rpath -Xlinker $ORIGIN/../../../k8-fastbuild-ST-");
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java index 9d6d05e..a960bd5 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java
@@ -497,7 +497,7 @@ assertContainsEvent( Pattern.compile( - ".* objc_library rule \\'//app:no_tag_dep\\' is misplaced here \\(Only J2ObjC JRE" + ".* objc_library rule \\'@//app:no_tag_dep\\' is misplaced here \\(Only J2ObjC JRE" + " libraries are allowed\\)")); }
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java index ba4baa2..8f180ce 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
@@ -408,8 +408,8 @@ checkError( "x", "x", - "non_arc_srcs attribute of objc_library rule @//x:x: source file '@//x:cc.cc' is misplaced" - + " here", + "non_arc_srcs attribute of objc_library rule @@//x:x: source file '@@//x:cc.cc' is" + + " misplaced here", "objc_library(name = 'x', non_arc_srcs = ['cc.cc'])"); }
diff --git a/src/test/java/com/google/devtools/build/lib/rules/proto/BazelProtoCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/proto/BazelProtoCommonTest.java index e4c0bb2..9eddf76 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/proto/BazelProtoCommonTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/proto/BazelProtoCommonTest.java
@@ -605,11 +605,11 @@ getConfiguredTarget("//bar:simple"); assertContainsEvent( - "The 'srcs' attribute of '@//third_party/x:mixed' contains protos for which 'MyRule'" + "The 'srcs' attribute of '@@//third_party/x:mixed' contains protos for which 'MyRule'" + " shouldn't generate code (third_party/x/metadata.proto," + " third_party/x/descriptor.proto), in addition to protos for which it should" + " (third_party/x/something.proto).\n" - + "Separate '@//third_party/x:mixed' into 2 proto_library rules."); + + "Separate '@@//third_party/x:mixed' into 2 proto_library rules."); } /** Verifies <code>proto_common.declare_generated_files</code> call. */ @@ -676,8 +676,8 @@ getConfiguredTarget("//test:simple"); assertContainsEvent( - "lang_proto_library '@//test:simple' may only be created in the same package as" - + " proto_library '@//proto:proto'"); + "lang_proto_library '@@//test:simple' may only be created in the same package as" + + " proto_library '@@//proto:proto'"); } @Test @@ -698,8 +698,8 @@ getConfiguredTarget("//notallowed:simple"); assertContainsEvent( - "lang_proto_library '@//notallowed:simple' may only be created in the same package as" - + " proto_library '@//x:foo'"); + "lang_proto_library '@@//notallowed:simple' may only be created in the same package as" + + " proto_library '@@//x:foo'"); } @Test
diff --git a/src/test/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibraryTest.java index 2a43a40..d9ca872 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibraryTest.java
@@ -1203,7 +1203,7 @@ reporter.removeHandler(failFastHandler); getConfiguredTarget("//notallowed:test"); - assertContainsEvent("proto_library '@//x:foo' can't be reexported in package '//notallowed'"); + assertContainsEvent("proto_library '@@//x:foo' can't be reexported in package '//notallowed'"); } @Test @@ -1222,6 +1222,6 @@ reporter.removeHandler(failFastHandler); getConfiguredTarget("//notallowed:test"); - assertContainsEvent("proto_library '@//x:foo' can't be reexported in package '//notallowed'"); + assertContainsEvent("proto_library '@@//x:foo' can't be reexported in package '//notallowed'"); } }
diff --git a/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorTest.java b/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorTest.java index 93671bf..44be64f 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorTest.java
@@ -245,7 +245,9 @@ SkyFunctions.IGNORED_PACKAGE_PREFIXES, new IgnoredPackagePrefixesFunction( /* ignoredPackagePrefixesFile= */ PathFragment.EMPTY_FRAGMENT)) - .put(SkyFunctions.REPOSITORY_MAPPING, new RepositoryMappingFunction()) + .put( + SkyFunctions.REPOSITORY_MAPPING, + new RepositoryMappingFunction(ruleClassProvider)) .put( SkyFunctions.MODULE_FILE, new ModuleFileFunction(registryFactory, rootPath, ImmutableMap.of()))
diff --git a/src/test/java/com/google/devtools/build/lib/rules/starlarkdocextract/StarlarkDocExtractTest.java b/src/test/java/com/google/devtools/build/lib/rules/starlarkdocextract/StarlarkDocExtractTest.java index 4c54059..3bc1e7b1 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/starlarkdocextract/StarlarkDocExtractTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/starlarkdocextract/StarlarkDocExtractTest.java
@@ -19,27 +19,15 @@ import static com.google.common.truth.extensions.proto.ProtoTruth.assertThat; import static org.junit.Assert.assertThrows; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.actions.Action; import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.actions.BinaryFileWriteAction; import com.google.devtools.build.lib.analysis.actions.FileWriteAction; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; -import com.google.devtools.build.lib.bazel.bzlmod.BazelLockFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.BazelModuleResolutionFunction; import com.google.devtools.build.lib.bazel.bzlmod.BzlmodTestUtil; -import com.google.devtools.build.lib.bazel.bzlmod.FakeRegistry; -import com.google.devtools.build.lib.bazel.bzlmod.ModuleFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.YankedVersionsUtil; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.BazelCompatibilityMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.CheckDirectDepsMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.LockfileMode; import com.google.devtools.build.lib.bazel.repository.starlark.StarlarkRepositoryModule; import com.google.devtools.build.lib.cmdline.Label; -import com.google.devtools.build.lib.skyframe.PrecomputedValue; -import com.google.devtools.build.lib.skyframe.PrecomputedValue.Injected; import com.google.devtools.build.lib.starlarkbuildapi.repository.RepositoryBootstrap; import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.vfs.Path; @@ -58,7 +46,6 @@ import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.StarlarkFunctionInfo; import com.google.protobuf.ExtensionRegistry; import com.google.protobuf.TextFormat; -import java.io.IOException; import java.util.NoSuchElementException; import org.junit.Before; import org.junit.Test; @@ -67,31 +54,6 @@ @RunWith(JUnit4.class) public final class StarlarkDocExtractTest extends BuildViewTestCase { - private Path moduleRoot; // initialized by extraPrecomputedValues - private FakeRegistry registry; - - @Override - protected ImmutableList<Injected> extraPrecomputedValues() { - // TODO(b/285924565): support --enable_bzlmod in BuildViewTestCase tests without needing the - // boilerplate below. - try { - moduleRoot = scratch.dir("modules"); - } catch (IOException e) { - throw new IllegalStateException(e); - } - registry = FakeRegistry.DEFAULT_FACTORY.newFakeRegistry(moduleRoot.getPathString()); - return ImmutableList.of( - PrecomputedValue.injected( - ModuleFileFunction.REGISTRIES, ImmutableList.of(registry.getUrl())), - PrecomputedValue.injected(ModuleFileFunction.IGNORE_DEV_DEPS, false), - PrecomputedValue.injected(ModuleFileFunction.MODULE_OVERRIDES, ImmutableMap.of()), - PrecomputedValue.injected(YankedVersionsUtil.ALLOWED_YANKED_VERSIONS, ImmutableList.of()), - PrecomputedValue.injected( - BazelModuleResolutionFunction.CHECK_DIRECT_DEPENDENCIES, CheckDirectDepsMode.WARNING), - PrecomputedValue.injected( - BazelModuleResolutionFunction.BAZEL_COMPATIBILITY_MODE, BazelCompatibilityMode.ERROR), - PrecomputedValue.injected(BazelLockFileFunction.LOCKFILE_MODE, LockfileMode.UPDATE)); - } @Override protected ConfiguredRuleClassProvider createRuleClassProvider() { @@ -388,7 +350,6 @@ @Test public void originKeyFileAndModuleInfoFileLabels_forBzlFileInBzlmodModule_areDisplayForm() throws Exception { - setBuildLanguageOptions("--enable_bzlmod"); scratch.overwriteFile("MODULE.bazel", "bazel_dep(name='origin_repo', version='0.1')"); registry.addModule( BzlmodTestUtil.createModuleKey("origin_repo", "0.1"), @@ -434,6 +395,7 @@ " src = 'renamer.bzl',", " deps = ['origin_bzl'],", ")"); + invalidatePackages(); // verify that ModuleInfo.name for a .bzl file in another bzlmod module is in display form, i.e. // "@origin_repo//:origin.bzl" as opposed to "@@origin_repo~0.1//:origin.bzl" @@ -964,7 +926,6 @@ @Test public void repoName_inMainBzlmodModule() throws Exception { - setBuildLanguageOptions("--enable_bzlmod"); scratch.overwriteFile( "MODULE.bazel", // "module(name = 'my_module', repo_name = 'legacy_internal_repo_name')"); @@ -989,6 +950,7 @@ " name = 'without_main_repo_name',", " src = 'foo.bzl',", ")"); + invalidatePackages(); ModuleInfo withMainRepoName = protoFromConfiguredTarget("//:with_main_repo_name"); assertThat(withMainRepoName.getFile()).isEqualTo("@my_module//:foo.bzl"); @@ -1010,6 +972,7 @@ @Test public void repoName_inMainWorkspaceRepo() throws Exception { + setBuildLanguageOptions("--noenable_bzlmod"); rewriteWorkspace("workspace(name = 'my_repo')"); scratch.file( "foo.bzl", // @@ -1053,7 +1016,6 @@ @Test public void repoName_inBzlmodDep() throws Exception { - setBuildLanguageOptions("--enable_bzlmod"); scratch.overwriteFile( "MODULE.bazel", "module(name = 'my_module')", "bazel_dep(name='dep_mod', version='0.1')"); registry.addModule( @@ -1074,6 +1036,7 @@ " name = 'extract',", " src = 'foo.bzl',", ")"); + invalidatePackages(); ModuleInfo moduleInfo = protoFromConfiguredTarget("@dep_mod~0.1//:extract"); assertThat(moduleInfo.getFile()).isEqualTo("@dep_mod//:foo.bzl");
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/BUILD b/src/test/java/com/google/devtools/build/lib/skyframe/BUILD index c9f7d0c..f1eac43 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/BUILD +++ b/src/test/java/com/google/devtools/build/lib/skyframe/BUILD
@@ -158,6 +158,7 @@ "//src/main/java/com/google/devtools/build/lib/analysis/producers", "//src/main/java/com/google/devtools/build/lib/bazel:main", "//src/main/java/com/google/devtools/build/lib/bazel/bzlmod:common", + "//src/main/java/com/google/devtools/build/lib/bazel/bzlmod:resolution", "//src/main/java/com/google/devtools/build/lib/bazel/bzlmod:resolution_impl", "//src/main/java/com/google/devtools/build/lib/bazel/repository", "//src/main/java/com/google/devtools/build/lib/bazel/repository:repository_options",
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/BuiltinsInjectionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/BuiltinsInjectionTest.java index effd5f5..1da9673 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/BuiltinsInjectionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/BuiltinsInjectionTest.java
@@ -22,6 +22,7 @@ import com.google.devtools.build.lib.actions.ActionAnalysisMetadata; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException; +import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder; @@ -29,15 +30,18 @@ import com.google.devtools.build.lib.analysis.Runfiles; import com.google.devtools.build.lib.analysis.RunfilesProvider; import com.google.devtools.build.lib.analysis.actions.FileWriteAction; +import com.google.devtools.build.lib.analysis.util.AnalysisMock; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; import com.google.devtools.build.lib.analysis.util.MockRule; import com.google.devtools.build.lib.analysis.util.MockRuleDefaults; +import com.google.devtools.build.lib.bazel.bzlmod.NonRegistryOverride; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.collect.nestedset.Order; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.EventHandler; import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.BuildType; +import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; import com.google.devtools.build.lib.packages.Type; import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions; import com.google.devtools.build.lib.testutil.TestRuleClassProvider; @@ -169,6 +173,17 @@ } @Override + protected AnalysisMock getAnalysisMock() { + return new AnalysisMock.Delegate(super.getAnalysisMock()) { + @Override + public ImmutableMap<String, NonRegistryOverride> getBuiltinModules( + BlazeDirectories directories) { + return ImmutableMap.of(); + } + }; + } + + @Override protected void initializeMockClient() throws IOException { // Don't let the AnalysisMock sneak in any WORKSPACE file content, which may depend on // repository rules that our minimal rule class provider doesn't have. @@ -345,7 +360,7 @@ } @Test - public void otherBzlsCannotLoadFromBuiltins() throws Exception { + public void otherBzlsCannotLoadFromBuiltins_apparent() throws Exception { writeExportsBzl( "exported_toplevels = {}", // "exported_rules = {}", @@ -354,6 +369,19 @@ writePkgBzl("load('@_builtins//:exports.bzl', 'exported_toplevels')"); buildAndAssertFailure(); + assertContainsEvent("No repository visible as '@_builtins' from"); + } + + @Test + public void otherBzlsCannotLoadFromBuiltins_canonical() throws Exception { + writeExportsBzl( + "exported_toplevels = {}", // + "exported_rules = {}", + "exported_to_java = {}"); + writePkgBuild(); + writePkgBzl("load('@@_builtins//:exports.bzl', 'exported_toplevels')"); + + buildAndAssertFailure(); assertContainsEvent("The repository '@_builtins' could not be resolved"); }
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/BzlLoadFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/BzlLoadFunctionTest.java index 54bc086..1626ebf 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/BzlLoadFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/BzlLoadFunctionTest.java
@@ -22,14 +22,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; -import com.google.devtools.build.lib.bazel.bzlmod.BazelLockFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.BazelModuleResolutionFunction; -import com.google.devtools.build.lib.bazel.bzlmod.FakeRegistry; -import com.google.devtools.build.lib.bazel.bzlmod.ModuleFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.YankedVersionsUtil; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.BazelCompatibilityMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.CheckDirectDepsMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.LockfileMode; import com.google.devtools.build.lib.clock.BlazeClock; import com.google.devtools.build.lib.cmdline.BazelModuleContext; import com.google.devtools.build.lib.cmdline.Label; @@ -39,7 +31,6 @@ import com.google.devtools.build.lib.pkgcache.PathPackageLocator; import com.google.devtools.build.lib.runtime.QuiescingExecutorsImpl; import com.google.devtools.build.lib.skyframe.BzlLoadFunction.BzlLoadFailedException; -import com.google.devtools.build.lib.skyframe.PrecomputedValue.Injected; import com.google.devtools.build.lib.skyframe.util.SkyframeExecutorTestUtils; import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor; import com.google.devtools.build.lib.vfs.DigestHashFunction; @@ -67,8 +58,6 @@ /** Tests for BzlLoadFunction. */ @RunWith(JUnit4.class) public class BzlLoadFunctionTest extends BuildViewTestCase { - private Path moduleRoot; - private FakeRegistry registry; @Override protected FileSystem createFileSystem() { @@ -97,32 +86,6 @@ skyframeExecutor.setActionEnv(ImmutableMap.of()); } - @Override - protected ImmutableList<Injected> extraPrecomputedValues() { - try { - moduleRoot = scratch.dir("modules"); - } catch (IOException e) { - throw new IllegalStateException(e); - } - registry = FakeRegistry.DEFAULT_FACTORY.newFakeRegistry(moduleRoot.getPathString()); - return ImmutableList.of( - PrecomputedValue.injected( - ModuleFileFunction.REGISTRIES, ImmutableList.of(registry.getUrl())), - PrecomputedValue.injected(ModuleFileFunction.IGNORE_DEV_DEPS, false), - PrecomputedValue.injected(ModuleFileFunction.MODULE_OVERRIDES, ImmutableMap.of()), - PrecomputedValue.injected(YankedVersionsUtil.ALLOWED_YANKED_VERSIONS, ImmutableList.of()), - PrecomputedValue.injected( - BazelModuleResolutionFunction.CHECK_DIRECT_DEPENDENCIES, CheckDirectDepsMode.WARNING), - PrecomputedValue.injected( - BazelModuleResolutionFunction.BAZEL_COMPATIBILITY_MODE, BazelCompatibilityMode.ERROR), - PrecomputedValue.injected(BazelLockFileFunction.LOCKFILE_MODE, LockfileMode.UPDATE)); - } - - @Before - public void setUpForBzlmod() throws Exception { - scratch.file("MODULE.bazel"); - } - @Test public void testBzlLoadLabels() throws Exception { scratch.file("pkg1/BUILD"); @@ -1094,7 +1057,7 @@ @Test public void testLoadBzlFileFromBzlmod() throws Exception { - setBuildLanguageOptions("--enable_bzlmod", "--experimental_enable_scl_dialect"); + setBuildLanguageOptions("--experimental_enable_scl_dialect"); scratch.overwriteFile("MODULE.bazel", "bazel_dep(name='foo',version='1.0')"); registry .addModule(
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionTest.java index c5e53f5..f120a34 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionTest.java
@@ -36,14 +36,12 @@ import com.google.devtools.build.lib.packages.NoSuchPackageException; import com.google.devtools.build.lib.packages.NoSuchTargetException; import com.google.devtools.build.lib.skyframe.PrecomputedValue.Injected; -import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.skyframe.EvaluationContext; import com.google.devtools.build.skyframe.EvaluationResult; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.WalkableGraph; import java.io.IOException; -import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -52,15 +50,6 @@ @RunWith(JUnit4.class) public class PrepareDepsOfPatternsFunctionTest extends BuildViewTestCase { - private Path moduleRoot; - private FakeRegistry registry; - - @Before - public void setUpForBzlmod() throws Exception { - scratch.file("MODULE.bazel"); - setBuildLanguageOptions("--enable_bzlmod"); - } - private static SkyKey getKeyForLabel(Label label) { // Note that these tests used to look for TargetMarker SkyKeys before TargetMarker was // inlined in TransitiveTraversalFunction. Because TargetMarker is now inlined, it doesn't @@ -354,6 +343,7 @@ scratch.file(moduleRoot.getRelative("repo~1.0/WORKSPACE").getPathString(), ""); scratch.file( moduleRoot.getRelative("repo~1.0/a/BUILD").getPathString(), "exports_files(['x'])"); + invalidatePackages(); } private static void assertValidValue(WalkableGraph graph, SkyKey key)
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RepoFileFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RepoFileFunctionTest.java index 0f1fb9f..1fc739c 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/RepoFileFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/RepoFileFunctionTest.java
@@ -17,24 +17,11 @@ import static com.google.common.truth.Truth.assertThat; import static com.google.devtools.build.lib.bazel.bzlmod.BzlmodTestUtil.createModuleKey; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; -import com.google.devtools.build.lib.bazel.bzlmod.BazelLockFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.BazelModuleResolutionFunction; -import com.google.devtools.build.lib.bazel.bzlmod.FakeRegistry; -import com.google.devtools.build.lib.bazel.bzlmod.ModuleFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.YankedVersionsUtil; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.BazelCompatibilityMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.CheckDirectDepsMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.LockfileMode; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.packages.Type; -import com.google.devtools.build.lib.skyframe.PrecomputedValue.Injected; -import com.google.devtools.build.lib.vfs.Path; -import java.io.IOException; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -42,30 +29,6 @@ @RunWith(JUnit4.class) public class RepoFileFunctionTest extends BuildViewTestCase { - private Path moduleRoot; - private FakeRegistry registry; - - @Override - protected ImmutableList<Injected> extraPrecomputedValues() { - try { - moduleRoot = scratch.dir("modules"); - } catch (IOException e) { - throw new IllegalStateException(e); - } - registry = FakeRegistry.DEFAULT_FACTORY.newFakeRegistry(moduleRoot.getPathString()); - return ImmutableList.of( - PrecomputedValue.injected( - ModuleFileFunction.REGISTRIES, ImmutableList.of(registry.getUrl())), - PrecomputedValue.injected(ModuleFileFunction.IGNORE_DEV_DEPS, false), - PrecomputedValue.injected(ModuleFileFunction.MODULE_OVERRIDES, ImmutableMap.of()), - PrecomputedValue.injected(YankedVersionsUtil.ALLOWED_YANKED_VERSIONS, ImmutableList.of()), - PrecomputedValue.injected( - BazelModuleResolutionFunction.CHECK_DIRECT_DEPENDENCIES, CheckDirectDepsMode.WARNING), - PrecomputedValue.injected( - BazelModuleResolutionFunction.BAZEL_COMPATIBILITY_MODE, BazelCompatibilityMode.ERROR), - PrecomputedValue.injected(BazelLockFileFunction.LOCKFILE_MODE, LockfileMode.UPDATE)); - } - @Test public void defaultVisibility() throws Exception { scratch.overwriteFile("REPO.bazel", "repo(default_visibility=['//some:thing'])"); @@ -88,7 +51,6 @@ @Test public void repoFileInAnExternalRepo() throws Exception { - setBuildLanguageOptions("--enable_bzlmod"); scratch.overwriteFile("MODULE.bazel", "bazel_dep(name='foo',version='1.0')"); scratch.overwriteFile("abc/def/BUILD", "filegroup(name='what')"); registry.addModule(createModuleKey("foo", "1.0"), "module(name='foo',version='1.0')"); @@ -99,6 +61,8 @@ scratch.overwriteFile( moduleRoot.getRelative("foo~1.0/abc/def/BUILD").getPathString(), "filegroup(name='what')"); + invalidatePackages(); + assertThat( getRuleContext(getConfiguredTarget("//abc/def:what")) .attributes()
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunctionTest.java index 4589cdb..3906f22 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunctionTest.java
@@ -19,22 +19,13 @@ import static com.google.devtools.build.skyframe.EvaluationResultSubjectFactory.assertThatEvaluationResult; import static org.junit.Assert.fail; -import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Maps; import com.google.common.testing.EqualsTester; import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.analysis.util.AnalysisMock; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; -import com.google.devtools.build.lib.bazel.bzlmod.BazelLockFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.BazelModuleResolutionFunction; -import com.google.devtools.build.lib.bazel.bzlmod.FakeRegistry; -import com.google.devtools.build.lib.bazel.bzlmod.ModuleFileFunction; +import com.google.devtools.build.lib.bazel.bzlmod.NonRegistryOverride; import com.google.devtools.build.lib.bazel.bzlmod.Version; -import com.google.devtools.build.lib.bazel.bzlmod.YankedVersionsUtil; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.BazelCompatibilityMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.CheckDirectDepsMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.LockfileMode; import com.google.devtools.build.lib.cmdline.RepositoryMapping; import com.google.devtools.build.lib.cmdline.RepositoryName; import com.google.devtools.build.lib.packages.NoSuchPackageException; @@ -45,10 +36,7 @@ import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.vfs.Root; import com.google.devtools.build.skyframe.EvaluationResult; -import com.google.devtools.build.skyframe.SkyFunction; -import com.google.devtools.build.skyframe.SkyFunctionName; import com.google.devtools.build.skyframe.SkyKey; -import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -56,58 +44,29 @@ /** Tests for {@link RepositoryMappingFunction} and {@link RepositoryMappingValue}. */ @RunWith(JUnit4.class) public class RepositoryMappingFunctionTest extends BuildViewTestCase { - private FakeRegistry registry; private EvaluationResult<RepositoryMappingValue> eval(SkyKey key) throws InterruptedException, AbruptExitException { getSkyframeExecutor() .invalidateFilesUnderPathForTesting( reporter, - ModifiedFileSet.builder().modify(PathFragment.create("WORKSPACE")).build(), + ModifiedFileSet.builder() + .modify(PathFragment.create("WORKSPACE")) + .modify(PathFragment.create("MODULE.bazel")) + .build(), Root.fromPath(rootDirectory)); return SkyframeExecutorTestUtils.evaluate( getSkyframeExecutor(), key, /* keepGoing= */ false, reporter); } - @Before - public void setUpForBzlmod() throws Exception { - setBuildLanguageOptions("--enable_bzlmod"); - scratch.file("MODULE.bazel"); - } - - @Override - protected ImmutableList<PrecomputedValue.Injected> extraPrecomputedValues() throws Exception { - registry = FakeRegistry.DEFAULT_FACTORY.newFakeRegistry(scratch.dir("modules").getPathString()); - return ImmutableList.of( - PrecomputedValue.injected( - ModuleFileFunction.REGISTRIES, ImmutableList.of(registry.getUrl())), - PrecomputedValue.injected(ModuleFileFunction.IGNORE_DEV_DEPS, false), - PrecomputedValue.injected(ModuleFileFunction.MODULE_OVERRIDES, ImmutableMap.of()), - PrecomputedValue.injected(YankedVersionsUtil.ALLOWED_YANKED_VERSIONS, ImmutableList.of()), - PrecomputedValue.injected( - BazelModuleResolutionFunction.CHECK_DIRECT_DEPENDENCIES, CheckDirectDepsMode.WARNING), - PrecomputedValue.injected( - BazelModuleResolutionFunction.BAZEL_COMPATIBILITY_MODE, BazelCompatibilityMode.ERROR), - PrecomputedValue.injected(BazelLockFileFunction.LOCKFILE_MODE, LockfileMode.UPDATE)); - } - @Override protected AnalysisMock getAnalysisMock() { // Make sure we don't have built-in modules affecting the dependency graph. return new AnalysisMock.Delegate(super.getAnalysisMock()) { @Override - public ImmutableMap<SkyFunctionName, SkyFunction> getSkyFunctions( + public ImmutableMap<String, NonRegistryOverride> getBuiltinModules( BlazeDirectories directories) { - return ImmutableMap.<SkyFunctionName, SkyFunction>builder() - .putAll( - Maps.filterKeys( - super.getSkyFunctions(directories), - fnName -> !fnName.equals(SkyFunctions.MODULE_FILE))) - .put( - SkyFunctions.MODULE_FILE, - new ModuleFileFunction( - FakeRegistry.DEFAULT_FACTORY, directories.getWorkspace(), ImmutableMap.of())) - .buildOrThrow(); + return ImmutableMap.of(); } }; } @@ -637,27 +596,19 @@ "bazel_dep(name='foo', version='1.0')") .addModule(createModuleKey("foo", "1.0"), "module(name='foo', version='1.0')"); - RepositoryName name = RepositoryName.create("_builtins"); - SkyKey skyKey = RepositoryMappingValue.key(name); - EvaluationResult<RepositoryMappingValue> result = eval(skyKey); + SkyKey builtinsKey = RepositoryMappingValue.key(RepositoryName.create("_builtins")); + SkyKey toolsKey = + RepositoryMappingValue.Key.create(ruleClassProvider.getToolsRepository(), false); + EvaluationResult<RepositoryMappingValue> builtinsResult = eval(builtinsKey); + assertThat(builtinsResult.hasError()).isFalse(); + RepositoryMapping builtinsMapping = builtinsResult.get(builtinsKey).getRepositoryMapping(); + EvaluationResult<RepositoryMappingValue> toolsResult = eval(toolsKey); + assertThat(toolsResult.hasError()).isFalse(); + RepositoryMapping toolsMapping = toolsResult.get(toolsKey).getRepositoryMapping(); - assertThat(result.hasError()).isFalse(); - assertThatEvaluationResult(result) - .hasEntryThat(skyKey) - .isEqualTo( - valueForBzlmod( - ImmutableMap.of( - "bazel_tools", - RepositoryName.BAZEL_TOOLS, // bazel_tools is a well-known module - "foo", - RepositoryName.create("foo~1.0"), - "_builtins", - RepositoryName.create("_builtins"), - "", - RepositoryName.MAIN), - name, - "bazel_tools", - "")); + assertThat(builtinsMapping.entries()).containsAtLeastEntriesIn(toolsMapping.entries()); + assertThat(builtinsMapping.get("_builtins")).isEqualTo(RepositoryName.create("_builtins")); + assertThat(builtinsMapping.get("")).isEqualTo(RepositoryName.MAIN); } @Test
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunctionTest.java index b988d64..6bc8520 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunctionTest.java
@@ -48,6 +48,7 @@ @Test public void testNormal() throws Exception { + setBuildLanguageOptions("--noenable_bzlmod"); scratch.overwriteFile("WORKSPACE", "workspace(name = 'good')"); assertThatEvaluationResult(eval()) .hasEntryThat(key) @@ -56,15 +57,15 @@ @Test public void bzlmod() throws Exception { - setBuildLanguageOptions("--enable_bzlmod"); scratch.overwriteFile("WORKSPACE", "workspace(name = 'good')"); assertThatEvaluationResult(eval()) .hasEntryThat(key) - .isEqualTo(WorkspaceNameValue.withName(getRuleClassProvider().getRunfilesPrefix())); + .isEqualTo(WorkspaceNameValue.withName(ruleClassProvider.getRunfilesPrefix())); } @Test public void testErrorInExternalPkg() throws Exception { + setBuildLanguageOptions("--noenable_bzlmod"); reporter.removeHandler(failFastHandler); scratch.overwriteFile("WORKSPACE", "bad"); assertThatEvaluationResult(eval()) @@ -76,6 +77,7 @@ @Test public void testTransitiveSkyframeError() throws Exception { + setBuildLanguageOptions("--noenable_bzlmod"); reporter.removeHandler(failFastHandler); scratch.deleteFile("WORKSPACE"); FileSystemUtils.ensureSymbolicLink(scratch.resolve("WORKSPACE"), "WORKSPACE");
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/toolchains/RegisteredExecutionPlatformsFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/toolchains/RegisteredExecutionPlatformsFunctionTest.java index 5f8750b..5d9688f 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/toolchains/RegisteredExecutionPlatformsFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/toolchains/RegisteredExecutionPlatformsFunctionTest.java
@@ -20,31 +20,18 @@ import static org.junit.Assert.assertThrows; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import com.google.common.testing.EqualsTester; import com.google.common.truth.IterableSubject; import com.google.devtools.build.lib.analysis.ViewCreationFailedException; import com.google.devtools.build.lib.analysis.platform.ConstraintCollection; -import com.google.devtools.build.lib.bazel.bzlmod.BazelLockFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.BazelModuleResolutionFunction; -import com.google.devtools.build.lib.bazel.bzlmod.FakeRegistry; -import com.google.devtools.build.lib.bazel.bzlmod.ModuleFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.YankedVersionsUtil; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.BazelCompatibilityMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.CheckDirectDepsMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.LockfileMode; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.rules.platform.ToolchainTestCase; import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey; -import com.google.devtools.build.lib.skyframe.PrecomputedValue; -import com.google.devtools.build.lib.skyframe.PrecomputedValue.Injected; import com.google.devtools.build.lib.skyframe.toolchains.PlatformLookupUtil.InvalidPlatformException; import com.google.devtools.build.lib.skyframe.util.SkyframeExecutorTestUtils; -import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.skyframe.EvaluationResult; import com.google.devtools.build.skyframe.SkyKey; -import java.io.IOException; import java.util.List; import java.util.stream.Collectors; import javax.annotation.Nullable; @@ -59,9 +46,6 @@ @RunWith(JUnit4.class) public class RegisteredExecutionPlatformsFunctionTest extends ToolchainTestCase { - private Path moduleRoot; - private FakeRegistry registry; - protected EvaluationResult<RegisteredExecutionPlatformsValue> requestExecutionPlatformsFromSkyframe(SkyKey executionPlatformsKey) throws InterruptedException { @@ -97,27 +81,6 @@ .collect(Collectors.toList()); } - @Override - protected ImmutableList<Injected> extraPrecomputedValues() { - try { - moduleRoot = scratch.dir("modules"); - } catch (IOException e) { - throw new IllegalStateException(e); - } - registry = FakeRegistry.DEFAULT_FACTORY.newFakeRegistry(moduleRoot.getPathString()); - return ImmutableList.of( - PrecomputedValue.injected( - ModuleFileFunction.REGISTRIES, ImmutableList.of(registry.getUrl())), - PrecomputedValue.injected(ModuleFileFunction.IGNORE_DEV_DEPS, false), - PrecomputedValue.injected(ModuleFileFunction.MODULE_OVERRIDES, ImmutableMap.of()), - PrecomputedValue.injected(YankedVersionsUtil.ALLOWED_YANKED_VERSIONS, ImmutableList.of()), - PrecomputedValue.injected( - BazelModuleResolutionFunction.CHECK_DIRECT_DEPENDENCIES, CheckDirectDepsMode.WARNING), - PrecomputedValue.injected( - BazelModuleResolutionFunction.BAZEL_COMPATIBILITY_MODE, BazelCompatibilityMode.ERROR), - PrecomputedValue.injected(BazelLockFileFunction.LOCKFILE_MODE, LockfileMode.UPDATE)); - } - @Test public void testRegisteredExecutionPlatforms() throws Exception { // Request the executionPlatforms. @@ -339,7 +302,6 @@ @Test public void testRegisteredExecutionPlatforms_bzlmod() throws Exception { - setBuildLanguageOptions("--enable_bzlmod"); scratch.overwriteFile( "MODULE.bazel", "register_execution_platforms('//:plat')",
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/toolchains/RegisteredToolchainsFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/toolchains/RegisteredToolchainsFunctionTest.java index 3a4eefe..cb3e364 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/toolchains/RegisteredToolchainsFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/toolchains/RegisteredToolchainsFunctionTest.java
@@ -19,27 +19,15 @@ import static com.google.devtools.build.skyframe.EvaluationResultSubjectFactory.assertThatEvaluationResult; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import com.google.common.testing.EqualsTester; import com.google.devtools.build.lib.analysis.platform.DeclaredToolchainInfo; import com.google.devtools.build.lib.analysis.platform.ToolchainTypeInfo; -import com.google.devtools.build.lib.bazel.bzlmod.BazelLockFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.BazelModuleResolutionFunction; -import com.google.devtools.build.lib.bazel.bzlmod.FakeRegistry; -import com.google.devtools.build.lib.bazel.bzlmod.ModuleFileFunction; -import com.google.devtools.build.lib.bazel.bzlmod.YankedVersionsUtil; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.BazelCompatibilityMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.CheckDirectDepsMode; -import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.LockfileMode; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.rules.platform.ToolchainTestCase; -import com.google.devtools.build.lib.skyframe.PrecomputedValue; -import com.google.devtools.build.lib.skyframe.PrecomputedValue.Injected; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.skyframe.EvaluationResult; import com.google.devtools.build.skyframe.SkyKey; -import java.io.IOException; import java.util.stream.Collectors; import org.junit.Test; import org.junit.runner.RunWith; @@ -49,30 +37,6 @@ @RunWith(JUnit4.class) public class RegisteredToolchainsFunctionTest extends ToolchainTestCase { - private Path moduleRoot; - private FakeRegistry registry; - - @Override - protected ImmutableList<Injected> extraPrecomputedValues() { - try { - moduleRoot = scratch.dir("modules"); - } catch (IOException e) { - throw new IllegalStateException(e); - } - registry = FakeRegistry.DEFAULT_FACTORY.newFakeRegistry(moduleRoot.getPathString()); - return ImmutableList.of( - PrecomputedValue.injected( - ModuleFileFunction.REGISTRIES, ImmutableList.of(registry.getUrl())), - PrecomputedValue.injected(ModuleFileFunction.IGNORE_DEV_DEPS, false), - PrecomputedValue.injected(ModuleFileFunction.MODULE_OVERRIDES, ImmutableMap.of()), - PrecomputedValue.injected(YankedVersionsUtil.ALLOWED_YANKED_VERSIONS, ImmutableList.of()), - PrecomputedValue.injected( - BazelModuleResolutionFunction.CHECK_DIRECT_DEPENDENCIES, CheckDirectDepsMode.WARNING), - PrecomputedValue.injected( - BazelModuleResolutionFunction.BAZEL_COMPATIBILITY_MODE, BazelCompatibilityMode.ERROR), - PrecomputedValue.injected(BazelLockFileFunction.LOCKFILE_MODE, LockfileMode.UPDATE)); - } - @Test public void testRegisteredToolchains() throws Exception { // Request the toolchains. @@ -381,7 +345,6 @@ @Test public void testRegisteredToolchains_bzlmod() throws Exception { - setBuildLanguageOptions("--enable_bzlmod"); scratch.overwriteFile( "MODULE.bazel", "register_toolchains('//:tool')",
diff --git a/src/test/java/com/google/devtools/build/lib/starlark/StarlarkIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/starlark/StarlarkIntegrationTest.java index 0fcca78..84592d1 100644 --- a/src/test/java/com/google/devtools/build/lib/starlark/StarlarkIntegrationTest.java +++ b/src/test/java/com/google/devtools/build/lib/starlark/StarlarkIntegrationTest.java
@@ -116,7 +116,7 @@ checkError( "test/starlark", "the_rule", - "no such package '@r//': The repository '@r' could not be resolved", + "No repository visible as '@r'", "load('//test/starlark:extension.bzl', 'my_rule')", "", "my_rule(name='the_rule')"); @@ -1576,7 +1576,7 @@ getConfiguredTarget("//test/starlark:cr"); assertContainsEvent("output function cr"); - assertContainsEvent("implementation @//test/starlark:cr"); + assertContainsEvent("implementation @@//test/starlark:cr"); } @Test
diff --git a/src/test/java/com/google/devtools/build/lib/starlark/StarlarkRuleClassFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/starlark/StarlarkRuleClassFunctionsTest.java index e17738c..dd5888a 100644 --- a/src/test/java/com/google/devtools/build/lib/starlark/StarlarkRuleClassFunctionsTest.java +++ b/src/test/java/com/google/devtools/build/lib/starlark/StarlarkRuleClassFunctionsTest.java
@@ -2819,7 +2819,7 @@ Label.parseCanonical("//initializer_testing:b.bzl"), "MyInfo")); assertThat((List<String>) info.getValue("srcs")).containsExactly("initializer_testing/a.ml"); - assertThat((List<String>) info.getValue("deps")).containsExactly("@//:initial", "@//:added"); + assertThat((List<String>) info.getValue("deps")).containsExactly("@@//:initial", "@@//:added"); } @Test @@ -2878,7 +2878,7 @@ new StarlarkProvider.Key( Label.parseCanonical("//initializer_testing:b.bzl"), "MyInfo")); - assertThat((List<String>) info.getValue("deps")).containsExactly("@//:initializer_default"); + assertThat((List<String>) info.getValue("deps")).containsExactly("@@//:initializer_default"); } @Test @@ -2913,7 +2913,7 @@ new StarlarkProvider.Key( Label.parseCanonical("//initializer_testing:b.bzl"), "MyInfo")); - assertThat((List<String>) info.getValue("deps")).containsExactly("@//:attr_default"); + assertThat((List<String>) info.getValue("deps")).containsExactly("@@//:attr_default"); } @Test
diff --git a/src/test/java/com/google/devtools/build/lib/starlark/StarlarkStringRepresentationsTest.java b/src/test/java/com/google/devtools/build/lib/starlark/StarlarkStringRepresentationsTest.java index e3b6512..75db009 100644 --- a/src/test/java/com/google/devtools/build/lib/starlark/StarlarkStringRepresentationsTest.java +++ b/src/test/java/com/google/devtools/build/lib/starlark/StarlarkStringRepresentationsTest.java
@@ -233,9 +233,9 @@ @Test public void testStringRepresentations_labels() throws Exception { - assertThat(starlarkLoadingEval("str(Label('//foo:bar'))")).isEqualTo("@//foo:bar"); - assertThat(starlarkLoadingEval("'%s' % Label('//foo:bar')")).isEqualTo("@//foo:bar"); - assertThat(starlarkLoadingEval("'{}'.format(Label('//foo:bar'))")).isEqualTo("@//foo:bar"); + assertThat(starlarkLoadingEval("str(Label('//foo:bar'))")).isEqualTo("@@//foo:bar"); + assertThat(starlarkLoadingEval("'%s' % Label('//foo:bar')")).isEqualTo("@@//foo:bar"); + assertThat(starlarkLoadingEval("'{}'.format(Label('//foo:bar'))")).isEqualTo("@@//foo:bar"); assertThat(starlarkLoadingEval("repr(Label('//foo:bar'))")).isEqualTo("Label(\"//foo:bar\")"); assertThat(starlarkLoadingEval("'%r' % Label('//foo:bar')")).isEqualTo("Label(\"//foo:bar\")");
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/FoundationTestCase.java b/src/test/java/com/google/devtools/build/lib/testutil/FoundationTestCase.java index 99e2b4b..3c70cb7 100644 --- a/src/test/java/com/google/devtools/build/lib/testutil/FoundationTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/testutil/FoundationTestCase.java
@@ -76,6 +76,7 @@ outputBase = scratch.dir("/usr/local/google/_blaze_jrluser/FAKEMD5/"); rootDirectory = scratch.dir("/workspace"); scratch.file(rootDirectory.getRelative("WORKSPACE").getPathString()); + scratch.file(rootDirectory.getRelative("MODULE.bazel").getPathString()); root = Root.fromPath(rootDirectory); }