Skip to content

Commit 448c44f

Browse files
committedMar 20, 2024·
http2: remove clientTester
All tests which use clientTester have been converted to use testClientConn, so delete clientTester. Change-Id: Id9a88bf7ee6760fada8442d383d5e68455c6dc3e Reviewed-on: https://go-review.googlesource.com/c/net/+/572815 Reviewed-by: Jonathan Amsterdam <jba@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
1 parent c7877ac commit 448c44f

File tree

1 file changed

+0
-195
lines changed

1 file changed

+0
-195
lines changed
 

‎http2/transport_test.go

-195
Original file line numberDiff line numberDiff line change
@@ -822,53 +822,6 @@ func (fw flushWriter) Write(p []byte) (n int, err error) {
822822
return
823823
}
824824

825-
type clientTester struct {
826-
t *testing.T
827-
tr *Transport
828-
sc, cc net.Conn // server and client conn
829-
fr *Framer // server's framer
830-
settings *SettingsFrame
831-
client func() error
832-
server func() error
833-
}
834-
835-
func newClientTester(t *testing.T) *clientTester {
836-
var dialOnce struct {
837-
sync.Mutex
838-
dialed bool
839-
}
840-
ct := &clientTester{
841-
t: t,
842-
}
843-
ct.tr = &Transport{
844-
TLSClientConfig: tlsConfigInsecure,
845-
DialTLS: func(network, addr string, cfg *tls.Config) (net.Conn, error) {
846-
dialOnce.Lock()
847-
defer dialOnce.Unlock()
848-
if dialOnce.dialed {
849-
return nil, errors.New("only one dial allowed in test mode")
850-
}
851-
dialOnce.dialed = true
852-
return ct.cc, nil
853-
},
854-
}
855-
856-
ln := newLocalListener(t)
857-
cc, err := net.Dial("tcp", ln.Addr().String())
858-
if err != nil {
859-
t.Fatal(err)
860-
}
861-
sc, err := ln.Accept()
862-
if err != nil {
863-
t.Fatal(err)
864-
}
865-
ln.Close()
866-
ct.cc = cc
867-
ct.sc = sc
868-
ct.fr = NewFramer(sc, sc)
869-
return ct
870-
}
871-
872825
func newLocalListener(t *testing.T) net.Listener {
873826
ln, err := net.Listen("tcp4", "127.0.0.1:0")
874827
if err == nil {
@@ -881,154 +834,6 @@ func newLocalListener(t *testing.T) net.Listener {
881834
return ln
882835
}
883836

884-
func (ct *clientTester) greet(settings ...Setting) {
885-
buf := make([]byte, len(ClientPreface))
886-
_, err := io.ReadFull(ct.sc, buf)
887-
if err != nil {
888-
ct.t.Fatalf("reading client preface: %v", err)
889-
}
890-
f, err := ct.fr.ReadFrame()
891-
if err != nil {
892-
ct.t.Fatalf("Reading client settings frame: %v", err)
893-
}
894-
var ok bool
895-
if ct.settings, ok = f.(*SettingsFrame); !ok {
896-
ct.t.Fatalf("Wanted client settings frame; got %v", f)
897-
}
898-
if err := ct.fr.WriteSettings(settings...); err != nil {
899-
ct.t.Fatal(err)
900-
}
901-
if err := ct.fr.WriteSettingsAck(); err != nil {
902-
ct.t.Fatal(err)
903-
}
904-
}
905-
906-
func (ct *clientTester) readNonSettingsFrame() (Frame, error) {
907-
for {
908-
f, err := ct.fr.ReadFrame()
909-
if err != nil {
910-
return nil, err
911-
}
912-
if _, ok := f.(*SettingsFrame); ok {
913-
continue
914-
}
915-
return f, nil
916-
}
917-
}
918-
919-
// writeReadPing sends a PING and immediately reads the PING ACK.
920-
// It will fail if any other unread data was pending on the connection,
921-
// aside from SETTINGS frames.
922-
func (ct *clientTester) writeReadPing() error {
923-
data := [8]byte{1, 2, 3, 4, 5, 6, 7, 8}
924-
if err := ct.fr.WritePing(false, data); err != nil {
925-
return fmt.Errorf("Error writing PING: %v", err)
926-
}
927-
f, err := ct.readNonSettingsFrame()
928-
if err != nil {
929-
return err
930-
}
931-
p, ok := f.(*PingFrame)
932-
if !ok {
933-
return fmt.Errorf("got a %v, want a PING ACK", f)
934-
}
935-
if p.Flags&FlagPingAck == 0 {
936-
return fmt.Errorf("got a PING, want a PING ACK")
937-
}
938-
if p.Data != data {
939-
return fmt.Errorf("got PING data = %x, want %x", p.Data, data)
940-
}
941-
return nil
942-
}
943-
944-
func (ct *clientTester) inflowWindow(streamID uint32) int32 {
945-
pool := ct.tr.connPoolOrDef.(*clientConnPool)
946-
pool.mu.Lock()
947-
defer pool.mu.Unlock()
948-
if n := len(pool.keys); n != 1 {
949-
ct.t.Errorf("clientConnPool contains %v keys, expected 1", n)
950-
return -1
951-
}
952-
for cc := range pool.keys {
953-
cc.mu.Lock()
954-
defer cc.mu.Unlock()
955-
if streamID == 0 {
956-
return cc.inflow.avail + cc.inflow.unsent
957-
}
958-
cs := cc.streams[streamID]
959-
if cs == nil {
960-
ct.t.Errorf("no stream with id %v", streamID)
961-
return -1
962-
}
963-
return cs.inflow.avail + cs.inflow.unsent
964-
}
965-
return -1
966-
}
967-
968-
func (ct *clientTester) cleanup() {
969-
ct.tr.CloseIdleConnections()
970-
971-
// close both connections, ignore the error if its already closed
972-
ct.sc.Close()
973-
ct.cc.Close()
974-
}
975-
976-
func (ct *clientTester) run() {
977-
var errOnce sync.Once
978-
var wg sync.WaitGroup
979-
980-
run := func(which string, fn func() error) {
981-
defer wg.Done()
982-
if err := fn(); err != nil {
983-
errOnce.Do(func() {
984-
ct.t.Errorf("%s: %v", which, err)
985-
ct.cleanup()
986-
})
987-
}
988-
}
989-
990-
wg.Add(2)
991-
go run("client", ct.client)
992-
go run("server", ct.server)
993-
wg.Wait()
994-
995-
errOnce.Do(ct.cleanup) // clean up if no error
996-
}
997-
998-
func (ct *clientTester) readFrame() (Frame, error) {
999-
return ct.fr.ReadFrame()
1000-
}
1001-
1002-
func (ct *clientTester) firstHeaders() (*HeadersFrame, error) {
1003-
for {
1004-
f, err := ct.readFrame()
1005-
if err != nil {
1006-
return nil, fmt.Errorf("ReadFrame while waiting for Headers: %v", err)
1007-
}
1008-
switch f.(type) {
1009-
case *WindowUpdateFrame, *SettingsFrame:
1010-
continue
1011-
}
1012-
hf, ok := f.(*HeadersFrame)
1013-
if !ok {
1014-
return nil, fmt.Errorf("Got %T; want HeadersFrame", f)
1015-
}
1016-
return hf, nil
1017-
}
1018-
}
1019-
1020-
type countingReader struct {
1021-
n *int64
1022-
}
1023-
1024-
func (r countingReader) Read(p []byte) (n int, err error) {
1025-
for i := range p {
1026-
p[i] = byte(i)
1027-
}
1028-
atomic.AddInt64(r.n, int64(len(p)))
1029-
return len(p), err
1030-
}
1031-
1032837
func TestTransportReqBodyAfterResponse_200(t *testing.T) { testTransportReqBodyAfterResponse(t, 200) }
1033838
func TestTransportReqBodyAfterResponse_403(t *testing.T) { testTransportReqBodyAfterResponse(t, 403) }
1034839

0 commit comments

Comments
 (0)
Please sign in to comment.