116 lines
2.1 KiB
Go
116 lines
2.1 KiB
Go
package snmp
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/influxdb/telegraf/testutil"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestSNMPErrorGet(t *testing.T) {
|
|
get1 := Data{
|
|
Name: "oid1",
|
|
Unit: "second",
|
|
Oid: ".1.3.6.1.2.1.2.2.1.16.1",
|
|
}
|
|
h := Host{
|
|
Collect: []string{"oid1"},
|
|
}
|
|
s := Snmp{
|
|
Hosts: []Host{h},
|
|
Get: []Data{get1},
|
|
}
|
|
|
|
var acc testutil.Accumulator
|
|
err := s.Gather(&acc)
|
|
require.Error(t, err)
|
|
}
|
|
|
|
func TestSNMPErrorBulk(t *testing.T) {
|
|
bulk1 := Data{
|
|
Name: "oid1",
|
|
Unit: "second",
|
|
Oid: ".1.3.6.1.2.1.2.2.1.16",
|
|
Snmptranslate: true,
|
|
}
|
|
h := Host{
|
|
Collect: []string{"oid1"},
|
|
}
|
|
s := Snmp{
|
|
Hosts: []Host{h},
|
|
Bulk: []Data{bulk1},
|
|
}
|
|
|
|
var acc testutil.Accumulator
|
|
err := s.Gather(&acc)
|
|
require.Error(t, err)
|
|
}
|
|
|
|
func TestSNMPBulk(t *testing.T) {
|
|
bulk1 := Data{
|
|
Name: "oid1",
|
|
Unit: "second",
|
|
Oid: ".1.3.6.1.2.1.2.2.1.16",
|
|
MaxRepetition: 2,
|
|
Snmptranslate: true,
|
|
}
|
|
h := Host{
|
|
Address: "127.0.0.1:31161",
|
|
Community: "telegraf",
|
|
Version: 2,
|
|
Timeout: 2.0,
|
|
Retries: 2,
|
|
Collect: []string{"oid1"},
|
|
}
|
|
s := Snmp{
|
|
Hosts: []Host{h},
|
|
Bulk: []Data{bulk1},
|
|
}
|
|
|
|
expected := map[string]uint{".1.3.6.1.2.1.2.2.1.16.1": 543846,
|
|
".1.3.6.1.2.1.2.2.1.16.2": 26475179,
|
|
".1.3.6.1.2.1.2.2.1.16.3": 108963968,
|
|
".1.3.6.1.2.1.2.2.1.16.36": 12991453,
|
|
}
|
|
|
|
var acc testutil.Accumulator
|
|
err := s.Gather(&acc)
|
|
require.NoError(t, err)
|
|
|
|
for _, p := range acc.Points {
|
|
assert.Equal(t, expected[p.Measurement], p.Fields[p.Measurement])
|
|
}
|
|
}
|
|
|
|
func TestSNMPGet(t *testing.T) {
|
|
get1 := Data{
|
|
Name: "oid1",
|
|
Unit: "second",
|
|
Oid: ".1.3.6.1.2.1.2.2.1.16.1",
|
|
}
|
|
h := Host{
|
|
Address: "127.0.0.1:31161",
|
|
Community: "telegraf",
|
|
Version: 2,
|
|
Timeout: 2.0,
|
|
Retries: 2,
|
|
Collect: []string{"oid1"},
|
|
}
|
|
s := Snmp{
|
|
Hosts: []Host{h},
|
|
Get: []Data{get1},
|
|
}
|
|
|
|
var acc testutil.Accumulator
|
|
err := s.Gather(&acc)
|
|
require.NoError(t, err)
|
|
|
|
for _, p := range acc.Points {
|
|
value := p.Fields["oid1"].(uint)
|
|
assert.Equal(t, get1.Name, p.Measurement)
|
|
assert.Equal(t, uint(543846), value)
|
|
}
|
|
}
|