mirror of
https://github.com/coredns/coredns.git
synced 2025-12-15 23:05:16 -05:00
Prevent fail counter of a proxy overflows (#5990)
Signed-off-by: vanceli <vanceli@tencent.com> Signed-off-by: Vance Li <vncl@YingyingM1.local> Co-authored-by: vanceli <vanceli@tencent.com>
This commit is contained in:
@@ -3,6 +3,7 @@ package proxy
|
||||
import (
|
||||
"context"
|
||||
"crypto/tls"
|
||||
"math"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@@ -97,3 +98,33 @@ func TestProtocolSelection(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestProxyIncrementFails(t *testing.T) {
|
||||
var testCases = []struct {
|
||||
name string
|
||||
fails uint32
|
||||
expectFails uint32
|
||||
}{
|
||||
{
|
||||
name: "increment fails counter overflows",
|
||||
fails: math.MaxUint32,
|
||||
expectFails: math.MaxUint32,
|
||||
},
|
||||
{
|
||||
name: "increment fails counter",
|
||||
fails: 0,
|
||||
expectFails: 1,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
p := NewProxy("bad_address", transport.DNS)
|
||||
p.fails = tc.fails
|
||||
p.incrementFails()
|
||||
if p.fails != tc.expectFails {
|
||||
t.Errorf("Expected fails to be %d, got %d", tc.expectFails, p.fails)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user