Skip to content
Snippets Groups Projects
Commit 56b627df authored by Marko Crnic's avatar Marko Crnic Committed by Cameron Sparr
Browse files

haproxy_test: extend tests to cover name globbing

parent 5c87b929
No related branches found
No related tags found
No related merge requests found
......@@ -111,36 +111,52 @@ func TestHaproxyGeneratesMetricsWithoutAuthentication(t *testing.T) {
func TestHaproxyGeneratesMetricsUsingSocket(t *testing.T) {
var randomNumber int64
binary.Read(rand.Reader, binary.LittleEndian, &randomNumber)
sock, err := net.Listen("unix", fmt.Sprintf("/tmp/test-haproxy%d.sock", randomNumber))
if err != nil {
t.Fatal("Cannot initialize socket ")
}
var sockets [5]net.Listener
_globmask := "/tmp/test-haproxy*.sock"
_badmask := "/tmp/test-fail-haproxy*.sock"
for i := 0; i < 5; i++ {
binary.Read(rand.Reader, binary.LittleEndian, &randomNumber)
sockname := fmt.Sprintf("/tmp/test-haproxy%d.sock", randomNumber)
sock, err := net.Listen("unix", sockname)
if err != nil {
t.Fatal("Cannot initialize socket ")
}
defer sock.Close()
sockets[i] = sock
defer sock.Close()
s := statServer{}
go s.serverSocket(sock)
s := statServer{}
go s.serverSocket(sock)
}
r := &haproxy{
Servers: []string{sock.Addr().String()},
Servers: []string{_globmask},
}
var acc testutil.Accumulator
err = r.Gather(&acc)
err := r.Gather(&acc)
require.NoError(t, err)
tags := map[string]string{
"proxy": "be_app",
"server": sock.Addr().String(),
"sv": "host0",
fields := HaproxyGetFieldValues()
for _, sock := range sockets {
tags := map[string]string{
"proxy": "be_app",
"server": sock.Addr().String(),
"sv": "host0",
}
acc.AssertContainsTaggedFields(t, "haproxy", fields, tags)
}
fields := HaproxyGetFieldValues()
// This mask should not match any socket
r.Servers = []string{_badmask}
acc.AssertContainsTaggedFields(t, "haproxy", fields, tags)
assert.Equal(t, len(socks), 5, "Failed to glob all sockets")
err = r.Gather(&acc)
require.Error(t, err)
}
//When not passing server config, we default to localhost
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment