mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 10:51:29 +00:00
add client-side detection of a successful timeout case to include the connection reset
This commit is contained in:
parent
35bc0fbad5
commit
d258e005e8
@ -80,7 +80,7 @@ func testWebhookTimeout(t *testing.T, watchCache bool) {
|
||||
validatingWebhooks []testWebhook
|
||||
expectInvocations []invocation
|
||||
expectError bool
|
||||
errorContains string
|
||||
errorContainsAnyOf []string
|
||||
}{
|
||||
{
|
||||
name: "minimum of request timeout or webhook timeout propagated",
|
||||
@ -133,8 +133,13 @@ func testWebhookTimeout(t *testing.T, watchCache bool) {
|
||||
expectInvocations: []invocation{
|
||||
{path: "/mutating/1/5s", timeoutSeconds: 3}, // from request
|
||||
},
|
||||
expectError: true,
|
||||
errorContains: "the server was unable to return a response in the time allotted",
|
||||
expectError: true,
|
||||
errorContainsAnyOf: []string{
|
||||
// refer to https://github.com/kubernetes/kubernetes/issues/98606#issuecomment-774832633
|
||||
// for the reason for triggering this scenario
|
||||
"stream error",
|
||||
"the server was unable to return a response in the time allotted",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@ -303,11 +308,19 @@ func testWebhookTimeout(t *testing.T, watchCache bool) {
|
||||
if err == nil {
|
||||
t.Fatalf("expected error but got none")
|
||||
}
|
||||
if tt.errorContains != "" {
|
||||
if !strings.Contains(err.Error(), tt.errorContains) {
|
||||
t.Errorf("expected an error saying %q, but got: %v", tt.errorContains, err)
|
||||
|
||||
expected := false
|
||||
if len(tt.errorContainsAnyOf) != 0 {
|
||||
for _, errStr := range tt.errorContainsAnyOf {
|
||||
if strings.Contains(err.Error(), errStr) {
|
||||
expected = true
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
if !expected {
|
||||
t.Errorf("expected the error to be any of %q, but got: %v", tt.errorContainsAnyOf, err)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user