Commit Graph

1895 Commits

Author SHA1 Message Date
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
Marten Seemann
ce2333acd6 fix flaky benchmark test on CIs
The server now waits until the client has completed the handshake. This
way, we should avoid sending too many undecryptable packets.
2017-07-25 08:39:32 +07:00
Marten Seemann
43279c37a8 Merge pull request #753 from lucas-clemente/fix-734
implement a h2quic.RoundTripOpt that allow to only use cached QUIC conns
2017-07-25 08:36:51 +07:00
Marten Seemann
ab2bee4002 Merge pull request #749 from lucas-clemente/fix-741
implement net.Error interface for stream deadline expiration errors
2017-07-24 23:14:30 +07:00
Marten Seemann
8ccadf2088 Merge pull request #758 from lucas-clemente/fix-757
Revert "use a finalizer to close the h2quic.RoundTripper"
2017-07-24 23:04:23 +07:00
Marten Seemann
89e88ac6a0 Merge pull request #754 from lucas-clemente/fix-641
fix a race condition in a session test
2017-07-24 22:48:18 +07:00
Marten Seemann
6bd6594003 implement a h2quic.RoundTripOpt that allow to only use cached QUIC conns 2017-07-24 21:46:18 +07:00
Marten Seemann
6546e13e26 implement net.Error interface for stream deadline expiration errors 2017-07-24 21:45:07 +07:00
Marten Seemann
36ee4bd36b Revert "use a finalizer to close the h2quic.RoundTripper"
This reverts commit 65cea185bd.

The finalizer may run even before the h2quic.RoundTripper
variable falls out of scope. This can result in closing
the session before a HTTP transfer has completed.
2017-07-24 21:43:52 +07:00
Marten Seemann
f43e732e4b fix a race condition in a session test
We were relying on the run-loop to set handshakeComplete to true, while
at the same time sending packets. select doesn't guarantee the order of
execution when multiple cases can run. The fix is setting
handshakeComplete to true directly.
2017-07-24 21:42:05 +07:00
Marten Seemann
1060582a18 Merge pull request #760 from lucas-clemente/fix-759
use the gbytes.TimeoutReader in integration tests
2017-07-24 21:40:23 +07:00
Marten Seemann
1d1edfa615 use the gbytes.TimeoutReader in integration tests 2017-07-24 19:22:09 +07:00
Lucas Clemente
e45a89b55c Merge pull request #744 from Injust/master
Removal of Alternate-Protocol header
2017-07-17 19:38:19 -07:00
Justin
0c3a466805 Remove Alternate-Protocol header 2017-07-17 22:20:40 -04:00
Justin
33bb42488a Remove Alternate-Protocol header 2017-07-17 22:20:34 -04:00
Marten Seemann
61f558a2b6 Merge pull request #579 from lucas-clemente/stream-deadlines
implement stream deadlines
2017-07-16 12:08:24 +07:00
Marten Seemann
56155986e9 read the CI timescale factor from an environment variable 2017-07-15 23:51:24 +07:00
Marten Seemann
cfc7d1604d scale all deadline duration in stream tests on the CIs by 20
This allows us to run the tests faster locally. On the CIs, where the
timing is less accurate, the tests take longer, but won't be flaky.
2017-07-15 23:46:15 +07:00
Marten Seemann
e09993403d add stream deadlines to the Stream interface 2017-07-15 23:46:15 +07:00
Marten Seemann
1acdc5f18e implement write deadlines 2017-07-15 23:46:15 +07:00
Marten Seemann
5720e8af7d implement read deadlines 2017-07-15 23:46:15 +07:00
Marten Seemann
a70ae86f5a replace the sync.Cond for stream.Write() by a channel 2017-07-15 23:46:15 +07:00
Marten Seemann
5fbd52158f replace the sync.Cond for stream.Read() by a channel 2017-07-15 23:46:15 +07:00
Marten Seemann
bd693193ed Merge pull request #739 from lucas-clemente/fix-738
fix timestamp test such that it works in all timezones
2017-07-15 20:50:58 +07:00
Marten Seemann
e87c8cafcf Merge pull request #740 from lucas-clemente/benchmark-tests-race-detector
run benchmark tests with the race detector on Travis
2017-07-15 20:48:00 +07:00
Marten Seemann
584e23454e run benchmark tests with the race detector on Travis 2017-07-15 14:54:37 +07:00
Marten Seemann
33260d91a2 fix timestamp test such that it works in all timezones 2017-07-15 11:23:42 +07:00
Marten Seemann
5de4d3ccb5 Merge pull request #736 from lucas-clemente/fix-735
implement a function to close the h2quic.RoundTripper and run it as a finalizer
2017-07-12 20:44:59 +07:00
Marten Seemann
65cea185bd use a finalizer to close the h2quic.RoundTripper
The finalizer is executed when the RoundTripper is garbage collected.
This is not a perfect solution, since there are situations when an
unneeded RoundTripper is not garbage collected, e.g. when the program
exits before the GC ran. In those cases, the server will run into the
idle timeout and eventually close the connection  on its side.
2017-07-12 19:20:21 +07:00
Marten Seemann
67e5d4aa98 Merge pull request #661 from lucas-clemente/drop-go17
drop support for Go 1.7
2017-07-12 18:57:10 +07:00
Marten Seemann
bf6030a855 implement a function to close the h2quic.RoundTripper
h2quic.RoundTripper.Close() closes all QUIC connections that this
roundtripper has used.
2017-07-12 18:56:47 +07:00
Marten Seemann
ac63554791 drop support for Go 1.7 2017-07-12 18:43:18 +07:00
Lucas Clemente
14687ee1ec Merge pull request #708 from lucas-clemente/lucas-clemente-patch-1
Add Go 1.9beta2 to travis config
2017-07-12 12:08:32 +02:00
Marten Seemann
5b1d10e395 Merge pull request #731 from lucas-clemente/fix-730
don't close the client connection when the Public Header can't be parsed
2017-07-12 16:57:08 +07:00
Marten Seemann
964db88fbb Merge pull request #733 from lucas-clemente/fix-732
don't send PINGs before the handshake is completed
2017-07-12 16:54:59 +07:00
Lucas Clemente
5ac8e1e547 Add Go 1.9beta2 to travis config 2017-07-12 11:52:50 +02:00
Marten Seemann
7341282f27 don't send PINGs before the handshake is completed 2017-07-12 11:14:03 +07:00
Marten Seemann
79642d502e don't close the client connection when the Public Header can't be parsed
When receiving an unparseable packet with a spoofed remote address, we
should not close the connection.
2017-07-11 21:36:36 +07:00