diff options
author | Tor Brede Vekterli <vekterli@yahooinc.com> | 2023-03-06 15:49:26 +0100 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@yahooinc.com> | 2023-03-06 15:49:26 +0100 |
commit | abda412519998eda79ed1bfc96d7a16d877a4f7d (patch) | |
tree | 717d4be6011f7cfae6aa2969ae81cf6371eaf4a2 /vespaclient-java/src/test/java/com/yahoo/vespavisit | |
parent | 67297636d08580a07210b647dc3d65b8f6690f95 (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.java | 23 |
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); + } + } |