From 33447cfd6b15bea1a2a237763831e5d1f92ed682 Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Fri, 8 Mar 2019 13:49:51 +0100 Subject: Increase query timeout --- .../federation/test/FederationSearcherTest.java | 221 +++++++++++---------- .../search/federation/test/FederationTester.java | 13 +- 2 files changed, 119 insertions(+), 115 deletions(-) (limited to 'container-search') diff --git a/container-search/src/test/java/com/yahoo/search/federation/test/FederationSearcherTest.java b/container-search/src/test/java/com/yahoo/search/federation/test/FederationSearcherTest.java index 088a432324d..deb04e80a58 100644 --- a/container-search/src/test/java/com/yahoo/search/federation/test/FederationSearcherTest.java +++ b/container-search/src/test/java/com/yahoo/search/federation/test/FederationSearcherTest.java @@ -43,75 +43,6 @@ public class FederationSearcherTest { private static final String hasBeenFilled = "hasBeenFilled"; - private static class AddHitSearcher extends Searcher { - - protected Hit hit = createHit(); - - private Hit createHit() { - Hit hit = new Hit("dummy"); - hit.setFillable(); - return hit; - } - - @Override - public Result search(Query query, Execution execution) { - Result result = execution.search(query); - result.hits().add(hit); - return result; - } - - @Override - public void fill(Result result, String summaryClass, Execution execution) { - if (firstHit(result) != hit) { - throw new RuntimeException("Unknown hit"); - } - firstHit(result).setField(hasBeenFilled, true); - } - - } - - private static class TimeoutInFillSearcher extends Searcher { - - private Hit createHit(String id) { - Hit hit = new Hit(id); - hit.setFillable(); - return hit; - } - - @Override - public Result search(Query query, Execution execution) { - Result result = execution.search(query); - result.hits().add(createHit("timeout1")); - result.hits().add(createHit("timeout2")); - return result; - } - - @Override - public void fill(Result result, String summaryClass, Execution execution) { - throw new TimeoutException("TimeoutInFillSearcher always time out in fill"); - } - - } - - private static class ModifyQueryAndAddHitSearcher extends AddHitSearcher { - - private final String marker; - - ModifyQueryAndAddHitSearcher(String marker) { - super(); - this.marker = marker; - } - - @Override - public Result search(Query query, Execution execution) { - query.getModel().getQueryTree().setRoot(new WordItem(marker)); - Result result = execution.search(query); - result.hits().add(hit); - return result; - } - - } - @Test public void require_that_hits_are_not_automatically_filled() { Result result = federationToSingleAddHitSearcher().search(); @@ -209,6 +140,47 @@ public class FederationSearcherTest { assertNotNull(result.hits().getError()); } + @Test + public void custom_federation_target() { + ComponentId targetSelectorId = ComponentId.fromString("TargetSelector"); + ComponentRegistry targetSelectors = new ComponentRegistry<>(); + targetSelectors.register(targetSelectorId, new TestTargetSelector()); + + FederationSearcher searcher = new FederationSearcher( + new FederationConfig(new FederationConfig.Builder().targetSelector(targetSelectorId.toString())), + new StrictContractsConfig(new StrictContractsConfig.Builder()), + targetSelectors); + + Result result = new Execution(searcher, Context.createContextStub()).search(new Query()); + HitGroup myChainGroup = (HitGroup) result.hits().get(0); + assertThat(myChainGroup.getId(), is(new URI("source:myChain"))); + assertThat(myChainGroup.get(0).getId(), is(new URI("myHit"))); + } + + @Test + public void target_selectors_can_have_multiple_targets() { + ComponentId targetSelectorId = ComponentId.fromString("TestMultipleTargetSelector"); + ComponentRegistry targetSelectors = new ComponentRegistry<>(); + targetSelectors.register(targetSelectorId, new TestMultipleTargetSelector()); + + FederationSearcher searcher = new FederationSearcher( + new FederationConfig(new FederationConfig.Builder().targetSelector(targetSelectorId.toString())), + new StrictContractsConfig(new StrictContractsConfig.Builder()), + targetSelectors); + + Result result = new Execution(searcher, Context.createContextStub()).search(new Query()); + + Iterator hitsIterator = result.hits().deepIterator(); + Hit hit1 = hitsIterator.next(); + Hit hit2 = hitsIterator.next(); + + assertThat(hit1.getSource(), is("chain1")); + assertThat(hit2.getSource(), is("chain2")); + + assertThat(hit1.getField("data"), is("modifyTargetQuery:custom-data:1")); + assertThat(hit2.getField("data"), is("modifyTargetQuery:custom-data:2")); + } + private Hit getFirstHit(Hit hitGroup) { if (hitGroup instanceof HitGroup) return ((HitGroup) hitGroup).get(0); @@ -248,24 +220,76 @@ public class FederationSearcherTest { return ((HitGroup)firstHit(result)).get(0); } - @Test - public void custom_federation_target() { - ComponentId targetSelectorId = ComponentId.fromString("TargetSelector"); - ComponentRegistry targetSelectors = new ComponentRegistry<>(); - targetSelectors.register(targetSelectorId, new TestTargetSelector()); + private static class AddHitSearcher extends Searcher { - FederationSearcher searcher = new FederationSearcher( - new FederationConfig(new FederationConfig.Builder().targetSelector(targetSelectorId.toString())), - new StrictContractsConfig(new StrictContractsConfig.Builder()), - targetSelectors); + protected Hit hit = createHit(); + + private Hit createHit() { + Hit hit = new Hit("dummy"); + hit.setFillable(); + return hit; + } + + @Override + public Result search(Query query, Execution execution) { + Result result = execution.search(query); + result.hits().add(hit); + return result; + } + + @Override + public void fill(Result result, String summaryClass, Execution execution) { + if (firstHit(result) != hit) { + throw new RuntimeException("Unknown hit"); + } + firstHit(result).setField(hasBeenFilled, true); + } + + } + + private static class TimeoutInFillSearcher extends Searcher { + + private Hit createHit(String id) { + Hit hit = new Hit(id); + hit.setFillable(); + return hit; + } + + @Override + public Result search(Query query, Execution execution) { + Result result = execution.search(query); + result.hits().add(createHit("timeout1")); + result.hits().add(createHit("timeout2")); + return result; + } + + @Override + public void fill(Result result, String summaryClass, Execution execution) { + throw new TimeoutException("TimeoutInFillSearcher always time out in fill"); + } + + } + + private static class ModifyQueryAndAddHitSearcher extends AddHitSearcher { + + private final String marker; + + ModifyQueryAndAddHitSearcher(String marker) { + super(); + this.marker = marker; + } + + @Override + public Result search(Query query, Execution execution) { + query.getModel().getQueryTree().setRoot(new WordItem(marker)); + Result result = execution.search(query); + result.hits().add(hit); + return result; + } - Result result = new Execution(searcher, Context.createContextStub()).search(new Query()); - HitGroup myChainGroup = (HitGroup) result.hits().get(0); - assertThat(myChainGroup.getId(), is(new URI("source:myChain"))); - assertThat(myChainGroup.get(0).getId(), is(new URI("myHit"))); } - static class TestTargetSelector implements TargetSelector { + private static class TestTargetSelector implements TargetSelector { String keyName = getClass().getName(); @Override @@ -293,7 +317,8 @@ public class FederationSearcherTest { } } - static class TestMultipleTargetSelector implements TargetSelector { + private static class TestMultipleTargetSelector implements TargetSelector { + String keyName = getClass().getName(); @Override @@ -303,8 +328,8 @@ public class FederationSearcherTest { private FederationTarget createTarget(int number) { return new FederationTarget<>(new Chain<>("chain" + number, Collections.emptyList()), - new FederationOptions(), - "custom-data:" + number); + new FederationOptions(), + "custom-data:" + number); } @Override @@ -320,28 +345,4 @@ public class FederationSearcherTest { } } - @Test - public void target_selectors_can_have_multiple_targets() { - ComponentId targetSelectorId = ComponentId.fromString("TestMultipleTargetSelector"); - ComponentRegistry targetSelectors = new ComponentRegistry<>(); - targetSelectors.register(targetSelectorId, new TestMultipleTargetSelector()); - - FederationSearcher searcher = new FederationSearcher( - new FederationConfig(new FederationConfig.Builder().targetSelector(targetSelectorId.toString())), - new StrictContractsConfig(new StrictContractsConfig.Builder()), - targetSelectors); - - Result result = new Execution(searcher, Context.createContextStub()).search(new Query()); - - Iterator hitsIterator = result.hits().deepIterator(); - Hit hit1 = hitsIterator.next(); - Hit hit2 = hitsIterator.next(); - - assertThat(hit1.getSource(), is("chain1")); - assertThat(hit2.getSource(), is("chain2")); - - assertThat((String)hit1.getField("data"), is("modifyTargetQuery:custom-data:1")); - assertThat((String)hit2.getField("data"), is("modifyTargetQuery:custom-data:2")); - } - } diff --git a/container-search/src/test/java/com/yahoo/search/federation/test/FederationTester.java b/container-search/src/test/java/com/yahoo/search/federation/test/FederationTester.java index a863bd4f687..794fa9349f3 100644 --- a/container-search/src/test/java/com/yahoo/search/federation/test/FederationTester.java +++ b/container-search/src/test/java/com/yahoo/search/federation/test/FederationTester.java @@ -15,14 +15,14 @@ import com.yahoo.search.searchchain.model.federation.FederationOptions; import java.util.Collections; /** -* @author Tony Vaagenes -*/ + * @author Tony Vaagenes + */ class FederationTester { - SearchChainResolver.Builder builder = new SearchChainResolver.Builder(); - SearchChainRegistry registry = new SearchChainRegistry(); + private final SearchChainResolver.Builder builder = new SearchChainResolver.Builder(); + private final SearchChainRegistry registry = new SearchChainRegistry(); - Execution execution; + private Execution execution; void addSearchChain(String id, Searcher... searchers) { addSearchChain(id, federationOptions(), searchers); @@ -51,6 +51,8 @@ class FederationTester { } public Result search() { + Query query = new Query(); + query.setTimeout(60 * 1000); return search(new Query()); } @@ -73,4 +75,5 @@ class FederationTester { public void fill(Result result) { execution.fill(result, "default"); } + } -- cgit v1.2.3