aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/analysis/config/BuildOptionsTest.java
diff options
context:
space:
mode:
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.java27
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)));
+ }
}