package http_parser.lolevel;
import java.nio.*;
import static http_parser.lolevel.Util.*;
public class TestHeaderOverflowError {
public static void test (http_parser.ParserType type) { HTTPParser parser = new HTTPParser(type); ByteBuffer buf = getBytes(type); int numbytes = buf.limit(); parser.execute(Util.SETTINGS_NULL, buf); check(numbytes == buf.position()); buf = buffer("header-key: header-value\r\n"); numbytes = buf.limit(); for (int i = 0; i!= 1000; ++i) { parser.execute(Util.SETTINGS_NULL, buf); check(numbytes == buf.position()); buf.rewind(); } } static ByteBuffer getBytes (http_parser.ParserType type) { if (http_parser.ParserType.HTTP_BOTH == type) { throw new RuntimeException("only HTTP_REQUEST and HTTP_RESPONSE"); } if (http_parser.ParserType.HTTP_REQUEST == type) { return buffer("GET / HTTP/1.1\r\n"); } return buffer("HTTP/1.0 200 OK\r\n"); } public static void test () { p(TestHeaderOverflowError.class); test(http_parser.ParserType.HTTP_REQUEST); test(http_parser.ParserType.HTTP_RESPONSE); }
}