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
246
internal/snmp/table_test.go
Normal file
246
internal/snmp/table_test.go
Normal file
|
@ -0,0 +1,246 @@
|
|||
package snmp
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestTableJoin_walk(t *testing.T) {
|
||||
tbl := Table{
|
||||
Name: "mytable",
|
||||
IndexAsTag: true,
|
||||
Fields: []Field{
|
||||
{
|
||||
Name: "myfield1",
|
||||
Oid: ".1.0.0.3.1.1",
|
||||
IsTag: true,
|
||||
},
|
||||
{
|
||||
Name: "myfield2",
|
||||
Oid: ".1.0.0.3.1.2",
|
||||
},
|
||||
{
|
||||
Name: "myfield3",
|
||||
Oid: ".1.0.0.3.1.3",
|
||||
SecondaryIndexTable: true,
|
||||
},
|
||||
{
|
||||
Name: "myfield4",
|
||||
Oid: ".1.0.0.0.1.1",
|
||||
SecondaryIndexUse: true,
|
||||
IsTag: true,
|
||||
},
|
||||
{
|
||||
Name: "myfield5",
|
||||
Oid: ".1.0.0.0.1.2",
|
||||
SecondaryIndexUse: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
tb, err := tbl.Build(tsc, true)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, "mytable", tb.Name)
|
||||
rtr1 := RTableRow{
|
||||
Tags: map[string]string{
|
||||
"myfield1": "instance",
|
||||
"myfield4": "bar",
|
||||
"index": "10",
|
||||
},
|
||||
Fields: map[string]interface{}{
|
||||
"myfield2": 10,
|
||||
"myfield3": 1,
|
||||
"myfield5": 2,
|
||||
},
|
||||
}
|
||||
rtr2 := RTableRow{
|
||||
Tags: map[string]string{
|
||||
"myfield1": "instance2",
|
||||
"index": "11",
|
||||
},
|
||||
Fields: map[string]interface{}{
|
||||
"myfield2": 20,
|
||||
"myfield3": 2,
|
||||
"myfield5": 0,
|
||||
},
|
||||
}
|
||||
rtr3 := RTableRow{
|
||||
Tags: map[string]string{
|
||||
"myfield1": "instance3",
|
||||
"index": "12",
|
||||
},
|
||||
Fields: map[string]interface{}{
|
||||
"myfield2": 20,
|
||||
"myfield3": 3,
|
||||
},
|
||||
}
|
||||
require.Len(t, tb.Rows, 3)
|
||||
require.Contains(t, tb.Rows, rtr1)
|
||||
require.Contains(t, tb.Rows, rtr2)
|
||||
require.Contains(t, tb.Rows, rtr3)
|
||||
}
|
||||
|
||||
func TestTableOuterJoin_walk(t *testing.T) {
|
||||
tbl := Table{
|
||||
Name: "mytable",
|
||||
IndexAsTag: true,
|
||||
Fields: []Field{
|
||||
{
|
||||
Name: "myfield1",
|
||||
Oid: ".1.0.0.3.1.1",
|
||||
IsTag: true,
|
||||
},
|
||||
{
|
||||
Name: "myfield2",
|
||||
Oid: ".1.0.0.3.1.2",
|
||||
},
|
||||
{
|
||||
Name: "myfield3",
|
||||
Oid: ".1.0.0.3.1.3",
|
||||
SecondaryIndexTable: true,
|
||||
SecondaryOuterJoin: true,
|
||||
},
|
||||
{
|
||||
Name: "myfield4",
|
||||
Oid: ".1.0.0.0.1.1",
|
||||
SecondaryIndexUse: true,
|
||||
IsTag: true,
|
||||
},
|
||||
{
|
||||
Name: "myfield5",
|
||||
Oid: ".1.0.0.0.1.2",
|
||||
SecondaryIndexUse: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
tb, err := tbl.Build(tsc, true)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, "mytable", tb.Name)
|
||||
rtr1 := RTableRow{
|
||||
Tags: map[string]string{
|
||||
"myfield1": "instance",
|
||||
"myfield4": "bar",
|
||||
"index": "10",
|
||||
},
|
||||
Fields: map[string]interface{}{
|
||||
"myfield2": 10,
|
||||
"myfield3": 1,
|
||||
"myfield5": 2,
|
||||
},
|
||||
}
|
||||
rtr2 := RTableRow{
|
||||
Tags: map[string]string{
|
||||
"myfield1": "instance2",
|
||||
"index": "11",
|
||||
},
|
||||
Fields: map[string]interface{}{
|
||||
"myfield2": 20,
|
||||
"myfield3": 2,
|
||||
"myfield5": 0,
|
||||
},
|
||||
}
|
||||
rtr3 := RTableRow{
|
||||
Tags: map[string]string{
|
||||
"myfield1": "instance3",
|
||||
"index": "12",
|
||||
},
|
||||
Fields: map[string]interface{}{
|
||||
"myfield2": 20,
|
||||
"myfield3": 3,
|
||||
},
|
||||
}
|
||||
rtr4 := RTableRow{
|
||||
Tags: map[string]string{
|
||||
"index": "Secondary.0",
|
||||
"myfield4": "foo",
|
||||
},
|
||||
Fields: map[string]interface{}{
|
||||
"myfield5": 1,
|
||||
},
|
||||
}
|
||||
require.Len(t, tb.Rows, 4)
|
||||
require.Contains(t, tb.Rows, rtr1)
|
||||
require.Contains(t, tb.Rows, rtr2)
|
||||
require.Contains(t, tb.Rows, rtr3)
|
||||
require.Contains(t, tb.Rows, rtr4)
|
||||
}
|
||||
|
||||
func TestTableJoinNoIndexAsTag_walk(t *testing.T) {
|
||||
tbl := Table{
|
||||
Name: "mytable",
|
||||
IndexAsTag: false,
|
||||
Fields: []Field{
|
||||
{
|
||||
Name: "myfield1",
|
||||
Oid: ".1.0.0.3.1.1",
|
||||
IsTag: true,
|
||||
},
|
||||
{
|
||||
Name: "myfield2",
|
||||
Oid: ".1.0.0.3.1.2",
|
||||
},
|
||||
{
|
||||
Name: "myfield3",
|
||||
Oid: ".1.0.0.3.1.3",
|
||||
SecondaryIndexTable: true,
|
||||
},
|
||||
{
|
||||
Name: "myfield4",
|
||||
Oid: ".1.0.0.0.1.1",
|
||||
SecondaryIndexUse: true,
|
||||
IsTag: true,
|
||||
},
|
||||
{
|
||||
Name: "myfield5",
|
||||
Oid: ".1.0.0.0.1.2",
|
||||
SecondaryIndexUse: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
tb, err := tbl.Build(tsc, true)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, "mytable", tb.Name)
|
||||
rtr1 := RTableRow{
|
||||
Tags: map[string]string{
|
||||
"myfield1": "instance",
|
||||
"myfield4": "bar",
|
||||
// "index": "10",
|
||||
},
|
||||
Fields: map[string]interface{}{
|
||||
"myfield2": 10,
|
||||
"myfield3": 1,
|
||||
"myfield5": 2,
|
||||
},
|
||||
}
|
||||
rtr2 := RTableRow{
|
||||
Tags: map[string]string{
|
||||
"myfield1": "instance2",
|
||||
// "index": "11",
|
||||
},
|
||||
Fields: map[string]interface{}{
|
||||
"myfield2": 20,
|
||||
"myfield3": 2,
|
||||
"myfield5": 0,
|
||||
},
|
||||
}
|
||||
rtr3 := RTableRow{
|
||||
Tags: map[string]string{
|
||||
"myfield1": "instance3",
|
||||
// "index": "12",
|
||||
},
|
||||
Fields: map[string]interface{}{
|
||||
"myfield2": 20,
|
||||
"myfield3": 3,
|
||||
},
|
||||
}
|
||||
require.Len(t, tb.Rows, 3)
|
||||
require.Contains(t, tb.Rows, rtr1)
|
||||
require.Contains(t, tb.Rows, rtr2)
|
||||
require.Contains(t, tb.Rows, rtr3)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue