RFR: 8291226: Create Test Cases to cover scenarios for JDK-8278067 [v10]
Daniel Fuchs
dfuchs at openjdk.org
Tue Aug 23 13:40:50 UTC 2022
On Tue, 23 Aug 2022 05:31:31 GMT, Ramesh Bhagavatam Gangadhar <rgangadhar at openjdk.org> 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.
>
> Ramesh Bhagavatam Gangadhar has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 10 additional commits since the last revision:
>
> - Merge branch 'openjdk:master' into 8291226
> - Merge branch 'openjdk:master' into 8291226
> - aligned imports and removed whitespaces
> - Removed additional whitespaces
> - Renamed method names
>
> renamed method createServer name to executeServer
> - Update KeepAliveTest.java
>
> Removed White Spaces
> - Update KeepAliveTest.java
>
> Renamed Methods like startScenario, runClient, startServer, connectToServerURL
> added final to constants
> Changed clientScenarios array
> Changed serverScenarios array
> added IllegalArgumentException
> Replaced TIMEOUT with CountDownLatch
> Added Comments
> - Update and rename KeepAliveTest to KeepAliveTest.java
>
> 1. Increased space from 2 to 4.
> 2. skipped test scenarios from 113 to 128 && 145 to 160
> - Merge branch 'openjdk:master' into 8291226
> - Create KeepAliveTest
test/jdk/sun/net/www/http/HttpClient/KeepAliveTest.java line 337:
> 335: private String getServerScenario(int scenarioNumber) {
> 336: if(scenarioNumber >= 0 && scenarioNumber <= 15) {
> 337: return A;
might be good to have a comment before each return statement that shortly describe what the returned scenario is about.
test/jdk/sun/net/www/http/HttpClient/KeepAliveTest.java line 547:
> 545: private void fetchInfo(int scenarioNumber, sun.net.www.protocol.http.HttpURLConnection httpUrlConnection)
> 546: throws Exception {
> 547: Field field = Class.forName("sun.net.www.protocol.http.HttpURLConnection").getDeclaredField("http");
Strange tabs here: eight spaces should be enough for a method body.
-------------
PR: https://git.openjdk.org/jdk/pull/9958
More information about the net-dev
mailing list