forked from quic-go/quic-go
return the length of data written when the stream errors
This commit is contained in:
@@ -171,7 +171,7 @@ func (s *stream) Write(p []byte) (int, error) {
|
||||
}
|
||||
|
||||
if s.err != nil {
|
||||
return 0, s.err
|
||||
return len(p) - len(s.dataForWriting), s.err
|
||||
}
|
||||
|
||||
return len(p), nil
|
||||
|
||||
@@ -478,6 +478,23 @@ var _ = Describe("Stream", func() {
|
||||
Expect(err).To(MatchError(testErr))
|
||||
})
|
||||
|
||||
It("returns how much was written when recieving a remote error", func() {
|
||||
var writeReturned bool
|
||||
var n int
|
||||
var err error
|
||||
|
||||
go func() {
|
||||
n, err = str.Write([]byte("foobar"))
|
||||
writeReturned = true
|
||||
}()
|
||||
|
||||
Eventually(func() []byte { return str.getDataForWriting(4) }).ShouldNot(BeEmpty())
|
||||
str.RegisterRemoteError(testErr)
|
||||
Eventually(func() bool { return writeReturned }).Should(BeTrue())
|
||||
Expect(err).To(MatchError(testErr))
|
||||
Expect(n).To(Equal(4))
|
||||
})
|
||||
|
||||
It("calls onReset when receiving a remote error", func() {
|
||||
var writeReturned bool
|
||||
str.writeOffset = 0x1000
|
||||
|
||||
Reference in New Issue
Block a user