provider_name_test.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package ike
  2. import (
  3. "net"
  4. "testing"
  5. )
  6. func TestTunnelNameIsStableShortAndUsesCompleteDeviceID(t *testing.T) {
  7. t.Parallel()
  8. first := tunnelName("quectel-0125-1-6")
  9. if first != tunnelName("QUECTEL-0125-1-6") {
  10. t.Fatalf("name is not stable across normalized device IDs: %q", first)
  11. }
  12. if len(first) != 15 {
  13. t.Fatalf("interface name length = %d, want 15", len(first))
  14. }
  15. if first == tunnelName("quectel-0125-1-7") {
  16. t.Fatalf("distinct devices sharing a long prefix received %q", first)
  17. }
  18. }
  19. func TestPCSCFFilterKeepsOnlyAssignedAddressFamilies(t *testing.T) {
  20. t.Parallel()
  21. values := []net.IP{
  22. net.ParseIP("2001:db8::20"),
  23. net.IPv4(10, 127, 192, 82),
  24. }
  25. ipv4 := pcscfForAssignedFamilies(values, true, false)
  26. if len(ipv4) != 1 || ipv4[0].String() != "10.127.192.82" {
  27. t.Fatalf("IPv4 P-CSCF list = %v", ipv4)
  28. }
  29. dual := pcscfForAssignedFamilies(values, true, true)
  30. if len(dual) != 2 {
  31. t.Fatalf("dual-stack P-CSCF list = %v", dual)
  32. }
  33. duplicate := pcscfForAssignedFamilies(
  34. append(values, net.IPv4(10, 127, 192, 82)),
  35. true,
  36. true,
  37. )
  38. if len(duplicate) != 2 {
  39. t.Fatalf("duplicate P-CSCF was not removed: %v", duplicate)
  40. }
  41. }