package nvidia_smi import ( "fmt" "testing" "github.com/influxdata/telegraf/testutil" "github.com/stretchr/testify/require" ) var payload = []byte(` GeForce GTX 1070 Ti GPU-f9ba66fc-a7f5-94c5-da19-019ef2f9c665 1 16x 100 % P8 4096 MiB 42 MiB 4054 MiB Default 0 % 0 % 0 0 0 39 C N/A 135 MHz 135 MHz 405 MHz 405 MHz `) func TestGatherSMI(t *testing.T) { var expectedMetric = struct { tags map[string]string fields map[string]interface{} }{ tags: map[string]string{ "name": "GeForce GTX 1070 Ti", "compute_mode": "Default", "index": "0", "pstate": "P8", "uuid": "GPU-f9ba66fc-a7f5-94c5-da19-019ef2f9c665", }, fields: map[string]interface{}{ "fan_speed": 100, "memory_free": 4054, "memory_used": 42, "memory_total": 4096, "temperature_gpu": 39, "utilization_gpu": 0, "utilization_memory": 0, "pcie_link_gen_current": 1, "pcie_link_width_current": 16, "encoder_stats_session_count": 0, "encoder_stats_average_fps": 0, "encoder_stats_average_latency": 0, "clocks_current_graphics": 135, "clocks_current_sm": 135, "clocks_current_memory": 405, "clocks_current_video": 405, }, } acc := &testutil.Accumulator{} gatherNvidiaSMI(payload, acc) fmt.Println() require.Equal(t, 1, len(acc.Metrics)) require.Equal(t, expectedMetric.fields, acc.Metrics[0].Fields) require.Equal(t, expectedMetric.tags, acc.Metrics[0].Tags) }