diff options
author | 2018-01-24 12:54:15 -0800 | |
---|---|---|
committer | 2018-01-24 12:55:55 -0800 | |
commit | 146c2457808318191b7afd3424170fea13eff28b (patch) | |
tree | cac212a103e8a844174b75dc669667206c55cf0e /src/test/java/com/google/devtools/build/lib/analysis/TestConfigFragments.java | |
parent | c619e7881559f774d16f84261ab39906a3ac8c60 (diff) |
Add codecs for TestConfiguration, ConfiguredFragmentValue, and TestConfigFragment.
Thanks to shahan@ for the TestConfigFragment code.
PiperOrigin-RevId: 183127152
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/analysis/TestConfigFragments.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/analysis/TestConfigFragments.java | 54 |
1 files changed, 34 insertions, 20 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/TestConfigFragments.java b/src/test/java/com/google/devtools/build/lib/analysis/TestConfigFragments.java index d07220505e..2dcad7ecaf 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/TestConfigFragments.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/TestConfigFragments.java @@ -23,6 +23,8 @@ import com.google.devtools.build.lib.analysis.config.FragmentOptions; import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException; import com.google.devtools.build.lib.analysis.config.transitions.PatchTransition; import com.google.devtools.build.lib.packages.Target; +import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; /** * Grab bag file for test configuration fragments and fragment factories. @@ -62,8 +64,9 @@ public class TestConfigFragments { } @Override - public BuildConfiguration.Fragment create(ConfigurationEnvironment env, - BuildOptions buildOptions) throws InvalidConfigurationException { + public BuildConfiguration.Fragment create( + ConfigurationEnvironment env, BuildOptions buildOptions) + throws InvalidConfigurationException { return fragment; } @@ -78,27 +81,38 @@ public class TestConfigFragments { } } + @AutoCodec + static class Hook1Fragment extends BuildConfiguration.Fragment { + public static final ObjectCodec<Hook1Fragment> CODEC = + new TestConfigFragments_Hook1Fragment_AutoCodec(); + + @Override + public PatchTransition topLevelConfigurationHook(Target toTarget) { + return new HostCpuTransition("CONFIG HOOK 1"); + } + } + /** Factory for a test fragment with a top-level configuration hook. */ public static SimpleFragmentFactory FragmentWithTopLevelConfigHook1Factory = - new SimpleFragmentFactory( - new BuildConfiguration.Fragment() { - @Override - public PatchTransition topLevelConfigurationHook(Target toTarget) { - return new HostCpuTransition("CONFIG HOOK 1"); - } - }); + new SimpleFragmentFactory(new Hook1Fragment()); + + /** + * The class definition for the BuildConfiguration.Fragment needs to be different than the one of + * its peer above. This is because Bazel indexes configuration fragments by class name. So we need + * to make sure all fragment definitions retain distinct class names. + */ + @AutoCodec + static class Hook2Fragment extends BuildConfiguration.Fragment { + public static final ObjectCodec<Hook2Fragment> CODEC = + new TestConfigFragments_Hook2Fragment_AutoCodec(); + + @Override + public PatchTransition topLevelConfigurationHook(Target toTarget) { + return new HostCpuTransition("CONFIG HOOK 2"); + } + } /** Factory for a test fragment with a top-level configuration hook. */ public static SimpleFragmentFactory FragmentWithTopLevelConfigHook2Factory = - // The anonymous class definition for the BuildConfiguration.Fragment needs to be different - // than the one of its peer above. This is because Bazel indexes configuration fragments - // by class name. So we need to make sure all fragment definitions retain distinct class - // names (i.e. "TestConfigFragments$1", "TestConfigFragments$2", etc). - new SimpleFragmentFactory( - new BuildConfiguration.Fragment() { - @Override - public PatchTransition topLevelConfigurationHook(Target toTarget) { - return new HostCpuTransition("CONFIG HOOK 2"); - } - }); + new SimpleFragmentFactory(new Hook2Fragment()); } |