Adding upstream version 1.34.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
e393c3af3f
commit
4978089aab
4963 changed files with 677545 additions and 0 deletions
112
plugins/inputs/nsdp/nsdp_test.go
Normal file
112
plugins/inputs/nsdp/nsdp_test.go
Normal file
|
@ -0,0 +1,112 @@
|
|||
package nsdp
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/tdrn-org/go-nsdp"
|
||||
|
||||
"github.com/influxdata/telegraf"
|
||||
"github.com/influxdata/telegraf/config"
|
||||
"github.com/influxdata/telegraf/plugins/parsers/influx"
|
||||
"github.com/influxdata/telegraf/testutil"
|
||||
)
|
||||
|
||||
func TestLoadConfig(t *testing.T) {
|
||||
// Verify plugin can be loaded from config
|
||||
conf := config.NewConfig()
|
||||
require.NoError(t, conf.LoadConfig("testdata/conf/nsdp.conf"))
|
||||
require.Len(t, conf.Inputs, 1)
|
||||
plugin, ok := conf.Inputs[0].Input.(*NSDP)
|
||||
require.True(t, ok)
|
||||
|
||||
// Verify successful Init
|
||||
require.NoError(t, plugin.Init())
|
||||
|
||||
// Verify everything is setup according to config file
|
||||
require.Equal(t, "127.0.0.1:63322", plugin.Address)
|
||||
require.Equal(t, uint(1), plugin.DeviceLimit)
|
||||
require.Equal(t, config.Duration(5*time.Second), plugin.Timeout)
|
||||
}
|
||||
|
||||
func TestInvalidTimeoutConfig(t *testing.T) {
|
||||
plugin := &NSDP{
|
||||
Timeout: config.Duration(0 * time.Second),
|
||||
}
|
||||
|
||||
// Verify failing Init
|
||||
require.EqualError(t, plugin.Init(), "timeout must be greater than zero")
|
||||
}
|
||||
|
||||
func TestGather(t *testing.T) {
|
||||
// Setup and start test responder
|
||||
responder, err := nsdp.NewTestResponder("localhost:0")
|
||||
require.NoError(t, err)
|
||||
defer responder.Stop() //nolint:errcheck // ignore error
|
||||
responder.AddResponses(
|
||||
"0102000000000000bcd07432b8dc123456789abc000037b94e53445000000000"+
|
||||
"0001000847533130384576330003000773776974636832000600040a01000410"+
|
||||
"0000310100000000e73b5f1a000000001e31523c000000000000000000000000"+
|
||||
"0000000000000000000000000000000000000000100000310200000000152d5e"+
|
||||
"ae0000000052ea11ea0000000000000000000000000000000000000000000000"+
|
||||
"000000000000000000100000310300000000068561aa00000000bcc8cb350000"+
|
||||
"0000000000000000000000000000000000000000000000000000000000001000"+
|
||||
"0031040000000002d5fe00000000002b37dad900000000000000000000000000"+
|
||||
"0000000000000000000000000000000000000010000031050000000000000000"+
|
||||
"0000000000000000000000000000000000000000000000000000000000000000"+
|
||||
"0000000000000000100000310600000000000000000000000000000000000000"+
|
||||
"0000000000000000000000000000000000000000000000000000000000100000"+
|
||||
"3107000000000000000000000000000000000000000000000000000000000000"+
|
||||
"0000000000000000000000000000000000001000003108000000000000000000"+
|
||||
"0000000000000000000000000000000000000000000000000000000000000000"+
|
||||
"00000000000000ffff0000",
|
||||
"0102000000000000bcd07432b8dccba987654321000037b94e53445000000000"+
|
||||
"0001000847533130384576330003000773776974636831000600040a01000310"+
|
||||
"00003101000000059a9d833200000000303e8eb5000000000000000000000000"+
|
||||
"0000000000000000000000000000000000000000100000310200000000000000"+
|
||||
"0000000000000000000000000000000000000000000000000000000000000000"+
|
||||
"0000000000000000001000003103000000000d9a35e4000000026523c6660000"+
|
||||
"0000000000000000000000000000000000000000000000000000000000001000"+
|
||||
"003104000000000041c7530000000002cd94ba00000000000000000000000000"+
|
||||
"0000000000000000000000000000000000000010000031050000000021b9ca41"+
|
||||
"000000031a9bff61000000000000000000000000000000000000000000000000"+
|
||||
"0000000000000000100000310600000000000000000000000000000000000000"+
|
||||
"0000000000000000000000000000000000000000000000000000000000100000"+
|
||||
"3107000000000000000000000000000000000000000000000000000000000000"+
|
||||
"0000000000000000000000000000000000001000003108000000000000000000"+
|
||||
"0000000000000000000000000000000000000000000000000000000000000000"+
|
||||
"00000000000000ffff0000",
|
||||
)
|
||||
require.NoError(t, responder.Start())
|
||||
|
||||
// Setup the plugin to target the test responder
|
||||
plugin := &NSDP{
|
||||
Address: responder.Target(),
|
||||
DeviceLimit: 2,
|
||||
Timeout: config.Duration(2 * time.Second),
|
||||
Log: testutil.Logger{Name: "nsdp"},
|
||||
}
|
||||
|
||||
// Verify successful Init
|
||||
require.NoError(t, plugin.Init())
|
||||
|
||||
// Verify successfull Gather
|
||||
var acc testutil.Accumulator
|
||||
require.NoError(t, acc.GatherError(plugin.Gather))
|
||||
|
||||
// Verify collected metrics are as expected
|
||||
expectedMetrics := loadExpectedMetrics(t, "testdata/metrics/nsdp_device_port.txt", telegraf.Counter)
|
||||
testutil.RequireMetricsEqual(t, expectedMetrics, acc.GetTelegrafMetrics(), testutil.IgnoreTime(), testutil.SortMetrics())
|
||||
}
|
||||
|
||||
func loadExpectedMetrics(t *testing.T, file string, vt telegraf.ValueType) []telegraf.Metric {
|
||||
parser := &influx.Parser{}
|
||||
require.NoError(t, parser.Init())
|
||||
expectedMetrics, err := testutil.ParseMetricsFromFile(file, parser)
|
||||
require.NoError(t, err)
|
||||
for index := range expectedMetrics {
|
||||
expectedMetrics[index].SetType(vt)
|
||||
}
|
||||
return expectedMetrics
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue