MCPcopy Create free account
hub / github.com/zalando/skipper / TestFilterPanic

Function TestFilterPanic

proxy/proxy_test.go:1033–1115  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1031func (*nilFilterSpec) CreateFilter(config []interface{}) (filters.Filter, error) { return nil, nil }
1032
1033func TestFilterPanic(t *testing.T) {
1034 testLog := NewTestLog()
1035 defer testLog.Close()
1036
1037 var backendRequests int32
1038 s := startTestServer([]byte("Hello World!"), 0, func(r *http.Request) {
1039 atomic.AddInt32(&backendRequests, 1)
1040 })
1041 defer s.Close()
1042
1043 metrics := &metricstest.MockMetrics{}
1044 defer metrics.Close()
1045 d := 50 * time.Millisecond
1046 reg := scheduler.RegistryWith(scheduler.Options{
1047 Metrics: metrics,
1048 EnableRouteFIFOMetrics: true,
1049 MetricsUpdateTimeout: d,
1050 })
1051 defer reg.Close()
1052
1053 fr := make(filters.Registry)
1054 fr.Register(builtin.NewAppendRequestHeader())
1055 fr.Register(builtin.NewAppendResponseHeader())
1056 fr.Register(fscheduler.NewFifo())
1057 fr.Register(new(nilFilterSpec))
1058
1059 doc := fmt.Sprintf(`test:
1060 Path("/foo") ->
1061 fifo(2000,20,"1s") ->
1062 appendRequestHeader("X-Expected", "before") ->
1063 appendResponseHeader("X-Expected", "before") ->
1064 nilFilter() ->
1065 appendRequestHeader("X-Expected", "after") ->
1066 appendResponseHeader("X-Expected", "after") ->
1067 "%s"`, s.URL)
1068
1069 dc, err := testdataclient.NewDoc(doc)
1070 if err != nil {
1071 t.Fatalf("Failed to create testdataclient: %v", err)
1072 }
1073 defer dc.Close()
1074 ro := routing.Options{
1075 SignalFirstLoad: true,
1076 FilterRegistry: fr,
1077 DataClients: []routing.DataClient{dc},
1078 PostProcessors: []routing.PostProcessor{reg},
1079 }
1080 rt := routing.New(ro)
1081 defer rt.Close()
1082 <-rt.FirstLoad()
1083
1084 pr := WithParams(Params{
1085 Flags: FlagsNone,
1086 Metrics: metrics,
1087 Routing: rt,
1088 })
1089 defer pr.Close()
1090

Callers

nothing calls this directly

Calls 15

CloseMethod · 0.95
WithGaugesMethod · 0.95
RegistryWithFunction · 0.92
NewAppendRequestHeaderFunction · 0.92
NewAppendResponseHeaderFunction · 0.92
NewDocFunction · 0.92
NewFunction · 0.92
RegisterMethod · 0.80
FirstLoadMethod · 0.80
NewTestLogFunction · 0.70
startTestServerFunction · 0.70
WithParamsFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…