diff options
author | Morten Tokle <morten.tokle@gmail.com> | 2021-01-22 09:02:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-22 09:02:47 +0100 |
commit | d541d865632d59a6bff5c56d4d0a4eca351a5de7 (patch) | |
tree | bd0591551f6d95a494d9be5350cd418737b8d976 /container-core/src/test/java/com/yahoo/container/jdisc | |
parent | 30e6d1f66187bd2d1c8cb50906da81fc841bc244 (diff) |
Revert "Access log optimizations [run-systemtest]"
Diffstat (limited to 'container-core/src/test/java/com/yahoo/container/jdisc')
-rw-r--r-- | container-core/src/test/java/com/yahoo/container/jdisc/LoggingRequestHandlerTestCase.java | 82 |
1 files changed, 61 insertions, 21 deletions
diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/LoggingRequestHandlerTestCase.java b/container-core/src/test/java/com/yahoo/container/jdisc/LoggingRequestHandlerTestCase.java index 734b3fa11af..92fe347f7d1 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/LoggingRequestHandlerTestCase.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/LoggingRequestHandlerTestCase.java @@ -1,43 +1,51 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.jdisc; -import com.google.inject.Key; -import com.yahoo.component.provider.ComponentRegistry; -import com.yahoo.container.handler.Coverage; -import com.yahoo.container.handler.Timing; -import com.yahoo.container.logging.AccessLog; -import com.yahoo.container.logging.HitCounts; -import com.yahoo.container.logging.RequestLogHandler; -import com.yahoo.jdisc.Container; -import com.yahoo.jdisc.References; -import com.yahoo.jdisc.ResourceReference; -import com.yahoo.jdisc.handler.CompletionHandler; -import com.yahoo.jdisc.handler.ContentChannel; -import com.yahoo.jdisc.handler.RequestHandler; -import com.yahoo.jdisc.handler.ResponseHandler; -import com.yahoo.jdisc.service.CurrentContainer; -import org.junit.After; -import org.junit.Before; +import static org.junit.Assert.*; import java.io.IOException; import java.io.OutputStream; import java.net.InetSocketAddress; -import java.net.URI; import java.net.URISyntaxException; import java.nio.ByteBuffer; +import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +import com.google.inject.Key; +import com.yahoo.container.logging.HitCounts; +import com.yahoo.jdisc.Container; +import com.yahoo.jdisc.References; +import com.yahoo.jdisc.ResourceReference; +import com.yahoo.jdisc.handler.RequestHandler; +import com.yahoo.jdisc.service.CurrentContainer; +import java.net.URI; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; -import static org.junit.Assert.fail; +import com.yahoo.component.ComponentId; +import com.yahoo.component.provider.ComponentRegistry; +import com.yahoo.container.handler.Coverage; +import com.yahoo.container.handler.Timing; +import com.yahoo.container.logging.AccessLog; +import com.yahoo.container.logging.AccessLogEntry; +import com.yahoo.container.logging.AccessLogInterface; +import com.yahoo.jdisc.handler.BufferedContentChannel; +import com.yahoo.jdisc.handler.CompletionHandler; +import com.yahoo.jdisc.handler.ContentChannel; +import com.yahoo.jdisc.handler.ResponseHandler; /** * Test contracts in LoggingRequestHandler. * - * @author Steinar Knutsen + * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a> */ public class LoggingRequestHandlerTestCase { + StartTimePusher accessLogging; AccessLogTestHandler handler; ExecutorService executor; @@ -113,9 +121,21 @@ public class LoggingRequestHandlerTestCase { } + static final class StartTimePusher implements AccessLogInterface { + + public final ArrayBlockingQueue<Long> starts = new ArrayBlockingQueue<>(1); + + @Override + public void log(final AccessLogEntry accessLogEntry) { + starts.offer(Long.valueOf(accessLogEntry.getTimeStampMillis())); + } + } + @Before public void setUp() throws Exception { - ComponentRegistry<RequestLogHandler> implementers = new ComponentRegistry<>(); + accessLogging = new StartTimePusher(); + ComponentRegistry<AccessLogInterface> implementers = new ComponentRegistry<>(); + implementers.register(new ComponentId("nalle"), accessLogging); implementers.freeze(); executor = Executors.newCachedThreadPool(); handler = new AccessLogTestHandler(executor, new AccessLog(implementers)); @@ -123,11 +143,31 @@ public class LoggingRequestHandlerTestCase { @After public void tearDown() throws Exception { + accessLogging = null; handler = null; executor.shutdown(); executor = null; } + @Test + public final void checkStartIsNotZeroWithoutTimingInstance() throws InterruptedException { + Long startTime; + + MockResponseHandler responseHandler = new MockResponseHandler(); + com.yahoo.jdisc.http.HttpRequest request = createRequest(); + BufferedContentChannel requestContent = new BufferedContentChannel(); + requestContent.close(null); + handler.handleRequest(request, requestContent, responseHandler); + startTime = accessLogging.starts.poll(5, TimeUnit.MINUTES); + if (startTime == null) { + // test timed out, ignoring + } else { + assertFalse( + "Start time was 0, that should never happen after the first millisecond of 1970.", + startTime.longValue() == 0L); + } + } + public static com.yahoo.jdisc.http.HttpRequest createRequest() { return createRequest("http://localhost/search/?query=geewhiz"); } |