You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/06/08 22:44:21 UTC
svn commit: r1684273 -
/tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_4_2.java
Author: markt
Date: Mon Jun 8 20:44:21 2015
New Revision: 1684273
URL: http://svn.apache.org/r1684273
Log:
A couple more tests
Added:
tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_4_2.java (with props)
Added: tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_4_2.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_4_2.java?rev=1684273&view=auto
==============================================================================
--- tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_4_2.java (added)
+++ tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_4_2.java Mon Jun 8 20:44:21 2015
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.coyote.http2;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Unit tests for Section 4.2 of
+ * <a href="https://tools.ietf.org/html/rfc7540">RFC 7540</a>.
+ * <br>
+ * The order of tests in this class is aligned with the order of the
+ * requirements in the RFC.
+ */
+public class TestHttp2Section_4_2 extends Http2TestBase {
+
+ // TODO Exceeds SETTINGS_MAX_FRAME_SIZE
+
+ @Test
+ public void testFrameTypeLimitsTooBig() throws Exception {
+ hpackEncoder = new HpackEncoder(ConnectionSettings.DEFAULT_HEADER_TABLE_SIZE);
+
+ // HTTP2 upgrade
+ http2Connect();
+
+ // Overly large ping
+ byte[] ping = new byte[109];
+
+ // Header
+ // Length
+ ByteUtil.setThreeBytes(ping, 0, 100);
+ // Type
+ ping[3] = FrameType.PING.getIdByte();
+ // No flags
+ // Stream 0
+ // Empty payload
+
+ os.write(ping);
+
+ // Read GOAWAY frame
+ parser.readFrame(true);
+
+ Assert.assertTrue(output.getTrace(),
+ output.getTrace().startsWith("0-Goaway-[2147483647]-[" +
+ Error.FRAME_SIZE_ERROR.getCode() + "]-["));
+ }
+
+
+ @Test
+ public void testFrameTypeLimitsTooSmall() throws Exception {
+ hpackEncoder = new HpackEncoder(ConnectionSettings.DEFAULT_HEADER_TABLE_SIZE);
+
+ // HTTP2 upgrade
+ http2Connect();
+
+ // Overly large ping
+ byte[] ping = new byte[9];
+
+ // Header
+ // Length 0
+ // Type
+ ping[3] = FrameType.PING.getIdByte();
+ // No flags
+ // Stream 0
+ // Empty payload
+
+ os.write(ping);
+
+ // Read GOAWAY frame
+ parser.readFrame(true);
+
+ Assert.assertTrue(output.getTrace(),
+ output.getTrace().startsWith("0-Goaway-[2147483647]-[" +
+ Error.FRAME_SIZE_ERROR.getCode() + "]-["));
+ }
+
+
+ // TODO Test connection vs stream error on a stream other than zero
+}
Propchange: tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_4_2.java
------------------------------------------------------------------------------
svn:eol-style = native
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org