@@ -869,7 +869,6 @@ func TestConnClosedWhenRemoteCloses(t *testing.T) {
869
869
}
870
870
871
871
func TestErrorCodes (t * testing.T ) {
872
-
873
872
assertStreamErrors := func (s network.Stream , expectedError error ) {
874
873
buf := make ([]byte , 10 )
875
874
_ , err := s .Read (buf )
@@ -925,20 +924,46 @@ func TestErrorCodes(t *testing.T) {
925
924
require .NoError (t , err )
926
925
pingPong (s )
927
926
927
+ remoteStream := <- remoteStreamQ
928
+ defer remoteStream .Reset ()
929
+
928
930
err = s .ResetWithError (42 )
929
931
require .NoError (t , err )
930
932
assertStreamErrors (s , & network.StreamError {
931
933
ErrorCode : 42 ,
932
934
Remote : false ,
933
935
})
934
936
937
+ assertStreamErrors (remoteStream , & network.StreamError {
938
+ ErrorCode : 42 ,
939
+ Remote : true ,
940
+ })
941
+ })
942
+ t .Run ("StreamResetWithErrorByRemote" , func (t * testing.T ) {
943
+ if tc .Name == "WebTransport" {
944
+ t .Skipf ("skipping: %s, not implemented" , tc .Name )
945
+ return
946
+ }
947
+ ctx , cancel := context .WithTimeout (context .Background (), 5 * time .Second )
948
+ defer cancel ()
949
+ s , err := client .NewStream (ctx , server .ID (), "/test" )
950
+ require .NoError (t , err )
951
+ pingPong (s )
952
+
935
953
remoteStream := <- remoteStreamQ
936
- defer remoteStream .Reset ()
937
954
938
- assertStreamErrors (remoteStream , & network.StreamError {
955
+ err = remoteStream .ResetWithError (42 )
956
+ require .NoError (t , err )
957
+
958
+ assertStreamErrors (s , & network.StreamError {
939
959
ErrorCode : 42 ,
940
960
Remote : true ,
941
961
})
962
+
963
+ assertStreamErrors (remoteStream , & network.StreamError {
964
+ ErrorCode : 42 ,
965
+ Remote : false ,
966
+ })
942
967
})
943
968
944
969
t .Run ("StreamResetByConnCloseWithError" , func (t * testing.T ) {
@@ -952,6 +977,9 @@ func TestErrorCodes(t *testing.T) {
952
977
require .NoError (t , err )
953
978
pingPong (s )
954
979
980
+ remoteStream := <- remoteStreamQ
981
+ defer remoteStream .Reset ()
982
+
955
983
err = s .Conn ().CloseWithError (42 )
956
984
require .NoError (t , err )
957
985
@@ -960,16 +988,13 @@ func TestErrorCodes(t *testing.T) {
960
988
Remote : false ,
961
989
})
962
990
963
- remoteStream := <- remoteStreamQ
964
- defer remoteStream .Reset ()
965
-
966
991
assertStreamErrors (remoteStream , & network.ConnError {
967
992
ErrorCode : 42 ,
968
993
Remote : true ,
969
994
})
970
995
})
971
996
972
- t .Run ("StreamResetByConnCloseWithError " , func (t * testing.T ) {
997
+ t .Run ("NewStreamErrorByConnCloseWithError " , func (t * testing.T ) {
973
998
if tc .Name == "WebTransport" || tc .Name == "WebRTC" {
974
999
t .Skipf ("skipping: %s, not implemented" , tc .Name )
975
1000
return
0 commit comments