aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/analysis/TestConfigFragments.java
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-01-24 12:54:15 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-01-24 12:55:55 -0800
commit146c2457808318191b7afd3424170fea13eff28b (patch)
treecac212a103e8a844174b75dc669667206c55cf0e /src/test/java/com/google/devtools/build/lib/analysis/TestConfigFragments.java
parentc619e7881559f774d16f84261ab39906a3ac8c60 (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.java54
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());
}