coredns/plugin/bufsize/setup_test.go
Petr Menšík 52f0348312
Change default value to 1232 (#6183)
* Change default value to 1232

As specified by DNS flag day 2020, good and decent default value
avoiding fragmentation issues should be 1232. It is quite likely 1500
would work reliably on local ethernet networks.

Value 512 is set implicitly and must be used for all clients, which did
not include OPT RR with explicit value they support.

Since MR #5368 it should work correctly.

Signed-off-by: Petr Menšík <pemensik@redhat.com>

* Adapt bufsize test to new default value

Check also buffer size smaller than legacy value is not accepted.

Signed-off-by: Petr Menšík <pemensik@redhat.com>

* Update bufsize documentation

Mention also increasing request size is not possible, it can only reduce
the accepted size.

Signed-off-by: Petr Menšík <pemensik@redhat.com>

---------

Signed-off-by: Petr Menšík <pemensik@redhat.com>
2023-07-10 07:49:52 -07:00

47 lines
1.3 KiB
Go

package bufsize
import (
"strings"
"testing"
"github.com/coredns/caddy"
)
func TestSetupBufsize(t *testing.T) {
tests := []struct {
input string
shouldErr bool
expectedData int
expectedErrContent string // substring from the expected error. Empty for positive cases.
}{
{`bufsize`, false, 1232, ""},
{`bufsize "1220"`, false, 1220, ""},
{`bufsize "5000"`, true, -1, "plugin"},
{`bufsize "512 512"`, true, -1, "plugin"},
{`bufsize "511"`, true, -1, "plugin"},
{`bufsize "abc123"`, true, -1, "plugin"},
}
for i, test := range tests {
c := caddy.NewTestController("dns", test.input)
bufsize, err := parse(c)
if test.shouldErr && err == nil {
t.Errorf("Test %d: Expected error but found %s for input %s", i, err, test.input)
}
if err != nil {
if !test.shouldErr {
t.Errorf("Test %d: Error found for input %s. Error: %v", i, test.input, err)
}
if !strings.Contains(err.Error(), test.expectedErrContent) {
t.Errorf("Test %d: Expected error to contain: %v, found error: %v, input: %s", i, test.expectedErrContent, err, test.input)
}
}
if !test.shouldErr && bufsize != test.expectedData {
t.Errorf("Test %d: Bufsize not correctly set for input %s. Expected: %d, actual: %d", i, test.input, test.expectedData, bufsize)
}
}
}