aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar juliexxia <juliexxia@google.com>2018-02-23 08:11:48 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-23 08:13:21 -0800
commitc4b49f276fc4a410f8f249e32f30ac4602724a95 (patch)
treee7c264b0bb8c768e5cd5a860d29848eed4002b85 /src/test/java/com/google/devtools
parent09077a35da3def2474d90f1cc1bb14848dd6fd4f (diff)
Add a new BuildOptions diff method that holds and pretty prints the different option values between two BuildOptions
PiperOrigin-RevId: 186769975
Diffstat (limited to 'src/test/java/com/google/devtools')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/config/BuildOptionsTest.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildOptionsTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildOptionsTest.java
index 7dbca0bf42..f82d48bb5e 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildOptionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildOptionsTest.java
@@ -16,6 +16,7 @@ package com.google.devtools.build.lib.analysis.config;
import static com.google.common.truth.Truth.assertThat;
import com.google.common.collect.ImmutableList;
+import com.google.devtools.build.lib.analysis.config.BuildOptions.OptionsDiff;
import com.google.devtools.build.lib.rules.cpp.CppOptions;
import com.google.devtools.common.options.OptionsParser;
import org.junit.Test;
@@ -70,4 +71,34 @@ public class BuildOptionsTest {
options1)))
.isFalse();
}
+
+ @Test
+ public void testOptionsDiff() throws Exception {
+ BuildOptions one = BuildOptions.of(TEST_OPTIONS, "--compilation_mode=opt", "cpu=k8");
+ BuildOptions two = BuildOptions.of(TEST_OPTIONS, "--compilation_mode=dbg", "cpu=k8");
+ BuildOptions three = BuildOptions.of(TEST_OPTIONS, "--compilation_mode=dbg", "cpu=k8");
+
+ OptionsDiff diffOneTwo = BuildOptions.diff(one, two);
+ OptionsDiff diffTwoThree = BuildOptions.diff(two, three);
+
+ assertThat(diffOneTwo.areSame()).isFalse();
+ assertThat(diffOneTwo.getFirst().keySet()).isEqualTo(diffOneTwo.getSecond().keySet());
+ assertThat(diffOneTwo.prettyPrint()).contains("opt");
+ assertThat(diffOneTwo.prettyPrint()).contains("dbg");
+
+ assertThat(diffTwoThree.areSame()).isTrue();
+ }
+
+ @Test
+ public void testOptionsDiff_differentFragments() throws Exception {
+ BuildOptions one =
+ BuildOptions.of(ImmutableList.<Class<? extends FragmentOptions>>of(CppOptions.class));
+ BuildOptions two = BuildOptions.of(TEST_OPTIONS);
+
+ OptionsDiff diff = BuildOptions.diff(one, two);
+
+ assertThat(diff.areSame()).isFalse();
+ assertThat(diff.getExtraFirstFragments()).containsExactly(CppOptions.class);
+ assertThat(diff.getExtraSecondFragments()).isEqualTo(TEST_OPTIONS);
+ }
}