Source file
src/net/http/h2_error_test.go
1
2
3
4
5
6
7 package http
8
9 import (
10 "errors"
11 "fmt"
12 "net/http/internal/http2"
13 "testing"
14 )
15
16 type externalStreamErrorCode uint32
17
18 type externalStreamError struct {
19 StreamID uint32
20 Code externalStreamErrorCode
21 Cause error
22 }
23
24 func (e externalStreamError) Error() string {
25 return fmt.Sprintf("ID %v, code %v", e.StreamID, e.Code)
26 }
27
28 func TestStreamError(t *testing.T) {
29 streamErr := http2.StreamError{StreamID: 42, Code: http2.ErrCodeProtocol}
30 extStreamErr, ok := errors.AsType[externalStreamError](streamErr)
31 if !ok {
32 t.Fatalf("errors.AsType failed")
33 }
34 if extStreamErr.StreamID != streamErr.StreamID {
35 t.Errorf("got StreamID %v, expected %v", extStreamErr.StreamID, streamErr.StreamID)
36 }
37 if extStreamErr.Cause != streamErr.Cause {
38 t.Errorf("got Cause %v, expected %v", extStreamErr.Cause, streamErr.Cause)
39 }
40 if uint32(extStreamErr.Code) != uint32(streamErr.Code) {
41 t.Errorf("got Code %v, expected %v", extStreamErr.Code, streamErr.Code)
42 }
43 }
44
View as plain text