Skip to content

Commit 0ad37ce

Browse files
author
Adrian Cole
committed
Update to h2-16, hpack-10.
1 parent 09637b6 commit 0ad37ce

File tree

20 files changed

+241
-238
lines changed

20 files changed

+241
-238
lines changed

okcurl/src/main/java/com/squareup/okhttp/curl/Main.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import com.squareup.okhttp.RequestBody;
2626
import com.squareup.okhttp.Response;
2727
import com.squareup.okhttp.internal.http.StatusLine;
28-
import com.squareup.okhttp.internal.spdy.Http20Draft15;
28+
import com.squareup.okhttp.internal.spdy.Http20Draft16;
2929

3030
import io.airlift.command.Arguments;
3131
import io.airlift.command.Command;
@@ -266,7 +266,7 @@ private static HostnameVerifier createInsecureHostnameVerifier() {
266266
}
267267

268268
private static void enableHttp2FrameLogging() {
269-
Logger logger = Logger.getLogger(Http20Draft15.class.getName() + "$FrameLogger");
269+
Logger logger = Logger.getLogger(Http20Draft16.class.getName() + "$FrameLogger");
270270
logger.setLevel(Level.FINE);
271271
ConsoleHandler handler = new ConsoleHandler();
272272
handler.setLevel(Level.FINE);

okhttp-hpacktests/README.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@ initialize them, you must run:
88
git submodule init
99
git submodule update
1010

11-
When new interop tests are available, you should update
12-
HpackDecodeInteropGoodTest#GOOD_INTEROP_TESTS with the directory name.
13-
1411
TODO
1512
----
1613

okhttp-hpacktests/pom.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>com.squareup.okhttp</groupId>
88
<artifactId>parent</artifactId>
9-
<version>2.1.0-SNAPSHOT</version>
9+
<version>2.2.0-SNAPSHOT</version>
1010
</parent>
1111

1212
<artifactId>okhttp-hpacktests</artifactId>
@@ -37,7 +37,6 @@
3737
<dependency>
3838
<groupId>com.google.code.gson</groupId>
3939
<artifactId>gson</artifactId>
40-
<version>2.2.4</version>
4140
<scope>compile</scope>
4241
</dependency>
4342
</dependencies>

okhttp-hpacktests/src/test/java/com/squareup/okhttp/internal/spdy/HpackDecodeTestBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ protected static Collection<Story[]> createStories(String[] interopTests)
5151
}
5252

5353
private final Buffer bytesIn = new Buffer();
54-
private final HpackDraft09.Reader hpackReader = new HpackDraft09.Reader(4096, bytesIn);
54+
private final HpackDraft10.Reader hpackReader = new HpackDraft10.Reader(4096, bytesIn);
5555

5656
private final Story story;
5757

okhttp-hpacktests/src/test/java/com/squareup/okhttp/internal/spdy/HpackRoundTripTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public static Collection<Story[]> getStories() throws Exception {
4242
}
4343

4444
private Buffer bytesOut = new Buffer();
45-
private HpackDraft09.Writer hpackWriter = new HpackDraft09.Writer(bytesOut);
45+
private HpackDraft10.Writer hpackWriter = new HpackDraft10.Writer(bytesOut);
4646

4747
public HpackRoundTripTest(Story story) {
4848
super(story);

okhttp-tests/src/test/java/com/squareup/okhttp/CacheControlTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import java.util.concurrent.TimeUnit;
1919
import org.junit.Test;
2020

21-
import static junit.framework.Assert.assertEquals;
21+
import static org.junit.Assert.assertEquals;
2222
import static org.junit.Assert.assertFalse;
2323
import static org.junit.Assert.assertTrue;
2424
import static org.junit.Assert.fail;

okhttp-tests/src/test/java/com/squareup/okhttp/internal/http/HttpOverHttp20Draft15Test.java renamed to okhttp-tests/src/test/java/com/squareup/okhttp/internal/http/HttpOverHttp20Draft16Test.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424

2525
import static org.junit.Assert.assertEquals;
2626

27-
public class HttpOverHttp20Draft15Test extends HttpOverSpdyTest {
27+
public class HttpOverHttp20Draft16Test extends HttpOverSpdyTest {
2828

29-
public HttpOverHttp20Draft15Test() {
29+
public HttpOverHttp20Draft16Test() {
3030
super(Protocol.HTTP_2);
3131
this.hostHeader = ":authority";
3232
}

okhttp-tests/src/test/java/com/squareup/okhttp/internal/spdy/HpackDraft09Test.java renamed to okhttp-tests/src/test/java/com/squareup/okhttp/internal/spdy/HpackDraft10Test.java

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,23 @@
2828
import static org.junit.Assert.assertEquals;
2929
import static org.junit.Assert.fail;
3030

31-
public class HpackDraft09Test {
31+
public class HpackDraft10Test {
3232

3333
private final Buffer bytesIn = new Buffer();
34-
private HpackDraft09.Reader hpackReader;
34+
private HpackDraft10.Reader hpackReader;
3535
private Buffer bytesOut = new Buffer();
36-
private HpackDraft09.Writer hpackWriter;
36+
private HpackDraft10.Writer hpackWriter;
3737

3838
@Before public void reset() {
3939
hpackReader = newReader(bytesIn);
40-
hpackWriter = new HpackDraft09.Writer(bytesOut);
40+
hpackWriter = new HpackDraft10.Writer(bytesOut);
4141
}
4242

4343
/**
4444
* Variable-length quantity special cases strings which are longer than 127
4545
* bytes. Values such as cookies can be 4KiB, and should be possible to send.
4646
*
47-
* <p> http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09#section-6.1
47+
* <p> http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-10#section-5.2
4848
*/
4949
@Test public void largeHeaderValue() throws IOException {
5050
char[] value = new char[4096];
@@ -72,7 +72,7 @@ public class HpackDraft09Test {
7272
bytesIn.writeByte(0x0d); // Literal value (len = 13)
7373
bytesIn.writeUtf8("custom-header");
7474

75-
hpackReader.maxHeaderTableByteCountSetting(1);
75+
hpackReader.headerTableSizeSetting(1);
7676
hpackReader.readHeaders();
7777

7878
assertEquals(0, hpackReader.headerCount);
@@ -104,15 +104,15 @@ public class HpackDraft09Test {
104104
bytesIn.writeUtf8("custom-header");
105105

106106
// Set to only support 110 bytes (enough for 2 headers).
107-
hpackReader.maxHeaderTableByteCountSetting(110);
107+
hpackReader.headerTableSizeSetting(110);
108108
hpackReader.readHeaders();
109109

110110
assertEquals(2, hpackReader.headerCount);
111111

112-
Header entry = hpackReader.headerTable[headerTableLength() - 1];
112+
Header entry = hpackReader.dynamicTable[headerTableLength() - 1];
113113
checkEntry(entry, "custom-bar", "custom-header", 55);
114114

115-
entry = hpackReader.headerTable[headerTableLength() - 2];
115+
entry = hpackReader.dynamicTable[headerTableLength() - 2];
116116
checkEntry(entry, "custom-baz", "custom-header", 55);
117117

118118
// Once a header field is decoded and added to the reconstructed header
@@ -125,7 +125,7 @@ public class HpackDraft09Test {
125125
hpackReader.getAndResetHeaderList());
126126

127127
// Simulate receiving a small settings frame, that implies eviction.
128-
hpackReader.maxHeaderTableByteCountSetting(55);
128+
hpackReader.headerTableSizeSetting(55);
129129
assertEquals(1, hpackReader.headerCount);
130130
}
131131

@@ -140,7 +140,7 @@ public class HpackDraft09Test {
140140
bytesIn.writeUtf8("custom-header");
141141
}
142142

143-
hpackReader.maxHeaderTableByteCountSetting(16384); // Lots of headers need more room!
143+
hpackReader.headerTableSizeSetting(16384); // Lots of headers need more room!
144144
hpackReader.readHeaders();
145145

146146
assertEquals(256, hpackReader.headerCount);
@@ -156,14 +156,14 @@ public class HpackDraft09Test {
156156
hpackReader.readHeaders();
157157

158158
assertEquals(1, hpackReader.headerCount);
159-
assertEquals(52, hpackReader.headerTableByteCount);
159+
assertEquals(52, hpackReader.dynamicTableByteCount);
160160

161-
Header entry = hpackReader.headerTable[headerTableLength() - 1];
161+
Header entry = hpackReader.dynamicTable[headerTableLength() - 1];
162162
checkEntry(entry, ":path", "www.example.com", 52);
163163
}
164164

165165
/**
166-
* http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09#appendix-D.2.1
166+
* http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-10#appendix-C.2.1
167167
*/
168168
@Test public void readLiteralHeaderFieldWithIndexing() throws IOException {
169169
bytesIn.writeByte(0x40); // Literal indexed
@@ -176,16 +176,16 @@ public class HpackDraft09Test {
176176
hpackReader.readHeaders();
177177

178178
assertEquals(1, hpackReader.headerCount);
179-
assertEquals(55, hpackReader.headerTableByteCount);
179+
assertEquals(55, hpackReader.dynamicTableByteCount);
180180

181-
Header entry = hpackReader.headerTable[headerTableLength() - 1];
181+
Header entry = hpackReader.dynamicTable[headerTableLength() - 1];
182182
checkEntry(entry, "custom-key", "custom-header", 55);
183183

184184
assertEquals(headerEntries("custom-key", "custom-header"), hpackReader.getAndResetHeaderList());
185185
}
186186

187187
/**
188-
* https://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09#appendix-D.2.2
188+
* http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-10#appendix-C.2.2
189189
*/
190190
@Test public void literalHeaderFieldWithoutIndexingIndexedName() throws IOException {
191191
List<Header> headerBlock = headerEntries(":path", "/sample/path");
@@ -260,9 +260,9 @@ public class HpackDraft09Test {
260260
hpackReader.readHeaders();
261261

262262
assertEquals(0, hpackReader.headerCount);
263-
assertEquals(0, hpackReader.headerTableByteCount);
263+
assertEquals(0, hpackReader.dynamicTableByteCount);
264264

265-
assertEquals(null, hpackReader.headerTable[headerTableLength() - 1]);
265+
assertEquals(null, hpackReader.dynamicTable[headerTableLength() - 1]);
266266

267267
assertEquals(headerEntries(":method", "GET"), hpackReader.getAndResetHeaderList());
268268
}
@@ -309,14 +309,14 @@ public class HpackDraft09Test {
309309
bytesIn.writeByte(0x20);
310310
hpackReader.readHeaders();
311311

312-
assertEquals(0, hpackReader.maxHeaderTableByteCount());
312+
assertEquals(0, hpackReader.maxDynamicTableByteCount());
313313

314314
bytesIn.writeByte(0x3f); // encode size 4096
315315
bytesIn.writeByte(0xe1);
316316
bytesIn.writeByte(0x1f);
317317
hpackReader.readHeaders();
318318

319-
assertEquals(4096, hpackReader.maxHeaderTableByteCount());
319+
assertEquals(4096, hpackReader.maxDynamicTableByteCount());
320320
}
321321

322322
// Example taken from twitter/hpack DecoderTest.testIllegalHeaderTableSizeUpdate
@@ -347,13 +347,13 @@ public class HpackDraft09Test {
347347
}
348348

349349
/**
350-
* https://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09#appendix-D.2.4
350+
* http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-10#appendix-C.2.4
351351
*/
352352
@Test public void readIndexedHeaderFieldFromStaticTableWithoutBuffering() throws IOException {
353353
bytesIn.writeByte(0x82); // == Indexed - Add ==
354354
// idx = 2 -> :method: GET
355355

356-
hpackReader.maxHeaderTableByteCountSetting(0); // SETTINGS_HEADER_TABLE_SIZE == 0
356+
hpackReader.headerTableSizeSetting(0); // SETTINGS_HEADER_TABLE_SIZE == 0
357357
hpackReader.readHeaders();
358358

359359
// Not buffered in header table.
@@ -363,7 +363,7 @@ public class HpackDraft09Test {
363363
}
364364

365365
/**
366-
* http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09#appendix-D.2
366+
* http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-10#appendix-C.2
367367
*/
368368
@Test public void readRequestExamplesWithoutHuffman() throws IOException {
369369
firstRequestWithoutHuffman();
@@ -396,11 +396,11 @@ private void checkReadFirstRequestWithoutHuffman() {
396396
assertEquals(1, hpackReader.headerCount);
397397

398398
// [ 1] (s = 57) :authority: www.example.com
399-
Header entry = hpackReader.headerTable[headerTableLength() - 1];
399+
Header entry = hpackReader.dynamicTable[headerTableLength() - 1];
400400
checkEntry(entry, ":authority", "www.example.com", 57);
401401

402402
// Table size: 57
403-
assertEquals(57, hpackReader.headerTableByteCount);
403+
assertEquals(57, hpackReader.dynamicTableByteCount);
404404

405405
// Decoded header list:
406406
assertEquals(headerEntries(
@@ -429,15 +429,15 @@ private void checkReadSecondRequestWithoutHuffman() {
429429
assertEquals(2, hpackReader.headerCount);
430430

431431
// [ 1] (s = 53) cache-control: no-cache
432-
Header entry = hpackReader.headerTable[headerTableLength() - 2];
432+
Header entry = hpackReader.dynamicTable[headerTableLength() - 2];
433433
checkEntry(entry, "cache-control", "no-cache", 53);
434434

435435
// [ 2] (s = 57) :authority: www.example.com
436-
entry = hpackReader.headerTable[headerTableLength() - 1];
436+
entry = hpackReader.dynamicTable[headerTableLength() - 1];
437437
checkEntry(entry, ":authority", "www.example.com", 57);
438438

439439
// Table size: 110
440-
assertEquals(110, hpackReader.headerTableByteCount);
440+
assertEquals(110, hpackReader.dynamicTableByteCount);
441441

442442
// Decoded header list:
443443
assertEquals(headerEntries(
@@ -468,19 +468,19 @@ private void checkReadThirdRequestWithoutHuffman() {
468468
assertEquals(3, hpackReader.headerCount);
469469

470470
// [ 1] (s = 54) custom-key: custom-value
471-
Header entry = hpackReader.headerTable[headerTableLength() - 3];
471+
Header entry = hpackReader.dynamicTable[headerTableLength() - 3];
472472
checkEntry(entry, "custom-key", "custom-value", 54);
473473

474474
// [ 2] (s = 53) cache-control: no-cache
475-
entry = hpackReader.headerTable[headerTableLength() - 2];
475+
entry = hpackReader.dynamicTable[headerTableLength() - 2];
476476
checkEntry(entry, "cache-control", "no-cache", 53);
477477

478478
// [ 3] (s = 57) :authority: www.example.com
479-
entry = hpackReader.headerTable[headerTableLength() - 1];
479+
entry = hpackReader.dynamicTable[headerTableLength() - 1];
480480
checkEntry(entry, ":authority", "www.example.com", 57);
481481

482482
// Table size: 164
483-
assertEquals(164, hpackReader.headerTableByteCount);
483+
assertEquals(164, hpackReader.dynamicTableByteCount);
484484

485485
// Decoded header list:
486486
assertEquals(headerEntries(
@@ -492,7 +492,7 @@ private void checkReadThirdRequestWithoutHuffman() {
492492
}
493493

494494
/**
495-
* http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09#appendix-D.4
495+
* http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-10#appendix-C.4
496496
*/
497497
@Test public void readRequestExamplesWithHuffman() throws IOException {
498498
firstRequestWithHuffman();
@@ -526,11 +526,11 @@ private void checkReadFirstRequestWithHuffman() {
526526
assertEquals(1, hpackReader.headerCount);
527527

528528
// [ 1] (s = 57) :authority: www.example.com
529-
Header entry = hpackReader.headerTable[headerTableLength() - 1];
529+
Header entry = hpackReader.dynamicTable[headerTableLength() - 1];
530530
checkEntry(entry, ":authority", "www.example.com", 57);
531531

532532
// Table size: 57
533-
assertEquals(57, hpackReader.headerTableByteCount);
533+
assertEquals(57, hpackReader.dynamicTableByteCount);
534534

535535
// Decoded header list:
536536
assertEquals(headerEntries(
@@ -560,15 +560,15 @@ private void checkReadSecondRequestWithHuffman() {
560560
assertEquals(2, hpackReader.headerCount);
561561

562562
// [ 1] (s = 53) cache-control: no-cache
563-
Header entry = hpackReader.headerTable[headerTableLength() - 2];
563+
Header entry = hpackReader.dynamicTable[headerTableLength() - 2];
564564
checkEntry(entry, "cache-control", "no-cache", 53);
565565

566566
// [ 2] (s = 57) :authority: www.example.com
567-
entry = hpackReader.headerTable[headerTableLength() - 1];
567+
entry = hpackReader.dynamicTable[headerTableLength() - 1];
568568
checkEntry(entry, ":authority", "www.example.com", 57);
569569

570570
// Table size: 110
571-
assertEquals(110, hpackReader.headerTableByteCount);
571+
assertEquals(110, hpackReader.dynamicTableByteCount);
572572

573573
// Decoded header list:
574574
assertEquals(headerEntries(
@@ -601,19 +601,19 @@ private void checkReadThirdRequestWithHuffman() {
601601
assertEquals(3, hpackReader.headerCount);
602602

603603
// [ 1] (s = 54) custom-key: custom-value
604-
Header entry = hpackReader.headerTable[headerTableLength() - 3];
604+
Header entry = hpackReader.dynamicTable[headerTableLength() - 3];
605605
checkEntry(entry, "custom-key", "custom-value", 54);
606606

607607
// [ 2] (s = 53) cache-control: no-cache
608-
entry = hpackReader.headerTable[headerTableLength() - 2];
608+
entry = hpackReader.dynamicTable[headerTableLength() - 2];
609609
checkEntry(entry, "cache-control", "no-cache", 53);
610610

611611
// [ 3] (s = 57) :authority: www.example.com
612-
entry = hpackReader.headerTable[headerTableLength() - 1];
612+
entry = hpackReader.dynamicTable[headerTableLength() - 1];
613613
checkEntry(entry, ":authority", "www.example.com", 57);
614614

615615
// Table size: 164
616-
assertEquals(164, hpackReader.headerTableByteCount);
616+
assertEquals(164, hpackReader.dynamicTableByteCount);
617617

618618
// Decoded header list:
619619
assertEquals(headerEntries(
@@ -692,8 +692,8 @@ private void checkReadThirdRequestWithHuffman() {
692692
assertEquals(ByteString.EMPTY, newReader(byteStream(0)).readByteString());
693693
}
694694

695-
private HpackDraft09.Reader newReader(Buffer source) {
696-
return new HpackDraft09.Reader(4096, source);
695+
private HpackDraft10.Reader newReader(Buffer source) {
696+
return new HpackDraft10.Reader(4096, source);
697697
}
698698

699699
private Buffer byteStream(int... bytes) {
@@ -721,6 +721,6 @@ private ByteString intArrayToByteArray(int[] bytes) {
721721
}
722722

723723
private int headerTableLength() {
724-
return hpackReader.headerTable.length;
724+
return hpackReader.dynamicTable.length;
725725
}
726726
}

0 commit comments

Comments
 (0)