aboutsummaryrefslogtreecommitdiffstats
path: root/vespaclient-java/src/test/java/com/yahoo/vespavisit
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahooinc.com>2023-03-06 15:49:26 +0100
committerTor Brede Vekterli <vekterli@yahooinc.com>2023-03-06 15:49:26 +0100
commitabda412519998eda79ed1bfc96d7a16d877a4f7d (patch)
tree717d4be6011f7cfae6aa2969ae81cf6371eaf4a2 /vespaclient-java/src/test/java/com/yahoo/vespavisit
parent67297636d08580a07210b647dc3d65b8f6690f95 (diff)
Add a "null-rendering" option to `vespa-visit`
This makes it easy to benchmark whether document rendering is a bottleneck when visiting. For instance, large floating point tensor fields are notoriously expensive to render as JSON. This is more accurate than just redirecting the visit output to `/dev/null` as that still requires documents to be rendered before being evicted into the void.
Diffstat (limited to 'vespaclient-java/src/test/java/com/yahoo/vespavisit')
-rw-r--r--vespaclient-java/src/test/java/com/yahoo/vespavisit/StdOutVisitorHandlerTest.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/vespaclient-java/src/test/java/com/yahoo/vespavisit/StdOutVisitorHandlerTest.java b/vespaclient-java/src/test/java/com/yahoo/vespavisit/StdOutVisitorHandlerTest.java
index aa708b1fde9..1ebbc8ac6ad 100644
--- a/vespaclient-java/src/test/java/com/yahoo/vespavisit/StdOutVisitorHandlerTest.java
+++ b/vespaclient-java/src/test/java/com/yahoo/vespavisit/StdOutVisitorHandlerTest.java
@@ -156,4 +156,27 @@ public class StdOutVisitorHandlerTest {
}
}
+ @Test
+ void nothing_is_rendered_if_null_render_option_is_specified() {
+ var docType = new DocumentType("foo");
+ docType.addField("bar", DataType.STRING);
+
+ var params = createHandlerParams(true, true, true);
+ params.nullRender = true;
+
+ var out = new ByteArrayOutputStream();
+ var visitorHandler = new StdOutVisitorHandler(params, new PrintStream(out, true));
+ var dataHandler = visitorHandler.getDataHandler();
+ var controlSession = mock(VisitorControlSession.class);
+ dataHandler.setSession(controlSession);
+
+ dataHandler.onMessage(createPutWithDocAndValue(docType, "id:baz:foo::1", "fluffy\nbunnies"), mock(AckToken.class));
+ dataHandler.onMessage(createRemoveForDoc("id:baz:foo::2"), mock(AckToken.class));
+ dataHandler.onMessage(createPutWithDocAndValue(docType, "id:baz:foo::3", "\r\ncool fox\r\n"), mock(AckToken.class));
+ dataHandler.onDone();
+
+ String output = out.toString().trim();
+ assertEquals("", output);
+ }
+
}