| | |
| | |
| | |
| |
|
| | |
| |
|
| | package http |
| |
|
| | import ( |
| | "errors" |
| | "fmt" |
| | "testing" |
| | ) |
| |
|
| | type externalStreamErrorCode uint32 |
| |
|
| | type externalStreamError struct { |
| | StreamID uint32 |
| | Code externalStreamErrorCode |
| | Cause error |
| | } |
| |
|
| | func (e externalStreamError) Error() string { |
| | return fmt.Sprintf("ID %v, code %v", e.StreamID, e.Code) |
| | } |
| |
|
| | func TestStreamError(t *testing.T) { |
| | streamErr := http2streamError(42, http2ErrCodeProtocol) |
| | extStreamErr, ok := errors.AsType[externalStreamError](streamErr) |
| | if !ok { |
| | t.Fatalf("errors.AsType failed") |
| | } |
| | if extStreamErr.StreamID != streamErr.StreamID { |
| | t.Errorf("got StreamID %v, expected %v", extStreamErr.StreamID, streamErr.StreamID) |
| | } |
| | if extStreamErr.Cause != streamErr.Cause { |
| | t.Errorf("got Cause %v, expected %v", extStreamErr.Cause, streamErr.Cause) |
| | } |
| | if uint32(extStreamErr.Code) != uint32(streamErr.Code) { |
| | t.Errorf("got Code %v, expected %v", extStreamErr.Code, streamErr.Code) |
| | } |
| | } |
| |
|