MCPcopy
hub / github.com/grpc/grpc-go / TestHeaderTblSize

Method TestHeaderTblSize

internal/transport/transport_test.go:2588–2676  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2586}
2587
2588func (s) TestHeaderTblSize(t *testing.T) {
2589 limits := &tableSizeLimit{}
2590 updateHeaderTblSize = func(e *hpack.Encoder, v uint32) {
2591 e.SetMaxDynamicTableSizeLimit(v)
2592 limits.add(v)
2593 }
2594 defer func() {
2595 updateHeaderTblSize = func(e *hpack.Encoder, v uint32) {
2596 e.SetMaxDynamicTableSizeLimit(v)
2597 }
2598 }()
2599
2600 server, ct, cancel := setUp(t, 0, normal)
2601 defer cancel()
2602 defer ct.Close(fmt.Errorf("closed manually by test"))
2603 defer server.stop()
2604 ctx, ctxCancel := context.WithTimeout(context.Background(), defaultTestTimeout)
2605 defer ctxCancel()
2606 _, err := ct.NewStream(ctx, &CallHdr{}, nil)
2607 if err != nil {
2608 t.Fatalf("failed to open stream: %v", err)
2609 }
2610
2611 var svrTransport ServerTransport
2612 var i int
2613 for i = 0; i < 1000; i++ {
2614 server.mu.Lock()
2615 if len(server.conns) != 0 {
2616 server.mu.Unlock()
2617 break
2618 }
2619 server.mu.Unlock()
2620 time.Sleep(10 * time.Millisecond)
2621 continue
2622 }
2623 if i == 1000 {
2624 t.Fatalf("unable to create any server transport after 10s")
2625 }
2626
2627 for st := range server.conns {
2628 svrTransport = st
2629 break
2630 }
2631 svrTransport.(*http2Server).controlBuf.put(&outgoingSettings{
2632 ss: []http2.Setting{
2633 {
2634 ID: http2.SettingHeaderTableSize,
2635 Val: uint32(100),
2636 },
2637 },
2638 })
2639
2640 for i = 0; i < 1000; i++ {
2641 if limits.getLen() != 1 {
2642 time.Sleep(10 * time.Millisecond)
2643 continue
2644 }
2645 if val := limits.getIndex(0); val != uint32(100) {

Callers

nothing calls this directly

Calls 12

addMethod · 0.95
getLenMethod · 0.95
getIndexMethod · 0.95
setUpFunction · 0.85
CloseMethod · 0.65
ErrorfMethod · 0.65
stopMethod · 0.65
NewStreamMethod · 0.65
FatalfMethod · 0.65
LockMethod · 0.45
UnlockMethod · 0.45
putMethod · 0.45

Tested by

no test coverage detected