telegraf/plugins/inputs/amd_rocm_smi/amd_rocm_smi_test.go

91 lines
2.5 KiB
Go

package amd_rocm_smi
import (
"os"
"path/filepath"
"testing"
"time"
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/testutil"
"github.com/stretchr/testify/require"
)
func TestGatherValidJSON(t *testing.T) {
tests := []struct {
name string
filename string
expected []telegraf.Metric
}{
{
name: "Vega 10 XT",
filename: "vega-10-XT.json",
expected: []telegraf.Metric{
testutil.MustMetric(
"amd_rocm_smi",
map[string]string{
"gpu_id": "0x6861",
"gpu_unique_id": "0x2150e7d042a1124",
"name": "card0",
},
map[string]interface{}{
"driver_version": 5925,
"fan_speed": 13,
"memory_total": int64(17163091968),
"memory_used": int64(17776640),
"memory_free": int64(17145315328),
"temperature_sensor_edge": 39.0,
"temperature_sensor_junction": 40.0,
"temperature_sensor_memory": 92.0,
"utilization_gpu": 0,
"clocks_current_sm": 1269,
"clocks_current_memory": 167,
"power_draw": 15.0,
},
time.Unix(0, 0)),
},
},
{
name: "Vega 20 WKS GL-XE [Radeon Pro VII]",
filename: "vega-20-WKS-GL-XE.json",
expected: []telegraf.Metric{
testutil.MustMetric(
"amd_rocm_smi",
map[string]string{
"gpu_id": "0x66a1",
"gpu_unique_id": "0x2f048617326b1ea",
"name": "card0",
},
map[string]interface{}{
"driver_version": 5917,
"fan_speed": 0,
"memory_total": int64(34342961152),
"memory_used": int64(10850304),
"memory_free": int64(34332110848),
"temperature_sensor_edge": 36.0,
"temperature_sensor_junction": 38.0,
"temperature_sensor_memory": 35.0,
"utilization_gpu": 0,
"utilization_memory": 0,
"clocks_current_sm": 1725,
"clocks_current_memory": 1000,
"power_draw": 26.0,
},
time.Unix(0, 0)),
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
var acc testutil.Accumulator
octets, err := os.ReadFile(filepath.Join("testdata", tt.filename))
require.NoError(t, err)
err = gatherROCmSMI(octets, &acc)
require.NoError(t, err)
testutil.RequireMetricsEqual(t, tt.expected, acc.GetTelegrafMetrics(), testutil.IgnoreTime())
})
}
}