Commit Graph

2032 Commits

Author SHA1 Message Date
Marten Seemann
843764aea3 write frames in big endian for QUIC 39 2017-08-23 16:00:48 +07:00
Marten Seemann
dd0daaaf1e implement version-dependent parsing of the Public Header 2017-08-23 16:00:45 +07:00
Marten Seemann
1a8a012019 implement a function to parse the connection ID from the Public Header
This will be needed to correctly parse the Public Header later. With the
upcoming changes in Q039 (and later, the transition to the IETF header
format), it's necessary to know the QUIC version in order to parse the
Public Header. For packets sent after the handshake, the version field
is not present in the Public Header, so we have to look it up by the
connection ID.
2017-08-23 15:57:35 +07:00
Marten Seemann
b5ff87b082 minor refactoring of Public Header parsing 2017-08-23 15:57:35 +07:00
Marten Seemann
2d4b7726b2 pass the QUIC version to all frame parsing functions 2017-08-23 15:57:35 +07:00
Marten Seemann
604c6ae406 implement an utils.BigEndian 2017-08-23 15:57:35 +07:00
Marten Seemann
05fde42e2d panic if the value for WriteUint48, WriteUint40, WriteUint24 is too big
Note that it's not possible to write a couple of frame types for packet
numbers that don't fit into 6 bytes. The IETF QUIC draft fixes this.
2017-08-23 15:57:35 +07:00
Marten Seemann
2330ac0497 introduce an utils.LittleEndian 2017-08-23 15:57:35 +07:00
Marten Seemann
254e079029 use a chan to store sent packets in mock connection
This makes the session tests a bit less racy.
2017-08-23 13:12:43 +07:00
Lucas Clemente
3bb4662cfc Merge pull request #781 from lucas-clemente/refactor-inttests
Refactor inttests
2017-08-21 13:00:21 +02:00
Lucas Clemente
75070d057b Fix import order 2017-08-21 12:25:27 +02:00
Lucas Clemente
19d1210a9a Remove dataManager and move client_test.go from gquic/ to self/ 2017-08-18 12:06:37 +02:00
Lucas Clemente
6150e2d05d Add caching to PR data generation and add a separate prdatalong handler 2017-08-18 12:06:37 +02:00
Lucas Clemente
84db78db83 Move rest of integration tests into the gquic folder 2017-08-18 12:06:37 +02:00
Lucas Clemente
0b1d7c46f5 Rename handshake/ to self/, will be the place for future quic-go self tests 2017-08-18 12:06:37 +02:00
Lucas Clemente
57e0616b3d Simplify integration suite setup 2017-08-18 12:06:37 +02:00
Lucas Clemente
6277d633e0 Factor out inttest logging setup into a separate package 2017-08-18 12:06:37 +02:00
Lucas Clemente
bb5a199467 Move Chrome tests and test server setup to separate packages 2017-08-18 12:06:37 +02:00
Lucas Clemente
56cbce35b3 Move proxy/ to new tools/ folder 2017-08-18 12:06:37 +02:00
Lucas Clemente
8ec11c0b53 Move testdata/ to internal/ 2017-08-18 12:06:36 +02:00
Lucas Clemente
d0fde2b230 Merge pull request #788 from glutamatt/fix-type
Fix typo
2017-08-13 11:49:52 +02:00
glutamatt
baa6005b9c Fix type 2017-08-13 00:52:44 +02:00
Marten Seemann
f3b8678ca6 Merge pull request #784 from lucas-clemente/quic38
add support for QUIC 38
2017-08-11 00:19:05 +07:00
Marten Seemann
71ff144c20 add QUIC 38 to supported versions 2017-08-10 20:26:36 +07:00
Marten Seemann
be338c8389 send a Public Reset when receiving the NSTP tag in the CHLO
We currently don't support the no STOP_WAITING experiment.
2017-08-10 20:26:31 +07:00
Marten Seemann
f6e8ce5c67 make tests independent of the supported QUIC versions
Now it's no longer necessary to edit the h2quic tests when adding a new
QUIC version to the slice of supported versions.
2017-08-10 20:23:20 +07:00
Marten Seemann
01baba83a5 don't pass the STOP_WAITING to the receivedPacketHandler
Only pass the LeastUnacked. This makes easier to remove STOP_WAITINGs
later.
2017-08-10 20:23:10 +07:00
Lucas Clemente
e42790eb20 Merge pull request #785 from lucas-clemente/go1.9rc2
Use 1.9rc2 on travis
2017-08-10 12:36:11 +02:00
Lucas Clemente
5bf3b710c0 Use 1.9rc2 on travis 2017-08-10 11:06:38 +02:00
Marten Seemann
698c8ceee8 reject STOP_WAITING frames that have a least unacked of 0 2017-08-10 09:33:14 +07:00
Marten Seemann
18c2ed33d3 Merge pull request #783 from lucas-clemente/better_reads
use io.ReadFull instead of Read to read into known length slices
2017-08-07 13:54:22 +07:00
Marten Seemann
f535cc40de use io.ReadFull instead of Read to read into known length slices 2017-08-04 19:36:24 +07:00
Marten Seemann
2b04d25a55 Merge pull request #777 from lucas-clemente/use-slice-sort
use sort.Slice to sort the tags in the handshake message
2017-08-02 15:09:45 +07:00
Marten Seemann
bf094c9dbb Merge pull request #774 from lucas-clemente/contexts
implement a context for streams and for the session
2017-08-02 12:02:28 +07:00
Marten Seemann
beadeb9da7 use sort.Slice to sort the tags in the handshake message
sort.Slice was added in Go 1.8. Now that we've dropped support for Go
1.7, we can make use of it.
2017-08-02 12:00:52 +07:00
Marten Seemann
8ef69143ba implement a context for the stream
The context is cancelled when the write-side of the stream is closed.
2017-08-02 11:28:17 +07:00
Marten Seemann
e02f5d5fbe replace Session.WaitUntilClosed() by a context 2017-08-02 11:27:44 +07:00
Marten Seemann
811315e31a Merge pull request #773 from lucas-clemente/fix-772
return an error when Write is called on a closed stream
2017-07-29 07:10:52 +07:00
Marten Seemann
77d4573d9b return an error when Write is called on a closed stream 2017-07-29 00:19:39 +07:00
Marten Seemann
3e012f77c8 Merge pull request #742 from lucas-clemente/streamtest-deadlines
use the new gbytes.TimeoutReader and TimeoutWriter in the stream tests
2017-07-26 16:45:02 +07:00
Marten Seemann
315aa14ab5 use the new gbytes.TimeoutReader and TimeoutWriter in the stream tests
This makes sure that our tests fail, even if stream.Read or stream.Write
block.
2017-07-26 16:15:48 +07:00
Marten Seemann
d4fb1c3402 Merge pull request #766 from lucas-clemente/benchmarks
move benchmarks to separate package, speed up CI builds
2017-07-26 16:13:54 +07:00
Marten Seemann
bc1858c7ec speed up the CI builds by using the new benchmark test flags
Reduce the number of samples and the amount of data transferred.
2017-07-26 16:00:41 +07:00
Marten Seemann
30bcc48e52 read file size and number of samples for benchmark test from flags
The values default to what we used previously.
2017-07-25 15:19:01 +07:00
Marten Seemann
d108e10420 move benchmark test to a separate package 2017-07-25 15:17:32 +07:00
Marten Seemann
2c2ca2e670 Merge pull request #764 from lucas-clemente/fix-761
speed up the benchmark test by fetching random data only once
2017-07-25 15:16:21 +07:00
Marten Seemann
4b63b09d0f Merge pull request #768 from lucas-clemente/fix-767
fix some race conditions in client tests
2017-07-25 14:59:16 +07:00
Marten Seemann
a555e3be82 Merge pull request #756 from lucas-clemente/fix-755
fix flaky benchmark test on CIs
2017-07-25 14:58:55 +07:00
Marten Seemann
4c73b935f5 fix some race conditions in client tests 2017-07-25 13:30:49 +07:00
Marten Seemann
b11d77e0df speed up the benchmark test by fetching random data only once
Reading from math.rand takes a long time when running the benchmark
with the race detector. By transferring the same data in every test, we
only have to do that once.
2017-07-25 11:42:01 +07:00