Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/component/common/net/config_test.go
4096 views
1
package net
2
3
import (
4
"testing"
5
"time"
6
7
"github.com/stretchr/testify/require"
8
9
"github.com/grafana/agent/pkg/river"
10
weaveworks "github.com/weaveworks/common/server"
11
)
12
13
func TestConfig(t *testing.T) {
14
type testcase struct {
15
raw string
16
errExpected bool
17
assert func(t *testing.T, config weaveworks.Config)
18
}
19
var cases = map[string]testcase{
20
"empty config applies defaults": {
21
raw: ``,
22
assert: func(t *testing.T, config weaveworks.Config) {
23
// custom defaults
24
require.Equal(t, DefaultHTTPPort, config.HTTPListenPort)
25
require.Equal(t, DefaultGRPCPort, config.GRPCListenPort)
26
// defaults inherited from weaveworks
27
require.Equal(t, "", config.HTTPListenAddress)
28
require.Equal(t, "", config.GRPCListenAddress)
29
require.False(t, config.RegisterInstrumentation)
30
require.Equal(t, time.Second*30, config.ServerGracefulShutdownTimeout)
31
},
32
},
33
"overriding defaults": {
34
raw: `
35
graceful_shutdown_timeout = "1m"
36
http {
37
listen_port = 8080
38
listen_address = "0.0.0.0"
39
conn_limit = 10
40
server_write_timeout = "10s"
41
}`,
42
assert: func(t *testing.T, config weaveworks.Config) {
43
require.Equal(t, 8080, config.HTTPListenPort)
44
require.Equal(t, "0.0.0.0", config.HTTPListenAddress)
45
require.Equal(t, 10, config.HTTPConnLimit)
46
require.Equal(t, time.Second*10, config.HTTPServerWriteTimeout)
47
48
require.Equal(t, time.Minute, config.ServerGracefulShutdownTimeout)
49
},
50
},
51
"all params": {
52
raw: `
53
graceful_shutdown_timeout = "1m"
54
http {
55
listen_address = "0.0.0.0"
56
listen_port = 1
57
conn_limit = 2
58
server_read_timeout = "2m"
59
server_write_timeout = "3m"
60
server_idle_timeout = "4m"
61
}
62
63
grpc {
64
listen_address = "0.0.0.1"
65
listen_port = 3
66
conn_limit = 4
67
max_connection_age = "5m"
68
max_connection_age_grace = "6m"
69
max_connection_idle = "7m"
70
server_max_recv_msg_size = 5
71
server_max_send_msg_size = 6
72
server_max_concurrent_streams = 7
73
}`,
74
assert: func(t *testing.T, config weaveworks.Config) {
75
// general
76
require.Equal(t, time.Minute, config.ServerGracefulShutdownTimeout)
77
// http
78
require.Equal(t, "0.0.0.0", config.HTTPListenAddress)
79
require.Equal(t, 1, config.HTTPListenPort)
80
require.Equal(t, 2, config.HTTPConnLimit)
81
require.Equal(t, time.Minute*2, config.HTTPServerReadTimeout)
82
require.Equal(t, time.Minute*3, config.HTTPServerWriteTimeout)
83
require.Equal(t, time.Minute*4, config.HTTPServerIdleTimeout)
84
// grpc
85
require.Equal(t, "0.0.0.1", config.GRPCListenAddress)
86
require.Equal(t, 3, config.GRPCListenPort)
87
require.Equal(t, 5*time.Minute, config.GRPCServerMaxConnectionAge)
88
require.Equal(t, 6*time.Minute, config.GRPCServerMaxConnectionAgeGrace)
89
require.Equal(t, 7*time.Minute, config.GRPCServerMaxConnectionIdle)
90
require.Equal(t, 5, config.GPRCServerMaxRecvMsgSize)
91
require.Equal(t, 6, config.GRPCServerMaxSendMsgSize)
92
require.Equal(t, uint(7), config.GPRCServerMaxConcurrentStreams)
93
},
94
},
95
}
96
for name, tc := range cases {
97
t.Run(name, func(t *testing.T) {
98
cfg := ServerConfig{}
99
err := river.Unmarshal([]byte(tc.raw), &cfg)
100
require.Equal(t, tc.errExpected, err != nil)
101
wConfig := cfg.Convert()
102
tc.assert(t, wConfig)
103
})
104
}
105
}
106
107