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);
}
}