aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseKeyTest.java
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2016-02-10 16:01:33 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-02-11 11:48:30 +0000
commit6e638ef4e756e4d53925be580096b254d7f764eb (patch)
treec608b9d57c5a8e61bcea1c7edc934f6fc6aca024 /src/test/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseKeyTest.java
parent33ec191dba103474d95649ab3849cc37f00947f2 (diff)
Fix bug in TargetPatternList.equals, which was ignoring the offset.
-- MOS_MIGRATED_REVID=114326701
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseKeyTest.java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseKeyTest.java83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseKeyTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseKeyTest.java
new file mode 100644
index 0000000000..e5d72aa7cf
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseKeyTest.java
@@ -0,0 +1,83 @@
+// Copyright 2016 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.skyframe;
+
+import static com.google.devtools.build.lib.skyframe.TargetPatternPhaseKeyTest.Flag.BUILD_TESTS_ONLY;
+import static com.google.devtools.build.lib.skyframe.TargetPatternPhaseKeyTest.Flag.COMPILE_ONE_DEPENDENCY;
+import static com.google.devtools.build.lib.skyframe.TargetPatternPhaseKeyTest.Flag.DETERMINE_TESTS;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.testing.EqualsTester;
+import com.google.common.testing.NullPointerTester;
+import com.google.devtools.build.lib.events.NullEventHandler;
+import com.google.devtools.build.lib.pkgcache.LoadingOptions;
+import com.google.devtools.build.lib.pkgcache.TestFilter;
+import com.google.devtools.build.lib.skyframe.TargetPatternPhaseValue.TargetPatternList;
+import com.google.devtools.common.options.Options;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import javax.annotation.Nullable;
+
+/** Tests for {@link TargetPatternList}. */
+@RunWith(JUnit4.class)
+public class TargetPatternPhaseKeyTest {
+ static enum Flag {
+ COMPILE_ONE_DEPENDENCY,
+ BUILD_TESTS_ONLY,
+ DETERMINE_TESTS
+ }
+
+ @Test
+ public void testEquality() throws Exception {
+ new EqualsTester()
+ .addEqualityGroup(of(ImmutableList.of("a"), "offset"))
+ .addEqualityGroup(of(ImmutableList.of("b"), "offset"))
+ .addEqualityGroup(of(ImmutableList.of("b"), ""))
+ .addEqualityGroup(of(ImmutableList.of("c"), ""))
+ .addEqualityGroup(of(ImmutableList.<String>of(), ""))
+ .addEqualityGroup(of(ImmutableList.<String>of(), "", null, COMPILE_ONE_DEPENDENCY))
+ .addEqualityGroup(of(ImmutableList.<String>of(), "", emptyTestFilter(), BUILD_TESTS_ONLY))
+ .addEqualityGroup(of(ImmutableList.<String>of(), "", emptyTestFilter(), DETERMINE_TESTS))
+ .testEquals();
+ }
+
+ private TargetPatternList of(ImmutableList<String> targetPatterns, String offset,
+ @Nullable TestFilter testFilter, Flag... flags) {
+ ImmutableSet<Flag> set = ImmutableSet.copyOf(flags);
+ boolean compileOneDependency = set.contains(Flag.COMPILE_ONE_DEPENDENCY);
+ boolean buildTestsOnly = set.contains(Flag.BUILD_TESTS_ONLY);
+ boolean determineTests = set.contains(Flag.DETERMINE_TESTS);
+ return new TargetPatternList(targetPatterns, offset, compileOneDependency, buildTestsOnly,
+ determineTests, testFilter);
+ }
+
+ private TargetPatternList of(ImmutableList<String> targetPatterns, String offset) {
+ return of(targetPatterns, offset, null);
+ }
+
+ private TestFilter emptyTestFilter() {
+ LoadingOptions options = Options.getDefaults(LoadingOptions.class);
+ return TestFilter.forOptions(options, NullEventHandler.INSTANCE, ImmutableSet.<String>of());
+ }
+
+ @Test
+ public void testNull() throws Exception {
+ new NullPointerTester()
+ .testAllPublicConstructors(TargetPatternList.class);
+ }
+}