(t *testing.T)
| 1031 | func (*nilFilterSpec) CreateFilter(config []interface{}) (filters.Filter, error) { return nil, nil } |
| 1032 | |
| 1033 | func 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 |
nothing calls this directly
no test coverage detected
searching dependent graphs…