On Tue, 23 Aug 2022 05:31:31 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. > > 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
