summaryrefslogtreecommitdiffstats
path: root/application/src/test/java/com/yahoo
diff options
context:
space:
mode:
Diffstat (limited to 'application/src/test/java/com/yahoo')
-rw-r--r--application/src/test/java/com/yahoo/application/container/ContainerDocprocTest.java (renamed from application/src/test/java/com/yahoo/application/container/JDiscContainerDocprocTest.java)2
-rw-r--r--application/src/test/java/com/yahoo/application/container/ContainerModelEvaluationTest.java73
-rw-r--r--application/src/test/java/com/yahoo/application/container/ContainerProcessingTest.java (renamed from application/src/test/java/com/yahoo/application/container/JDiscContainerProcessingTest.java)2
-rw-r--r--application/src/test/java/com/yahoo/application/container/ContainerRequestTest.java (renamed from application/src/test/java/com/yahoo/application/container/JDiscContainerRequestTest.java)12
-rw-r--r--application/src/test/java/com/yahoo/application/container/ContainerSearchTest.java (renamed from application/src/test/java/com/yahoo/application/container/JDiscContainerSearchTest.java)8
-rw-r--r--application/src/test/java/com/yahoo/application/container/ContainerTest.java (renamed from application/src/test/java/com/yahoo/application/container/JDiscTest.java)14
-rw-r--r--application/src/test/java/com/yahoo/application/container/jersey/JerseyTest.java5
7 files changed, 96 insertions, 20 deletions
diff --git a/application/src/test/java/com/yahoo/application/container/JDiscContainerDocprocTest.java b/application/src/test/java/com/yahoo/application/container/ContainerDocprocTest.java
index 2a363916fa3..fddd41e7cc2 100644
--- a/application/src/test/java/com/yahoo/application/container/JDiscContainerDocprocTest.java
+++ b/application/src/test/java/com/yahoo/application/container/ContainerDocprocTest.java
@@ -25,7 +25,7 @@ import static org.junit.Assert.assertTrue;
/**
* @author Einar M R Rosenvinge
*/
-public class JDiscContainerDocprocTest {
+public class ContainerDocprocTest {
private static final String DOCUMENT = "document music {\n"
+ " field title type string { }\n"
diff --git a/application/src/test/java/com/yahoo/application/container/ContainerModelEvaluationTest.java b/application/src/test/java/com/yahoo/application/container/ContainerModelEvaluationTest.java
new file mode 100644
index 00000000000..75c18f29b29
--- /dev/null
+++ b/application/src/test/java/com/yahoo/application/container/ContainerModelEvaluationTest.java
@@ -0,0 +1,73 @@
+// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.application.container;
+
+import com.sun.xml.bind.api.impl.NameConverter;
+import com.yahoo.application.Application;
+import com.yahoo.application.Networking;
+import com.yahoo.application.container.handler.Request;
+import com.yahoo.application.container.handler.Response;
+import com.yahoo.container.jdisc.HttpRequest;
+import com.yahoo.container.jdisc.HttpResponse;
+import com.yahoo.tensor.Tensor;
+import com.yahoo.tensor.TensorType;
+import org.junit.Test;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.nio.charset.CharacterCodingException;
+import java.nio.charset.StandardCharsets;
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Verify that we can create a JDisc (and hence Application) instance capable of doing model evaluation
+ *
+ * @author bratseth
+ */
+public class ContainerModelEvaluationTest {
+
+ @Test
+ public void testCreateJDiscInstanceWithModelEvaluation() {
+ try (Application application =
+ Application.fromApplicationPackage(new File("src/test/app-packages/model-evaluation"),
+ Networking.disable)) {
+ {
+ String expected = "{\"xgboost_xgboost_2_2\":\"http://localhost/model-evaluation/v1/xgboost_xgboost_2_2\",\"onnx_mnist_softmax\":\"http://localhost/model-evaluation/v1/onnx_mnist_softmax\",\"tensorflow_mnist_softmax_saved\":\"http://localhost/model-evaluation/v1/tensorflow_mnist_softmax_saved\",\"tensorflow_mnist_saved\":\"http://localhost/model-evaluation/v1/tensorflow_mnist_saved\",\"vespa_example\":\"http://localhost/model-evaluation/v1/vespa_example\"}";
+ assertResponse("http://localhost/model-evaluation/v1", expected, application);
+ }
+
+ {
+ String expected = "{\"cells\":[{\"address\":{},\"value\":-8.17695}]}";
+ assertResponse("http://localhost/model-evaluation/v1/xgboost_xgboost_2_2/eval", expected, application);
+ }
+
+ {
+ // Note: The specific response value here has not been verified
+ String expected = "{\"cells\":[{\"address\":{\"d0\":\"0\",\"d1\":\"0\"},\"value\":-0.5066885003407351},{\"address\":{\"d0\":\"0\",\"d1\":\"1\"},\"value\":0.3912837743150205},{\"address\":{\"d0\":\"0\",\"d1\":\"2\"},\"value\":-0.12401806321703948},{\"address\":{\"d0\":\"0\",\"d1\":\"3\"},\"value\":-0.7019029168606575},{\"address\":{\"d0\":\"0\",\"d1\":\"4\"},\"value\":0.13120114146441697},{\"address\":{\"d0\":\"0\",\"d1\":\"5\"},\"value\":0.6611923203384626},{\"address\":{\"d0\":\"0\",\"d1\":\"6\"},\"value\":-0.22365810810026446},{\"address\":{\"d0\":\"0\",\"d1\":\"7\"},\"value\":-0.0740018307465809},{\"address\":{\"d0\":\"0\",\"d1\":\"8\"},\"value\":0.056492490256153896},{\"address\":{\"d0\":\"0\",\"d1\":\"9\"},\"value\":-0.18422015072393733}]}";
+ assertResponse("http://localhost/model-evaluation/v1/tensorflow_mnist_saved/serving_default.y/eval?input=" + inputTensor(), expected, application);
+ }
+ }
+ }
+
+ private void assertResponse(String url, String expectedResponse, Application application) {
+ try {
+ Response response = application.getJDisc("default").handleRequest(new Request(url));
+ assertEquals(expectedResponse, response.getBodyAsString());
+ assertEquals(200, response.getStatus());
+ }
+ catch (CharacterCodingException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ private String inputTensor() {
+ Tensor.Builder b = Tensor.Builder.of(TensorType.fromSpec("tensor(d0[],d1[784])"));
+ for (int i = 0; i < 784; i++)
+ b.cell(0.0, 0, i);
+ return URLEncoder.encode(b.build().toString(), StandardCharsets.UTF_8);
+ }
+
+}
diff --git a/application/src/test/java/com/yahoo/application/container/JDiscContainerProcessingTest.java b/application/src/test/java/com/yahoo/application/container/ContainerProcessingTest.java
index 443b938693f..36657caeb40 100644
--- a/application/src/test/java/com/yahoo/application/container/JDiscContainerProcessingTest.java
+++ b/application/src/test/java/com/yahoo/application/container/ContainerProcessingTest.java
@@ -18,7 +18,7 @@ import static org.junit.Assert.assertThat;
/**
* @author Einar M R Rosenvinge
*/
-public class JDiscContainerProcessingTest {
+public class ContainerProcessingTest {
private static String getXML(String chainName, String... processorIds) {
String xml =
diff --git a/application/src/test/java/com/yahoo/application/container/JDiscContainerRequestTest.java b/application/src/test/java/com/yahoo/application/container/ContainerRequestTest.java
index 9f5555069cd..8f3e7693bc5 100644
--- a/application/src/test/java/com/yahoo/application/container/JDiscContainerRequestTest.java
+++ b/application/src/test/java/com/yahoo/application/container/ContainerRequestTest.java
@@ -22,7 +22,7 @@ import static org.junit.Assert.assertThat;
/**
* @author Einar M R Rosenvinge
*/
-public class JDiscContainerRequestTest {
+public class ContainerRequestTest {
private static String getXML(String className, String binding) {
return "<container version=\"1.0\">\n" +
@@ -37,7 +37,7 @@ public class JDiscContainerRequestTest {
}
@Test
- public void requireThatRequestBodyWorks() throws InterruptedException, CharacterCodingException {
+ public void requireThatRequestBodyWorks() throws CharacterCodingException {
String DATA = "we have no bananas today";
Request req = new Request("http://banana/echo", DATA.getBytes(Utf8.getCharset()));
@@ -50,7 +50,7 @@ public class JDiscContainerRequestTest {
}
@Test
- public void requireThatCustomRequestHeadersWork() throws InterruptedException {
+ public void requireThatCustomRequestHeadersWork() {
Request req = new Request("http://banana/echo");
req.getHeaders().add("X-Foo", "Bar");
@@ -63,7 +63,7 @@ public class JDiscContainerRequestTest {
}
@Test(expected = WriteException.class)
- public void requireThatRequestHandlerThatThrowsInWriteWorks() throws InterruptedException {
+ public void requireThatRequestHandlerThatThrowsInWriteWorks() {
String DATA = "we have no bananas today";
Request req = new Request("http://banana/throwwrite", DATA.getBytes(Utf8.getCharset()));
@@ -73,9 +73,8 @@ public class JDiscContainerRequestTest {
}
}
-
@Test(expected = DelayedWriteException.class)
- public void requireThatRequestHandlerThatThrowsDelayedInWriteWorks() throws InterruptedException {
+ public void requireThatRequestHandlerThatThrowsDelayedInWriteWorks() {
String DATA = "we have no bananas today";
Request req = new Request("http://banana/delayedthrowwrite", DATA.getBytes(Utf8.getCharset()));
@@ -83,6 +82,7 @@ public class JDiscContainerRequestTest {
Response response = container.handleRequest(req);
req.toString();
}
+
}
}
diff --git a/application/src/test/java/com/yahoo/application/container/JDiscContainerSearchTest.java b/application/src/test/java/com/yahoo/application/container/ContainerSearchTest.java
index b7445d13a17..d133b71b8da 100644
--- a/application/src/test/java/com/yahoo/application/container/JDiscContainerSearchTest.java
+++ b/application/src/test/java/com/yahoo/application/container/ContainerSearchTest.java
@@ -16,7 +16,8 @@ import static org.junit.Assert.assertThat;
* @author gjoranv
* @author ollivir
*/
-public class JDiscContainerSearchTest {
+public class ContainerSearchTest {
+
@Test
public void processing_and_rendering_works() throws Exception {
final String searcherId = AddHitSearcher.class.getName();
@@ -30,7 +31,7 @@ public class JDiscContainerSearchTest {
}
@Test
- public void searching_works() throws Exception {
+ public void searching_works() {
final String searcherId = AddHitSearcher.class.getName();
try (JDisc container = containerWithSearch(searcherId)) {
@@ -52,9 +53,10 @@ public class JDiscContainerSearchTest {
}
@Test(expected = UnsupportedOperationException.class)
- public void retrieving_search_from_container_without_search_is_illegal() throws Exception {
+ public void retrieving_search_from_container_without_search_is_illegal() {
try (JDisc container = JDisc.fromServicesXml("<container version=\"1.0\" />", Networking.disable)) {
container.search(); // throws
}
+
}
}
diff --git a/application/src/test/java/com/yahoo/application/container/JDiscTest.java b/application/src/test/java/com/yahoo/application/container/ContainerTest.java
index 86a96d04848..e44916d2ec4 100644
--- a/application/src/test/java/com/yahoo/application/container/JDiscTest.java
+++ b/application/src/test/java/com/yahoo/application/container/ContainerTest.java
@@ -32,9 +32,10 @@ import static org.junit.Assert.fail;
* @author gjoranv
* @author ollivir
*/
-public class JDiscTest {
+public class ContainerTest {
+
@Test
- public void jdisc_can_be_used_as_top_level_element() throws Exception {
+ public void jdisc_can_be_used_as_top_level_element() {
try (JDisc container = fromServicesXml("<jdisc version=\"1.0\">" + //
"<search />" + //
"</jdisc>", Networking.disable)) {
@@ -43,7 +44,7 @@ public class JDiscTest {
}
@Test
- public void jdisc_id_can_be_set() throws Exception {
+ public void jdisc_id_can_be_set() {
try (JDisc container = fromServicesXml("<jdisc version=\"1.0\" id=\"my-service-id\">" + //
"<search />" + //
"</jdisc>", Networking.disable)) {
@@ -52,7 +53,7 @@ public class JDiscTest {
}
@Test
- public void jdisc_can_be_embedded_in_services_tag() throws Exception {
+ public void jdisc_can_be_embedded_in_services_tag() {
try (JDisc container = fromServicesXml("<services>" + //
"<jdisc version=\"1.0\" id=\"my-service-id\">" + //
"<search />" + //
@@ -77,7 +78,7 @@ public class JDiscTest {
}
@Test
- public void handleRequest_yields_response_from_correct_request_handler() throws Exception {
+ public void handleRequest_yields_response_from_correct_request_handler() {
final String handlerClass = TestHandler.class.getName();
try (JDisc container = fromServicesXml("<container version=\"1.0\">" + //
"<handler id=\"test-handler\" class=\"" + handlerClass + "\">" + //
@@ -94,7 +95,7 @@ public class JDiscTest {
}
@Test
- public void load_searcher_from_bundle() throws Exception {
+ public void load_searcher_from_bundle() {
try (JDisc container = JDisc.fromPath(FileSystems.getDefault().getPath("src/test/app-packages/searcher-app"),
Networking.disable)) {
Result result = container.search().process(ComponentSpecification.fromString("default"),
@@ -175,4 +176,5 @@ public class JDiscTest {
}
throw new RuntimeException("No http server found");
}
+
}
diff --git a/application/src/test/java/com/yahoo/application/container/jersey/JerseyTest.java b/application/src/test/java/com/yahoo/application/container/jersey/JerseyTest.java
index 9c3cd1e612c..89c23fe0001 100644
--- a/application/src/test/java/com/yahoo/application/container/jersey/JerseyTest.java
+++ b/application/src/test/java/com/yahoo/application/container/jersey/JerseyTest.java
@@ -3,11 +3,10 @@ package com.yahoo.application.container.jersey;
import com.yahoo.application.Networking;
import com.yahoo.application.container.JDisc;
-import com.yahoo.application.container.JDiscTest;
+import com.yahoo.application.container.ContainerTest;
import com.yahoo.application.container.jersey.resources.TestResource;
import com.yahoo.application.container.jersey.resources.nestedpackage1.NestedTestResource1;
import com.yahoo.application.container.jersey.resources.nestedpackage2.NestedTestResource2;
-import com.yahoo.container.Container;
import com.yahoo.container.test.jars.jersey.resources.TestResourceBase;
import com.yahoo.osgi.maven.ProjectBundleClassPaths;
import com.yahoo.osgi.maven.ProjectBundleClassPaths.BundleClasspathMapping;
@@ -144,7 +143,7 @@ public class JerseyTest {
"</jdisc>" + //
"</services>", //
Networking.enable)) {
- final int port = JDiscTest.getListenPort();
+ final int port = ContainerTest.getListenPort();
f.accept(path -> {
String p = path.startsWith("/") ? path.substring(1) : path;
CloseableHttpClient client = HttpClientBuilder.create().build();