Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'workhorse/config_test.go')
-rw-r--r--workhorse/config_test.go84
1 files changed, 74 insertions, 10 deletions
diff --git a/workhorse/config_test.go b/workhorse/config_test.go
index 0c0072322ac..a6a1bdd7187 100644
--- a/workhorse/config_test.go
+++ b/workhorse/config_test.go
@@ -3,7 +3,6 @@ package main
import (
"flag"
"io"
- "io/ioutil"
"net/url"
"os"
"testing"
@@ -24,7 +23,7 @@ func TestDefaultConfig(t *testing.T) {
}
func TestConfigFile(t *testing.T) {
- f, err := ioutil.TempFile("", "workhorse-config-test")
+ f, err := os.CreateTemp("", "workhorse-config-test")
require.NoError(t, err)
defer os.Remove(f.Name())
@@ -47,6 +46,15 @@ certificate = "/path/to/certificate"
key = "/path/to/private/key"
min_version = "tls1.1"
max_version = "tls1.2"
+[[listeners]]
+network = "tcp"
+addr = "localhost:3444"
+[metrics_listener]
+network = "tcp"
+addr = "localhost:3445"
+[metrics_listener.tls]
+certificate = "/path/to/certificate"
+key = "/path/to/private/key"
`
_, err = io.WriteString(f, data)
require.NoError(t, err)
@@ -66,14 +74,69 @@ max_version = "tls1.2"
require.Equal(t, []string{"10.0.0.1/8"}, cfg.TrustedCIDRsForPropagation)
require.Equal(t, 60*time.Second, cfg.ShutdownTimeout.Duration)
- require.Len(t, cfg.Listeners, 1)
- listener := cfg.Listeners[0]
- require.Equal(t, "/path/to/certificate", listener.Tls.Certificate)
- require.Equal(t, "/path/to/private/key", listener.Tls.Key)
- require.Equal(t, "tls1.1", listener.Tls.MinVersion)
- require.Equal(t, "tls1.2", listener.Tls.MaxVersion)
- require.Equal(t, "tcp", listener.Network)
- require.Equal(t, "localhost:3443", listener.Addr)
+ listenerConfigs := []config.ListenerConfig{
+ {
+ Network: "tcp",
+ Addr: "localhost:3445",
+ Tls: &config.TlsConfig{
+ Certificate: "/path/to/certificate",
+ Key: "/path/to/private/key",
+ },
+ },
+ {
+ Network: "tcp",
+ Addr: "localhost:3443",
+ Tls: &config.TlsConfig{
+ Certificate: "/path/to/certificate",
+ Key: "/path/to/private/key",
+ MinVersion: "tls1.1",
+ MaxVersion: "tls1.2",
+ },
+ },
+ {
+ Network: "tcp",
+ Addr: "localhost:3444",
+ },
+ }
+
+ require.Len(t, cfg.Listeners, 2)
+ require.NotNil(t, cfg.MetricsListener)
+
+ for i, cfg := range []config.ListenerConfig{*cfg.MetricsListener, cfg.Listeners[0], cfg.Listeners[1]} {
+ require.Equal(t, listenerConfigs[i].Network, cfg.Network)
+ require.Equal(t, listenerConfigs[i].Addr, cfg.Addr)
+ }
+
+ for i, cfg := range []config.ListenerConfig{*cfg.MetricsListener, cfg.Listeners[0]} {
+ require.Equal(t, listenerConfigs[i].Tls.Certificate, cfg.Tls.Certificate)
+ require.Equal(t, listenerConfigs[i].Tls.Key, cfg.Tls.Key)
+ require.Equal(t, listenerConfigs[i].Tls.MinVersion, cfg.Tls.MinVersion)
+ require.Equal(t, listenerConfigs[i].Tls.MaxVersion, cfg.Tls.MaxVersion)
+ }
+
+ require.Nil(t, cfg.Listeners[1].Tls)
+}
+
+func TestTwoMetricsAddrsAreSpecifiedError(t *testing.T) {
+ f, err := os.CreateTemp("", "workhorse-config-test")
+ require.NoError(t, err)
+ defer os.Remove(f.Name())
+
+ data := `
+[metrics_listener]
+network = "tcp"
+addr = "localhost:3445"
+`
+ _, err = io.WriteString(f, data)
+ require.NoError(t, err)
+ require.NoError(t, f.Close())
+
+ args := []string{
+ "-config", f.Name(),
+ "-prometheusListenAddr", "prometheus listen addr",
+ }
+ _, _, err = buildConfig("test", args)
+ require.EqualError(t, err, "configFile: both prometheusListenAddr and metrics_listener can't be specified")
}
func TestConfigErrorHelp(t *testing.T) {
@@ -215,6 +278,7 @@ func TestConfigFlagParsing(t *testing.T) {
APICILongPollingDuration: 234 * time.Second,
PropagateCorrelationID: true,
ImageResizerConfig: config.DefaultImageResizerConfig,
+ MetricsListener: &config.ListenerConfig{Network: "tcp", Addr: "prometheus listen addr"},
}
require.Equal(t, expectedCfg, cfg)
}