summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-11-24 17:00:09 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-11-24 17:00:15 +0100
commit3b7430189908947b569d9d2dcc2a4dea85e1254c (patch)
tree25f4398a5721385a59b72ae9b0f12648a2b09b85
parent67ea18c1dca8e096f5a3c00f075c6835fc80624f (diff)
Improve error message when assertion fails and poll longer
-rw-r--r--container-search/src/test/java/com/yahoo/search/handler/SearchHandlerTest.java17
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/test/MockMetric.java7
2 files changed, 15 insertions, 9 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/handler/SearchHandlerTest.java b/container-search/src/test/java/com/yahoo/search/handler/SearchHandlerTest.java
index 2c76383bff4..a6ae5f2b1b9 100644
--- a/container-search/src/test/java/com/yahoo/search/handler/SearchHandlerTest.java
+++ b/container-search/src/test/java/com/yahoo/search/handler/SearchHandlerTest.java
@@ -36,6 +36,7 @@ import java.io.IOException;
import java.net.URI;
import java.util.concurrent.Executors;
+import static com.yahoo.yolean.Exceptions.uncheckInterrupted;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertEquals;
@@ -45,6 +46,7 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
/**
* @author bratseth
@@ -304,22 +306,19 @@ public class SearchHandlerTest {
assertOkResult(driver.sendRequest(request), jsonResult);
}
- private boolean waitForMetric(String key) {
- try {
- for (int i = 0; i < 10; i++) {
- if (metric.metrics().containsKey(key)) return true;
- Thread.sleep(20);
- }
- } catch (InterruptedException e) {
+ private void assertMetricPresent(String key) {
+ for (int i = 0; i < 200; i++) {
+ if (metric.metrics().containsKey(key)) return;
+ uncheckInterrupted(() -> Thread.sleep(1));
}
- return false;
+ fail(String.format("Could not find metric with key '%s' in '%s'", key, metric));
}
private void assertOkResult(RequestHandlerTestDriver.MockResponseHandler response, String expected) {
assertEquals(expected, response.readAll());
assertEquals(200, response.getStatus());
assertEquals(selfHostname, response.getResponse().headers().get(myHostnameHeader).get(0));
- assertTrue(waitForMetric(SearchHandler.RENDER_LATENCY_METRIC));
+ assertMetricPresent(SearchHandler.RENDER_LATENCY_METRIC);
}
@Test
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/test/MockMetric.java b/jdisc_core/src/main/java/com/yahoo/jdisc/test/MockMetric.java
index cb89320e580..bca6e7082c9 100644
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/test/MockMetric.java
+++ b/jdisc_core/src/main/java/com/yahoo/jdisc/test/MockMetric.java
@@ -35,6 +35,13 @@ public class MockMetric implements Metric {
public Map<String, Map<Map<String, ?>, Double>> metrics() { return metrics; }
+ @Override
+ public String toString() {
+ return "MockMetric{" +
+ "metrics=" + metrics +
+ '}';
+ }
+
private static class MapContext implements Context {
private static final MapContext empty = new MapContext(Map.of());