Skip to content

Commit

Permalink
More platform mapping test cleanups.
Browse files Browse the repository at this point in the history
Work towards platform-based flags: #19409.

PiperOrigin-RevId: 630030455
Change-Id: I91933097a31ad5fe1ff5955e58261bde357362d0
  • Loading branch information
katre authored and copybara-github committed May 2, 2024
1 parent 79b6c95 commit 36b812b
Show file tree
Hide file tree
Showing 2 changed files with 141 additions and 142 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@
import com.google.devtools.common.options.OptionDocumentationCategory;
import com.google.devtools.common.options.OptionEffectTag;
import com.google.devtools.common.options.OptionMetadataTag;
import com.google.devtools.common.options.OptionsParser;
import java.util.List;
import java.util.Optional;
import org.junit.Test;
Expand All @@ -57,9 +56,6 @@ public final class PlatformMappingFunctionTest extends BuildViewTestCase {

private static final Label PLATFORM1 = Label.parseCanonicalUnchecked("//platforms:one");

private static final Label DEFAULT_TARGET_PLATFORM =
Label.parseCanonicalUnchecked("@bazel_tools//tools:host_platform");

/** Extra options for this test. */
public static class DummyTestOptions extends FragmentOptions {
public DummyTestOptions() {}
Expand Down Expand Up @@ -88,15 +84,6 @@ public DummyTestOptions() {}
public List<String> list;
}

private static final ImmutableList<Class<? extends FragmentOptions>> BUILD_CONFIG_OPTIONS =
ImmutableList.of(
// Needed for --platforms
PlatformOptions.class,
// All other native flags
DummyTestOptions.class);

// Make sure PlatformMappingFunction can use the new options class.

/** Test fragment. */
@RequiresOptions(options = {DummyTestOptions.class})
public static final class DummyTestOptionsFragment extends Fragment {
Expand All @@ -121,13 +108,8 @@ protected ConfiguredRuleClassProvider createRuleClassProvider() {
return builder.build();
}

private BuildOptions createBuildOptions() {
return BuildOptions.of(
BUILD_CONFIG_OPTIONS, OptionsParser.builder().optionsClasses(BUILD_CONFIG_OPTIONS).build());
}

@Test
public void testMappingFileDoesNotExist() {
public void invalidMappingFile_doesNotExist_customLocation() {
PlatformMappingException exception =
assertThrows(
PlatformMappingException.class,
Expand All @@ -139,18 +121,18 @@ public void testMappingFileDoesNotExist() {
}

@Test
public void testMappingFileDoesNotExistDefaultLocation() throws Exception {
public void invalidMappingFile_doesNotExist_defaultLocation() throws Exception {
PlatformMappingValue platformMappingValue =
executeFunction(PlatformMappingValue.Key.create(null));

BuildOptions mapped = platformMappingValue.map(createBuildOptions());

assertThat(mapped.get(PlatformOptions.class).platforms)
.containsExactly(DEFAULT_TARGET_PLATFORM);
.containsExactly(Label.parseCanonicalUnchecked("@bazel_tools//tools:host_platform"));
}

@Test
public void testMappingFileIsDirectory() throws Exception {
public void invalidMappingFile_isDirectory() throws Exception {
scratch.dir("somedir");

PlatformMappingException exception =
Expand All @@ -174,8 +156,7 @@ public void mapFromPlatform() throws Exception {
PlatformMappingValue platformMappingValue =
executeFunction(PlatformMappingValue.Key.create(PathFragment.create("my_mapping_file")));

BuildOptions modifiedOptions = createBuildOptions();
modifiedOptions.get(PlatformOptions.class).platforms = ImmutableList.of(PLATFORM1);
BuildOptions modifiedOptions = createBuildOptions("--platforms=//platforms:one");

BuildOptions mapped = platformMappingValue.map(modifiedOptions);

Expand All @@ -198,8 +179,7 @@ public void mapFromPlatform_fromAlternatePackagePath() throws Exception {
PlatformMappingValue platformMappingValue =
executeFunction(PlatformMappingValue.Key.create(PathFragment.create("my_mapping_file")));

BuildOptions modifiedOptions = createBuildOptions();
modifiedOptions.get(PlatformOptions.class).platforms = ImmutableList.of(PLATFORM1);
BuildOptions modifiedOptions = createBuildOptions("--platforms=//platforms:one");

BuildOptions mapped = platformMappingValue.map(modifiedOptions);

Expand All @@ -226,8 +206,7 @@ public void mapFromPlatform_noWorkspace() throws Exception {

PlatformMappingValue platformMappingValue =
executeFunction(PlatformMappingValue.Key.create(PathFragment.create("my_mapping_file")));
BuildOptions modifiedOptions = createBuildOptions();
modifiedOptions.get(PlatformOptions.class).platforms = ImmutableList.of(PLATFORM1);
BuildOptions modifiedOptions = createBuildOptions("--platforms=//platforms:one");

BuildOptions mapped = platformMappingValue.map(modifiedOptions);

Expand All @@ -249,8 +228,7 @@ public void multiplePackagePaths() throws Exception {
PlatformMappingValue platformMappingValue =
executeFunction(PlatformMappingValue.Key.create(PathFragment.create("my_mapping_file")));

BuildOptions modifiedOptions = createBuildOptions();
modifiedOptions.get(PlatformOptions.class).platforms = ImmutableList.of(PLATFORM1);
BuildOptions modifiedOptions = createBuildOptions("--platforms=//platforms:one");

BuildOptions mapped = platformMappingValue.map(modifiedOptions);

Expand Down Expand Up @@ -279,8 +257,7 @@ public void multiplePackagePathsFirstWins() throws Exception {
PlatformMappingValue platformMappingValue =
executeFunction(PlatformMappingValue.Key.create(PathFragment.create("my_mapping_file")));

BuildOptions modifiedOptions = createBuildOptions();
modifiedOptions.get(PlatformOptions.class).platforms = ImmutableList.of(PLATFORM1);
BuildOptions modifiedOptions = createBuildOptions("--platforms=//platforms:one");

BuildOptions mapped = platformMappingValue.map(modifiedOptions);

Expand All @@ -302,8 +279,7 @@ public void mapFromPlatform_internalOption() throws Exception {
PlatformMappingValue platformMappingValue =
executeFunction(PlatformMappingValue.Key.create(PathFragment.create("my_mapping_file")));

BuildOptions modifiedOptions = createBuildOptions();
modifiedOptions.get(PlatformOptions.class).platforms = ImmutableList.of(PLATFORM1);
BuildOptions modifiedOptions = createBuildOptions("--platforms=//platforms:one");

BuildOptions mapped = platformMappingValue.map(modifiedOptions);

Expand All @@ -324,8 +300,8 @@ public void mapFromPlatform_starlarkFlag() throws Exception {
PlatformMappingValue platformMappingValue =
executeFunction(PlatformMappingValue.Key.create(PathFragment.create("my_mapping_file")));

BuildOptions modifiedOptions = createBuildOptions();
modifiedOptions.get(PlatformOptions.class).platforms = ImmutableList.of(PLATFORM1);
BuildOptions modifiedOptions = createBuildOptions("--platforms=//platforms:one");

BuildOptions mapped = platformMappingValue.map(modifiedOptions);

assertThat(mapped.getStarlarkOptions())
Expand All @@ -345,9 +321,8 @@ public void mapFromPlatform_listFlag_overridesConfig() throws Exception {
PlatformMappingValue platformMappingValue =
executeFunction(PlatformMappingValue.Key.create(PathFragment.create("my_mapping_file")));

BuildOptions modifiedOptions = createBuildOptions();
modifiedOptions.get(DummyTestOptions.class).list = ImmutableList.of("from_config");
modifiedOptions.get(PlatformOptions.class).platforms = ImmutableList.of(PLATFORM1);
BuildOptions modifiedOptions =
createBuildOptions("--platforms=//platforms:one", "--list=from_config");

BuildOptions mapped = platformMappingValue.map(modifiedOptions);

Expand Down Expand Up @@ -467,8 +442,7 @@ public void mapFromFlag() throws Exception {
PlatformMappingValue platformMappingValue =
executeFunction(PlatformMappingValue.Key.create(PathFragment.create("my_mapping_file")));

BuildOptions modifiedOptions = createBuildOptions();
modifiedOptions.get(DummyTestOptions.class).strOption = "one";
BuildOptions modifiedOptions = createBuildOptions("--str_option=one");

BuildOptions mapped = platformMappingValue.map(modifiedOptions);

Expand All @@ -489,11 +463,7 @@ public void mapFromFlag_starlarkFlag() throws Exception {
PlatformMappingValue platformMappingValue =
executeFunction(PlatformMappingValue.Key.create(PathFragment.create("my_mapping_file")));

BuildOptions modifiedOptions =
createBuildOptions().toBuilder()
.addStarlarkOption(
Label.parseCanonicalUnchecked("//flag:my_string_flag"), "mapped_value")
.build();
BuildOptions modifiedOptions = createBuildOptions("--//flag:my_string_flag=mapped_value");

BuildOptions mapped = platformMappingValue.map(modifiedOptions);

Expand Down
Loading

0 comments on commit 36b812b

Please sign in to comment.