On Mon, 22 Aug 2022 08:26:19 GMT, Ramesh Bhagavatam Gangadhar 
<[email protected]> wrote:

> There are total 160 scenarios written with combination of client properties 
> (Client Scenarios) and Server Response (Server Scenarios).
> 
> In tabular format, Client and Server scenarios along with expected output are 
> documented 
> here:[Permalink](https://bugs.openjdk.org/browse/JDK-8291226?focusedCommentId=14519074&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14519074)
> 
> This Program Should be run mandatorily in othervm mode itself since it has 
> system property changes so can't be clubbed with other scenarios. so each 
> scenario should be run in individual JVM.
> 
> For each and every scenario, ServerSocket is created and waits for clients to 
> connect to it.
> isProxySet and serverReady are shared variables between server thread and 
> client thread(main) and it should be set and reset to false for each and 
> every scenario.
> 
> isProxySet and serverReady variables should be set by server thread before 
> proceeding to client thread(main).
> 
> if isProxySet variable is set to true then client set the proxy value to 
> url.openConnection(Proxy)
> <SNIPPET>
> if (isProxySet) { 
>          httpUrlConnection = (sun.net.www.protocol.http.HttpURLConnection) 
> url .openConnection(new Proxy(Type.HTTP, new InetSocketAddress("localhost", 
> SERVER_PORT))); } 
> else { 
>         httpUrlConnection = (sun.net.www.protocol.http.HttpURLConnection) 
> url.openConnection(); 
> }
> </SNIPPET>
> 
> Program tries to fetch the Value of <Key, Value> Pairs of HashMap 
> KeepAliveCache where Key is KeepAliveKey and Value is ClientVector 
> KeepAliveTimeout is stored in Value ClientVector of HashMap KeepAliveCache.
> 
> if connection is cached then KeepAliveTimeout is stored in ClientVector. 
> KeepAliveTimeout stored in Value(ClientVector) of HashMap KeepAliveCache is 
> compared with Expected Value.
> 
> if connection is not cached then connection is terminated immediately.

Hi Ramesh, thanks for taking this one on. Would it be possible to first improve 
formatting a bit more, to make this easier to review? For instance - 
indentation in java code overall the whole oprnjdk code base is 4 spaces, not 
2. Also it might be more concise to use List & loops to construct the various 
arrays, rather than copy/pasting the same line over and over (more specifically 
 things line the `serverScenarios` and `clientScenarios` arrays look like they 
could be initialized with one or two imbricated loops). This might also give 
you the opportunity to add a bit more comments to explain what each loop/line 
represents.

I also wonder about representing things as strings that get parsed and split 
later on. Wouldn't using structure records make it easier to understand?

-------------

PR: https://git.openjdk.org/jdk/pull/9958

Reply via email to