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
121
plugins/serializers/binary/binary_test.go
Normal file
121
plugins/serializers/binary/binary_test.go
Normal file
|
@ -0,0 +1,121 @@
|
|||
package binary
|
||||
|
||||
import (
|
||||
"encoding/hex"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/influxdata/telegraf/metric"
|
||||
)
|
||||
|
||||
func TestMetricSerialization(t *testing.T) {
|
||||
m := metric.New(
|
||||
"modbus",
|
||||
map[string]string{
|
||||
"tag_1": "ABC",
|
||||
"tag_2": "1.63",
|
||||
},
|
||||
map[string]interface{}{
|
||||
"addr_2": 7,
|
||||
"addr_3": 17001,
|
||||
"addr_4_5": 617001,
|
||||
"addr_6_7": 423.1700134277344,
|
||||
"addr_16_20": "A_B_C_D_E_",
|
||||
"addr_3_sc": 1700.1000000000001,
|
||||
},
|
||||
time.Unix(1703018620, 0),
|
||||
)
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
entries []*Entry
|
||||
expected map[string]string
|
||||
}{
|
||||
{
|
||||
name: "complex metric serialization",
|
||||
entries: []*Entry{
|
||||
{
|
||||
ReadFrom: "field",
|
||||
Name: "addr_3",
|
||||
DataFormat: "int16",
|
||||
},
|
||||
{
|
||||
ReadFrom: "field",
|
||||
Name: "addr_2",
|
||||
DataFormat: "int16",
|
||||
},
|
||||
{
|
||||
ReadFrom: "field",
|
||||
Name: "addr_4_5",
|
||||
DataFormat: "int32",
|
||||
},
|
||||
{
|
||||
ReadFrom: "field",
|
||||
Name: "addr_6_7",
|
||||
DataFormat: "float32",
|
||||
},
|
||||
{
|
||||
ReadFrom: "field",
|
||||
Name: "addr_16_20",
|
||||
DataFormat: "string",
|
||||
StringTerminator: "null",
|
||||
StringLength: 11,
|
||||
},
|
||||
{
|
||||
ReadFrom: "field",
|
||||
Name: "addr_3_sc",
|
||||
DataFormat: "float64",
|
||||
},
|
||||
{
|
||||
ReadFrom: "time",
|
||||
DataFormat: "int32",
|
||||
TimeFormat: "unix",
|
||||
},
|
||||
{
|
||||
ReadFrom: "name",
|
||||
DataFormat: "string",
|
||||
StringTerminator: "null",
|
||||
StringLength: 20,
|
||||
},
|
||||
{
|
||||
ReadFrom: "tag",
|
||||
Name: "tag_1",
|
||||
DataFormat: "string",
|
||||
StringLength: 4,
|
||||
},
|
||||
{
|
||||
ReadFrom: "tag",
|
||||
Name: "tag_2",
|
||||
DataFormat: "float32",
|
||||
},
|
||||
},
|
||||
expected: map[string]string{
|
||||
"little": "69420700296a0900c395d343415f425f435f445f455f006766666666909a407c" +
|
||||
"0082656d6f64627573000000000000000000000000000041424300d7a3d03f",
|
||||
"big": "4269000700096a2943d395c3415f425f435f445f455f00409a90666666666765" +
|
||||
"82007c6d6f646275730000000000000000000000000000414243003fd0a3d7",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range tests {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
for endianness, expected := range tc.expected {
|
||||
serializer := &Serializer{
|
||||
Entries: tc.entries,
|
||||
Endianness: endianness,
|
||||
}
|
||||
|
||||
require.NoError(t, serializer.Init())
|
||||
|
||||
serialized, err := serializer.Serialize(m)
|
||||
actual := hex.EncodeToString(serialized)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, expected, actual)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue