diff options
author | juliexxia <juliexxia@google.com> | 2018-02-23 08:11:48 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-02-23 08:13:21 -0800 |
commit | c4b49f276fc4a410f8f249e32f30ac4602724a95 (patch) | |
tree | e7c264b0bb8c768e5cd5a860d29848eed4002b85 /src/test/java/com/google/devtools | |
parent | 09077a35da3def2474d90f1cc1bb14848dd6fd4f (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.java | 31 |
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); + } } |