test(inputs.radius): Use random port for test (#13683)
This commit is contained in:
parent
087a6683f1
commit
80ce606cef
|
|
@ -3,6 +3,7 @@ package radius
|
|||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"net"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
"time"
|
||||
|
|
@ -31,14 +32,22 @@ func TestRadiusLocal(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
// Setup a connection to be able to get a random port
|
||||
conn, err := net.ListenPacket("udp4", "127.0.0.1:0")
|
||||
require.NoError(t, err)
|
||||
defer conn.Close()
|
||||
addr := conn.LocalAddr().String()
|
||||
host, port, err := net.SplitHostPort(addr)
|
||||
require.NoError(t, err)
|
||||
|
||||
server := radius.PacketServer{
|
||||
Handler: radius.HandlerFunc(handler),
|
||||
SecretSource: radius.StaticSecretSource([]byte(`testsecret`)),
|
||||
Addr: ":1813",
|
||||
Addr: addr,
|
||||
}
|
||||
|
||||
go func() {
|
||||
if err := server.ListenAndServe(); err != nil {
|
||||
if err := server.Serve(conn); err != nil {
|
||||
if !errors.Is(err, radius.ErrServerShutdown) {
|
||||
require.NoError(t, err, "local radius server failed")
|
||||
}
|
||||
|
|
@ -46,25 +55,25 @@ func TestRadiusLocal(t *testing.T) {
|
|||
}()
|
||||
|
||||
plugin := &Radius{
|
||||
Servers: []string{"localhost:1813"},
|
||||
Servers: []string{addr},
|
||||
Username: config.NewSecret([]byte(`testusername`)),
|
||||
Password: config.NewSecret([]byte(`testpassword`)),
|
||||
Secret: config.NewSecret([]byte(`testsecret`)),
|
||||
Log: testutil.Logger{},
|
||||
}
|
||||
var acc testutil.Accumulator
|
||||
|
||||
require.NoError(t, plugin.Init())
|
||||
require.NoError(t, plugin.Gather(&acc))
|
||||
require.Len(t, acc.Errors, 0)
|
||||
|
||||
var acc testutil.Accumulator
|
||||
require.NoError(t, acc.GatherError(plugin.Gather))
|
||||
|
||||
if !acc.HasMeasurement("radius") {
|
||||
t.Errorf("acc.HasMeasurement: expected radius")
|
||||
}
|
||||
require.Equal(t, true, acc.HasTag("radius", "source"))
|
||||
require.Equal(t, true, acc.HasTag("radius", "source_port"))
|
||||
require.Equal(t, true, acc.HasTag("radius", "response_code"))
|
||||
require.Equal(t, "localhost", acc.TagValue("radius", "source"))
|
||||
require.Equal(t, "1813", acc.TagValue("radius", "source_port"))
|
||||
require.Equal(t, host, acc.TagValue("radius", "source"))
|
||||
require.Equal(t, port, acc.TagValue("radius", "source_port"))
|
||||
require.Equal(t, radius.CodeAccessAccept.String(), acc.TagValue("radius", "response_code"))
|
||||
require.Equal(t, true, acc.HasInt64Field("radius", "responsetime_ms"))
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue