diff options
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/analysis/config/BuildOptionsTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/analysis/config/BuildOptionsTest.java | 27 |
1 files changed, 27 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 10b8f685cd..fcb5cd895a 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 @@ -14,8 +14,10 @@ package com.google.devtools.build.lib.analysis.config; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import com.google.common.collect.ImmutableList; +import com.google.devtools.build.lib.rules.cpp.CppOptions; import org.junit.Test; import org.junit.runner.RunWith; @@ -47,4 +49,29 @@ public class BuildOptionsTest { BuildOptions b = BuildOptions.of(TEST_OPTIONS, options); assertEquals(a.toString(), b.toString()); } + + @Test + public void testOptionsEquality() throws Exception { + String[] options1 = new String[] { "--compilation_mode=opt" }; + String[] options2 = new String[] { "--compilation_mode=dbg" }; + // Distinct instances with the same values are equal: + assertEquals(BuildOptions.of(TEST_OPTIONS, options1), BuildOptions.of(TEST_OPTIONS, options1)); + // Same fragments, different values aren't equal: + assertFalse(BuildOptions.of(TEST_OPTIONS, options1).equals( + BuildOptions.of(TEST_OPTIONS, options2))); + // Same values, different fragments aren't equal: + assertFalse(BuildOptions.of(TEST_OPTIONS, options1).equals( + BuildOptions.of( + ImmutableList.<Class<? extends FragmentOptions>>of( + BuildConfiguration.Options.class, CppOptions.class), + options1))); + // Same values and fragments, same original options are equal: + BuildOptions original1 = BuildOptions.of(TEST_OPTIONS, options1); + BuildOptions original2 = BuildOptions.of(TEST_OPTIONS, options2); + assertEquals(BuildOptions.of(TEST_OPTIONS, original1, options2), + BuildOptions.of(TEST_OPTIONS, original1, options2)); + // Same values and fragments, different original options are not equal: + assertFalse(BuildOptions.of(TEST_OPTIONS, original1, options2).equals( + BuildOptions.of(TEST_OPTIONS, original2, options2))); + } } |