From d87842d60c12289fc8968e00f0d1f8ae944ce2ae Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Thu, 24 Nov 2022 13:58:02 +0100 Subject: Move test utility code to test directory. --- .../dispatch/searchcluster/SearchGroupsImpl.java | 24 ------- .../com/yahoo/search/dispatch/DispatcherTest.java | 3 +- .../dispatch/InterleavedSearchInvokerTest.java | 1 + .../yahoo/search/dispatch/MockSearchCluster.java | 53 --------------- .../com/yahoo/search/dispatch/SearchPathTest.java | 4 +- .../dispatch/searchcluster/MockSearchCluster.java | 75 ++++++++++++++++++++++ .../searchcluster/SearchClusterTester.java | 2 - 7 files changed, 80 insertions(+), 82 deletions(-) delete mode 100644 container-search/src/test/java/com/yahoo/search/dispatch/MockSearchCluster.java create mode 100644 container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/MockSearchCluster.java (limited to 'container-search') diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/SearchGroupsImpl.java b/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/SearchGroupsImpl.java index 1d203353929..f5ce987c64c 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/SearchGroupsImpl.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/SearchGroupsImpl.java @@ -2,10 +2,7 @@ package com.yahoo.search.dispatch.searchcluster; import com.google.common.math.Quantiles; -import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; @@ -40,25 +37,4 @@ public class SearchGroupsImpl implements SearchGroups { var activeDocuments = groups().stream().map(Group::activeDocuments).collect(Collectors.toList()); return (long) Quantiles.median().compute(activeDocuments); } - - - public static SearchGroupsImpl buildGroupListForTest(int numGroups, int nodesPerGroup, double minActivedocsPercentage) { - return new SearchGroupsImpl(buildGroupMapForTest(numGroups, nodesPerGroup), minActivedocsPercentage); - } - public static Map buildGroupMapForTest(int numGroups, int nodesPerGroup) { - Map groups = new HashMap<>(); - int distributionKey = 0; - for (int group = 0; group < numGroups; group++) { - List groupNodes = new ArrayList<>(); - for (int i = 0; i < nodesPerGroup; i++) { - Node node = new Node(distributionKey, "host" + distributionKey, group); - node.setWorking(true); - groupNodes.add(node); - distributionKey++; - } - Group g = new Group(group, groupNodes); - groups.put(group, g); - } - return Map.copyOf(groups); - } } diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/DispatcherTest.java b/container-search/src/test/java/com/yahoo/search/dispatch/DispatcherTest.java index 89ca400362c..2603f89b546 100644 --- a/container-search/src/test/java/com/yahoo/search/dispatch/DispatcherTest.java +++ b/container-search/src/test/java/com/yahoo/search/dispatch/DispatcherTest.java @@ -5,6 +5,7 @@ import com.yahoo.prelude.fastsearch.VespaBackEndSearcher; import com.yahoo.search.Query; import com.yahoo.search.Result; import com.yahoo.search.cluster.ClusterMonitor; +import com.yahoo.search.dispatch.searchcluster.MockSearchCluster; import com.yahoo.search.dispatch.searchcluster.SearchGroups; import com.yahoo.search.dispatch.searchcluster.Node; import com.yahoo.search.dispatch.searchcluster.PingFactory; @@ -17,7 +18,7 @@ import org.junit.jupiter.api.Test; import java.util.List; import java.util.Optional; -import static com.yahoo.search.dispatch.MockSearchCluster.createDispatchConfig; +import static com.yahoo.search.dispatch.searchcluster.MockSearchCluster.createDispatchConfig; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertFalse; diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java b/container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java index 178d3383805..688cdffe22d 100644 --- a/container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java +++ b/container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java @@ -9,6 +9,7 @@ import com.yahoo.prelude.fastsearch.GroupingListHit; import com.yahoo.search.Query; import com.yahoo.search.Result; import com.yahoo.search.dispatch.searchcluster.Group; +import com.yahoo.search.dispatch.searchcluster.MockSearchCluster; import com.yahoo.search.dispatch.searchcluster.Node; import com.yahoo.search.result.Coverage; import com.yahoo.search.result.ErrorMessage; diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/MockSearchCluster.java b/container-search/src/test/java/com/yahoo/search/dispatch/MockSearchCluster.java deleted file mode 100644 index 727e00ed681..00000000000 --- a/container-search/src/test/java/com/yahoo/search/dispatch/MockSearchCluster.java +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.search.dispatch; - -import com.yahoo.search.dispatch.searchcluster.SearchGroupsImpl; -import com.yahoo.search.dispatch.searchcluster.Node; -import com.yahoo.search.dispatch.searchcluster.SearchCluster; -import com.yahoo.vespa.config.search.DispatchConfig; - -/** - * @author ollivir - */ -public class MockSearchCluster extends SearchCluster { - - public MockSearchCluster(String clusterId, int groups, int nodesPerGroup) { - super(clusterId, SearchGroupsImpl.buildGroupListForTest(groups, nodesPerGroup, 88.0), null, null); - } - - @Override - public int groupsWithSufficientCoverage() { - return groupList().size(); - } - - @Override - public void working(Node node) { - node.setWorking(true); - } - - @Override - public void failed(Node node) { - node.setWorking(false); - } - - public static DispatchConfig createDispatchConfig() { - return createDispatchConfig(100.0); - } - - public static DispatchConfig createDispatchConfig(double minSearchCoverage) { - return createDispatchConfigBuilder(minSearchCoverage).build(); - } - - public static DispatchConfig.Builder createDispatchConfigBuilder(double minSearchCoverage) { - DispatchConfig.Builder builder = new DispatchConfig.Builder(); - builder.minActivedocsPercentage(88.0); - builder.minSearchCoverage(minSearchCoverage); - builder.distributionPolicy(DispatchConfig.DistributionPolicy.Enum.ROUNDROBIN); - if (minSearchCoverage < 100.0) { - builder.minWaitAfterCoverageFactor(0); - builder.maxWaitAfterCoverageFactor(0.5); - } - return builder; - } - -} diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/SearchPathTest.java b/container-search/src/test/java/com/yahoo/search/dispatch/SearchPathTest.java index f0083e13eac..f93c5f66e35 100644 --- a/container-search/src/test/java/com/yahoo/search/dispatch/SearchPathTest.java +++ b/container-search/src/test/java/com/yahoo/search/dispatch/SearchPathTest.java @@ -2,8 +2,8 @@ package com.yahoo.search.dispatch; import com.yahoo.search.dispatch.SearchPath.InvalidSearchPathException; +import com.yahoo.search.dispatch.searchcluster.MockSearchCluster; import com.yahoo.search.dispatch.searchcluster.SearchGroups; -import com.yahoo.search.dispatch.searchcluster.SearchGroupsImpl; import com.yahoo.search.dispatch.searchcluster.Node; import org.junit.jupiter.api.Test; @@ -92,7 +92,7 @@ public class SearchPathTest { @Test void searchPathMustFilterNodesBasedOnDefinition() { - SearchGroups cluster = SearchGroupsImpl.buildGroupListForTest(3, 3, 100); + SearchGroups cluster = MockSearchCluster.buildGroupListForTest(3, 3, 100); assertEquals(distKeysAsString(SearchPath.selectNodes("1/1", cluster)), "4"); assertEquals(distKeysAsString(SearchPath.selectNodes("/1", cluster)), "3,4,5"); diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/MockSearchCluster.java b/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/MockSearchCluster.java new file mode 100644 index 00000000000..cbf6273d3ae --- /dev/null +++ b/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/MockSearchCluster.java @@ -0,0 +1,75 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.search.dispatch.searchcluster; + +import com.yahoo.vespa.config.search.DispatchConfig; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author ollivir + */ +public class MockSearchCluster extends SearchCluster { + + public MockSearchCluster(String clusterId, int groups, int nodesPerGroup) { + super(clusterId, buildGroupListForTest(groups, nodesPerGroup, 88.0), null, null); + } + + @Override + public int groupsWithSufficientCoverage() { + return groupList().size(); + } + + @Override + public void working(Node node) { + node.setWorking(true); + } + + @Override + public void failed(Node node) { + node.setWorking(false); + } + + public static DispatchConfig createDispatchConfig() { + return createDispatchConfig(100.0); + } + + public static DispatchConfig createDispatchConfig(double minSearchCoverage) { + return createDispatchConfigBuilder(minSearchCoverage).build(); + } + + public static DispatchConfig.Builder createDispatchConfigBuilder(double minSearchCoverage) { + DispatchConfig.Builder builder = new DispatchConfig.Builder(); + builder.minActivedocsPercentage(88.0); + builder.minSearchCoverage(minSearchCoverage); + builder.distributionPolicy(DispatchConfig.DistributionPolicy.Enum.ROUNDROBIN); + if (minSearchCoverage < 100.0) { + builder.minWaitAfterCoverageFactor(0); + builder.maxWaitAfterCoverageFactor(0.5); + } + return builder; + } + + public static SearchGroupsImpl buildGroupListForTest(int numGroups, int nodesPerGroup, double minActivedocsPercentage) { + return new SearchGroupsImpl(buildGroupMapForTest(numGroups, nodesPerGroup), minActivedocsPercentage); + } + private static Map buildGroupMapForTest(int numGroups, int nodesPerGroup) { + Map groups = new HashMap<>(); + int distributionKey = 0; + for (int group = 0; group < numGroups; group++) { + List groupNodes = new ArrayList<>(); + for (int i = 0; i < nodesPerGroup; i++) { + Node node = new Node(distributionKey, "host" + distributionKey, group); + node.setWorking(true); + groupNodes.add(node); + distributionKey++; + } + Group g = new Group(group, groupNodes); + groups.put(group, g); + } + return Map.copyOf(groups); + } + +} diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTester.java b/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTester.java index f5a9256648d..31f250072fe 100644 --- a/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTester.java +++ b/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTester.java @@ -1,8 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.dispatch.searchcluster; -import com.yahoo.search.dispatch.MockSearchCluster; - public class SearchClusterTester { private final SearchCluster cluster; -- cgit v1.2.3