| package daemon | |
| import ( | |
| "testing" | |
| "gotest.tools/v3/assert" | |
| ) | |
| func TestGetFirstAvailableVendor(t *testing.T) { | |
| tests := []struct { | |
| name string | |
| vendors []string | |
| expectVendor string | |
| expectError string | |
| }{ | |
| { | |
| name: "NVIDIA vendor", | |
| vendors: []string{"nvidia.com"}, | |
| expectVendor: "nvidia.com", | |
| }, | |
| { | |
| name: "AMD vendor", | |
| vendors: []string{"amd.com"}, | |
| expectVendor: "amd.com", | |
| }, | |
| { | |
| name: "No vendors", | |
| vendors: nil, | |
| expectError: "no known GPU vendor found", | |
| }, | |
| { | |
| name: "Unknown vendor", | |
| vendors: []string{"unknown.com"}, | |
| expectError: "no known GPU vendor found", | |
| }, | |
| { | |
| name: "Mixed vendor", | |
| vendors: []string{"amd.com", "nvidia.com"}, | |
| expectVendor: "nvidia.com", | |
| }, | |
| } | |
| for _, tt := range tests { | |
| t.Run(tt.name, func(t *testing.T) { | |
| vendor, err := getFirstAvailableVendor(tt.vendors) | |
| if tt.expectError != "" { | |
| assert.Error(t, err, tt.expectError) | |
| } else { | |
| assert.NilError(t, err) | |
| assert.Equal(t, tt.expectVendor, vendor) | |
| } | |
| }) | |
| } | |
| } |