Update platform mapping tests to use a custom test fragment.
Preparation for fixing option merging.
PiperOrigin-RevId: 625092900
Change-Id: Id731caad382e403e09184e6800eba531dc9672d9
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/config/BUILD b/src/test/java/com/google/devtools/build/lib/skyframe/config/BUILD
index 4af941f..f8bcb8c 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/config/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/config/BUILD
@@ -20,6 +20,7 @@
"//src/main/java/com/google/devtools/build/lib/analysis:config/build_options",
"//src/main/java/com/google/devtools/build/lib/analysis:config/compilation_mode",
"//src/main/java/com/google/devtools/build/lib/analysis:config/core_options",
+ "//src/main/java/com/google/devtools/build/lib/analysis:config/fragment",
"//src/main/java/com/google/devtools/build/lib/analysis:config/fragment_options",
"//src/main/java/com/google/devtools/build/lib/analysis:configured_target",
"//src/main/java/com/google/devtools/build/lib/analysis:platform_options",
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/config/PlatformMappingFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/config/PlatformMappingFunctionTest.java
index 98fd7d8..ab33399 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/config/PlatformMappingFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/config/PlatformMappingFunctionTest.java
@@ -24,8 +24,10 @@
import com.google.devtools.build.lib.analysis.PlatformOptions;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.CoreOptions;
+import com.google.devtools.build.lib.analysis.config.Fragment;
+import com.google.devtools.build.lib.analysis.config.FragmentOptions;
+import com.google.devtools.build.lib.analysis.config.RequiresOptions;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
-import com.google.devtools.build.lib.analysis.util.DummyTestFragment;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.rules.repository.RepositoryDelegatorFunction;
import com.google.devtools.build.lib.skyframe.PrecomputedValue;
@@ -34,6 +36,10 @@
import com.google.devtools.build.lib.testutil.TestRuleClassProvider;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.skyframe.EvaluationResult;
+import com.google.devtools.common.options.Option;
+import com.google.devtools.common.options.OptionDocumentationCategory;
+import com.google.devtools.common.options.OptionEffectTag;
+import com.google.devtools.common.options.OptionMetadataTag;
import java.util.Optional;
import org.junit.Before;
import org.junit.Test;
@@ -53,16 +59,44 @@
private static final Label DEFAULT_TARGET_PLATFORM =
Label.parseCanonicalUnchecked("@bazel_tools//tools:host_platform");
- private BuildOptions defaultBuildOptions;
+ /** Extra options for this test. */
+ public static class DummyTestOptions extends FragmentOptions {
+ public DummyTestOptions() {}
+
+ @Option(
+ name = "internal_option",
+ documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
+ effectTags = {OptionEffectTag.NO_OP},
+ defaultValue = "super secret",
+ metadataTags = {OptionMetadataTag.INTERNAL})
+ public String internalOption;
+ }
+
+ /** Test fragment. */
+ @RequiresOptions(options = {DummyTestOptions.class})
+ public static final class DummyTestOptionsFragment extends Fragment {
+ private final BuildOptions buildOptions;
+
+ public DummyTestOptionsFragment(BuildOptions buildOptions) {
+ this.buildOptions = buildOptions;
+ }
+
+ // Getter required to satisfy AutoCodec.
+ public BuildOptions getBuildOptions() {
+ return buildOptions;
+ }
+ }
@Override
protected ConfiguredRuleClassProvider createRuleClassProvider() {
ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder();
TestRuleClassProvider.addStandardRules(builder);
- builder.addConfigurationFragment(DummyTestFragment.class);
+ builder.addConfigurationFragment(DummyTestOptionsFragment.class);
return builder.build();
}
+ private BuildOptions defaultBuildOptions;
+
@Before
public void setDefaultBuildOptions() {
defaultBuildOptions =
@@ -227,7 +261,7 @@
"my_mapping_file",
"platforms:", // Force line break
" //platforms:one", // Force line break
- " --internal foo=something_new");
+ " --internal_option=something_new");
PlatformMappingValue platformMappingValue =
executeFunction(PlatformMappingValue.Key.create(PathFragment.create("my_mapping_file")));
@@ -237,8 +271,7 @@
BuildOptions mapped = platformMappingValue.map(modifiedOptions);
- assertThat(mapped.get(DummyTestFragment.DummyTestOptions.class).internalFoo)
- .isEqualTo("something_new");
+ assertThat(mapped.get(DummyTestOptions.class).internalOption).isEqualTo("something_new");
}
@Test