telegraf/config/types_test.go

83 lines
2.3 KiB
Go
Raw Normal View History

package config_test
import (
"testing"
"time"
"github.com/influxdata/telegraf/config"
"github.com/influxdata/telegraf/plugins/processors/reverse_dns"
"github.com/stretchr/testify/require"
)
func TestConfigDuration(t *testing.T) {
c := config.NewConfig()
err := c.LoadConfigData([]byte(`
[[processors.reverse_dns]]
cache_ttl = "3h"
lookup_timeout = "17s"
max_parallel_lookups = 13
ordered = true
[[processors.reverse_dns.lookup]]
field = "source_ip"
dest = "source_name"
`))
require.NoError(t, err)
require.Len(t, c.Processors, 1)
p := c.Processors[0].Processor.(*reverse_dns.ReverseDNS)
require.EqualValues(t, p.CacheTTL, 3*time.Hour)
require.EqualValues(t, p.LookupTimeout, 17*time.Second)
require.Equal(t, p.MaxParallelLookups, 13)
require.Equal(t, p.Ordered, true)
}
func TestDuration(t *testing.T) {
var d config.Duration
require.NoError(t, d.UnmarshalTOML([]byte(`"1s"`)))
require.Equal(t, time.Second, time.Duration(d))
d = config.Duration(0)
require.NoError(t, d.UnmarshalTOML([]byte(`1s`)))
require.Equal(t, time.Second, time.Duration(d))
d = config.Duration(0)
require.NoError(t, d.UnmarshalTOML([]byte(`'1s'`)))
require.Equal(t, time.Second, time.Duration(d))
d = config.Duration(0)
require.NoError(t, d.UnmarshalTOML([]byte(`10`)))
require.Equal(t, 10*time.Second, time.Duration(d))
d = config.Duration(0)
require.NoError(t, d.UnmarshalTOML([]byte(`1.5`)))
require.Equal(t, time.Second, time.Duration(d))
require.Error(t, d.UnmarshalTOML([]byte(`"1"`))) // string missing unit
require.Error(t, d.UnmarshalTOML([]byte(`'2'`))) // string missing unit
require.Error(t, d.UnmarshalTOML([]byte(`'ns'`))) // string missing time
require.Error(t, d.UnmarshalTOML([]byte(`'us'`))) // string missing time
}
func TestSize(t *testing.T) {
var s config.Size
require.NoError(t, s.UnmarshalTOML([]byte(`"1B"`)))
require.Equal(t, int64(1), int64(s))
s = config.Size(0)
require.NoError(t, s.UnmarshalTOML([]byte(`1`)))
require.Equal(t, int64(1), int64(s))
s = config.Size(0)
require.NoError(t, s.UnmarshalTOML([]byte(`'1'`)))
require.Equal(t, int64(1), int64(s))
s = config.Size(0)
require.NoError(t, s.UnmarshalTOML([]byte(`"1GB"`)))
require.Equal(t, int64(1000*1000*1000), int64(s))
s = config.Size(0)
require.NoError(t, s.UnmarshalTOML([]byte(`"12GiB"`)))
require.Equal(t, int64(12*1024*1024*1024), int64(s))
}