diff --git a/internal/host_endianess_be.go b/internal/host_endianess_be.go new file mode 100644 index 000000000..0d0b45d77 --- /dev/null +++ b/internal/host_endianess_be.go @@ -0,0 +1,7 @@ +//go:build armbe || arm64be || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || sparc || sparc64 + +package internal + +import "encoding/binary" + +var HostEndianess = binary.BigEndian diff --git a/internal/host_endianess_le.go b/internal/host_endianess_le.go new file mode 100644 index 000000000..6871a30c8 --- /dev/null +++ b/internal/host_endianess_le.go @@ -0,0 +1,7 @@ +//go:build 386 || amd64 || amd64p32 || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || ppc64le || riscv || riscv64 || wasm + +package internal + +import "encoding/binary" + +var HostEndianess = binary.LittleEndian diff --git a/plugins/parsers/binary/entry_test.go b/plugins/parsers/binary/entry_test.go index 5dff01eab..12e6f052a 100644 --- a/plugins/parsers/binary/entry_test.go +++ b/plugins/parsers/binary/entry_test.go @@ -4,6 +4,7 @@ import ( "testing" "time" + "github.com/influxdata/telegraf/internal" "github.com/stretchr/testify/require" ) @@ -19,7 +20,7 @@ func TestEntryConvertType(t *testing.T) { testdata := []byte{0x01, 0x02, 0x03, 0x04} e := &Entry{Type: "garbage"} - _, err := e.convertType(testdata, hostEndianess) + _, err := e.convertType(testdata, internal.HostEndianess) require.EqualError(t, err, `cannot handle type "garbage"`) } @@ -27,16 +28,16 @@ func TestEntryConvertTimeType(t *testing.T) { testdata := []byte{0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09} e := &Entry{Type: "unix_ns", location: time.UTC} - _, err := e.convertTimeType(testdata, hostEndianess) + _, err := e.convertTimeType(testdata, internal.HostEndianess) require.EqualError(t, err, `too many bytes 9 vs 8`) } func TestConvertNumericType(t *testing.T) { testdata := []byte{0x01, 0x02, 0x03, 0x04} - _, err := convertNumericType(testdata, "garbage", hostEndianess) + _, err := convertNumericType(testdata, "garbage", internal.HostEndianess) require.EqualError(t, err, `cannot determine length for type "garbage"`) - _, err = convertNumericType(testdata, "uint8", hostEndianess) + _, err = convertNumericType(testdata, "uint8", internal.HostEndianess) require.EqualError(t, err, `too many bytes 4 vs 1`) } diff --git a/plugins/parsers/binary/host_endianess_be.go b/plugins/parsers/binary/host_endianess_be.go deleted file mode 100644 index 0dc1929cd..000000000 --- a/plugins/parsers/binary/host_endianess_be.go +++ /dev/null @@ -1,8 +0,0 @@ -//go:build arm64be -// +build arm64be - -package binary - -import "encoding/binary" - -var hostEndianess = binary.BigEndian diff --git a/plugins/parsers/binary/host_endianess_le.go b/plugins/parsers/binary/host_endianess_le.go deleted file mode 100644 index 2f64625a6..000000000 --- a/plugins/parsers/binary/host_endianess_le.go +++ /dev/null @@ -1,8 +0,0 @@ -//go:build !arm64be -// +build !arm64be - -package binary - -import "encoding/binary" - -var hostEndianess = binary.LittleEndian diff --git a/plugins/parsers/binary/parser.go b/plugins/parsers/binary/parser.go index cf8abbe4d..7f3212101 100644 --- a/plugins/parsers/binary/parser.go +++ b/plugins/parsers/binary/parser.go @@ -9,6 +9,7 @@ import ( "time" "github.com/influxdata/telegraf" + "github.com/influxdata/telegraf/internal" "github.com/influxdata/telegraf/plugins/parsers" ) @@ -31,7 +32,7 @@ func (p *Parser) Init() error { case "be": p.converter = binary.BigEndian case "", "host": - p.converter = hostEndianess + p.converter = internal.HostEndianess default: return fmt.Errorf("unknown endianess %q", p.Endianess) } diff --git a/plugins/parsers/binary/parser_test.go b/plugins/parsers/binary/parser_test.go index d22951021..5f11f355d 100644 --- a/plugins/parsers/binary/parser_test.go +++ b/plugins/parsers/binary/parser_test.go @@ -13,6 +13,7 @@ import ( "github.com/google/go-cmp/cmp" "github.com/influxdata/telegraf" "github.com/influxdata/telegraf/config" + "github.com/influxdata/telegraf/internal" "github.com/influxdata/telegraf/metric" "github.com/influxdata/telegraf/plugins/inputs" "github.com/influxdata/telegraf/plugins/inputs/file" @@ -56,7 +57,7 @@ func determineEndianess(endianess string) binary.ByteOrder { case "be": return binary.BigEndian case "host": - return hostEndianess + return internal.HostEndianess } panic(fmt.Errorf("unknown endianess %q", endianess)) } @@ -218,7 +219,7 @@ func TestFilterNoMatch(t *testing.T) { } require.NoError(t, parser.Init()) - data, err := generateBinary(testdata, hostEndianess) + data, err := generateBinary(testdata, internal.HostEndianess) require.NoError(t, err) _, err = parser.Parse(data) @@ -239,7 +240,7 @@ func TestFilterNoMatch(t *testing.T) { } require.NoError(t, parser.Init()) - data, err := generateBinary(testdata, hostEndianess) + data, err := generateBinary(testdata, internal.HostEndianess) require.NoError(t, err) metrics, err := parser.Parse(data) @@ -389,7 +390,7 @@ func TestFilterLength(t *testing.T) { } require.NoError(t, parser.Init()) - data, err := generateBinary(tt.data, hostEndianess) + data, err := generateBinary(tt.data, internal.HostEndianess) require.NoError(t, err) metrics, err := parser.Parse(data)