blob: 9f8919f0f1bdd2bf22d28e80c93e93cfd7b2e80f [file] [log] [blame]
/*
* Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
package test;
import java.io.IOException;
import java.io.StringWriter;
import java.io.PrintWriter;
import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.HttpURLConnection;
import java.util.Enumeration;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public class ServletTest2 extends HttpServlet {
public final static int tests[][] = {
{2, 25},
{50, 50},
{25, 121},
{50, 139},
{100, 94},
{2, 4097},
{50, 5000},
{25, 12100},
{50, 1390},
{100, 100}
};
public void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws IOException, ServletException {
boolean passed = true;
int port = req.getLocalPort();
URL url = new URL("http://localhost:" + port + "/web-readLineIOException/ServletTest");
resp.setContentType("text/html");
PrintWriter writer = resp.getWriter();
for (int i=0; i < tests.length; i++) {
int numLines = tests[i][0];
int lineSize = tests[i][1];
writer.print(testRequest(url, numLines, lineSize) == 0 ? "readLine::PASSED\n"
: "readline::FAILED\n");
}
writer.flush();
writer.close();
}
private int testRequest(URL url, int numLines, int lineSize) throws IOException {
StringWriter sw = new StringWriter();
BufferedWriter bw = new BufferedWriter(sw);
for (int i=0; i< numLines; i++) {
for (int j=0; j<lineSize; j++) {
bw.write('x');
}
bw.newLine();
}
bw.flush();
bw.close();
String send = sw.toString();
String response = null;
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("content-length", String.valueOf(send.length()));
conn.setRequestProperty("content-type", "text/plain");
conn.setRequestProperty("Pragma", "no-cache");
bw = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream()));
bw.write(send);
bw.flush();
bw.close();
try {
InputStream is = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String result = reader.readLine();
is.close();
return 0;
}
catch (IOException e) {
e.printStackTrace();
return -1;
}
}
}