gpu_test.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package gcp
  2. import "testing"
  3. func TestNormalizeGPULabel(t *testing.T) {
  4. cases := []struct {
  5. desc string
  6. want string
  7. }{
  8. // A100 80GB (A2-Ultra)
  9. {"Nvidia A100 80GB GPU attached to instance", "nvidia-a100-80gb"},
  10. {"Nvidia Tesla A100 80GB GPU (SXM4) in region us-central1", "nvidia-a100-80gb"},
  11. // A100 40GB / generic A100 (A2-HighGPU legacy label)
  12. {"Nvidia Tesla A100 GPU attached", "nvidia-tesla-a100"},
  13. {"Nvidia Tesla A100 40GB GPU", "nvidia-tesla-a100"},
  14. // L4 (G2)
  15. {"NVIDIA L4 GPU attached", "nvidia-l4"},
  16. // T4
  17. {"Tesla T4 GPU", "nvidia-tesla-t4"},
  18. {"NVIDIA T4 accelerator", "nvidia-tesla-t4"},
  19. // V100
  20. {"NVIDIA V100 in use", "nvidia-tesla-v100"},
  21. // P100 – reviewer example, should be handled by regex fallback.
  22. {"Nvidia Tesla P100 GPU running in Melbourne", "nvidia-tesla-p100"},
  23. // No GPU
  24. {"E2 standard instance, no accelerator", ""},
  25. }
  26. for i, tc := range cases {
  27. got := NormalizeGPULabel(tc.desc)
  28. if got != tc.want {
  29. t.Fatalf("case %d: desc=%q: got %q, want %q", i, tc.desc, got, tc.want)
  30. }
  31. }
  32. }