control_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package gocql
  2. import (
  3. "net"
  4. "testing"
  5. )
  6. func TestHostInfo_Lookup(t *testing.T) {
  7. hostLookupPreferV4 = true
  8. defer func() { hostLookupPreferV4 = false }()
  9. tests := [...]struct {
  10. addr string
  11. ip net.IP
  12. }{
  13. {"127.0.0.1", net.IPv4(127, 0, 0, 1)},
  14. {"localhost", net.IPv4(127, 0, 0, 1)}, // TODO: this may be host dependant
  15. }
  16. for i, test := range tests {
  17. host, err := hostInfo(test.addr, 1)
  18. if err != nil {
  19. t.Errorf("%d: %v", i, err)
  20. continue
  21. }
  22. if !host.peer.Equal(test.ip) {
  23. t.Errorf("expected ip %v got %v for addr %q", test.ip, host.peer, test.addr)
  24. }
  25. }
  26. }
  27. func TestParseProtocol(t *testing.T) {
  28. tests := [...]struct {
  29. err error
  30. proto int
  31. }{
  32. {
  33. err: &protocolError{
  34. frame: errorFrame{
  35. code: 0x10,
  36. message: "Invalid or unsupported protocol version (5); the lowest supported version is 3 and the greatest is 4",
  37. },
  38. },
  39. proto: 4,
  40. },
  41. {
  42. err: &protocolError{
  43. frame: errorFrame{
  44. frameHeader: frameHeader{
  45. version: 0x83,
  46. },
  47. code: 0x10,
  48. message: "Invalid or unsupported protocol version: 5",
  49. },
  50. },
  51. proto: 3,
  52. },
  53. }
  54. for i, test := range tests {
  55. if proto := parseProtocolFromError(test.err); proto != test.proto {
  56. t.Errorf("%d: exepcted proto %d got %d", i, test.proto, proto)
  57. }
  58. }
  59. }