host_test.go 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package logic
  2. import (
  3. "context"
  4. "fmt"
  5. "net"
  6. "os"
  7. "testing"
  8. "github.com/google/uuid"
  9. "github.com/gravitl/netmaker/database"
  10. "github.com/gravitl/netmaker/models"
  11. "github.com/matryer/is"
  12. )
  13. func TestMain(m *testing.M) {
  14. database.InitializeDatabase()
  15. defer database.CloseDB()
  16. peerUpdate := make(chan *models.Node)
  17. go ManageZombies(context.Background(), peerUpdate)
  18. go func() {
  19. for y := range peerUpdate {
  20. fmt.Printf("Pointless %v\n", y)
  21. //do nothing
  22. }
  23. }()
  24. os.Exit(m.Run())
  25. }
  26. func TestCheckPorts(t *testing.T) {
  27. h := models.Host{
  28. ID: uuid.New(),
  29. EndpointIP: net.ParseIP("192.168.1.1"),
  30. ListenPort: 51821,
  31. ProxyListenPort: maxPort,
  32. }
  33. testHost := models.Host{
  34. ID: uuid.New(),
  35. EndpointIP: net.ParseIP("192.168.1.1"),
  36. ListenPort: 51830,
  37. ProxyListenPort: 51730,
  38. }
  39. CreateHost(&h)
  40. t.Run("no change", func(t *testing.T) {
  41. is := is.New(t)
  42. CheckHostPorts(&testHost)
  43. t.Log(testHost.ListenPort, testHost.ProxyListenPort)
  44. t.Log(h.ListenPort, h.ProxyListenPort)
  45. is.Equal(testHost.ListenPort, 51830)
  46. is.Equal(testHost.ProxyListenPort, 51730)
  47. })
  48. t.Run("same listen port", func(t *testing.T) {
  49. is := is.New(t)
  50. testHost.ListenPort = 51821
  51. CheckHostPorts(&testHost)
  52. t.Log(testHost.ListenPort, testHost.ProxyListenPort)
  53. t.Log(h.ListenPort, h.ProxyListenPort)
  54. is.Equal(testHost.ListenPort, 51822)
  55. is.Equal(testHost.ProxyListenPort, 51730)
  56. })
  57. t.Run("same proxy port", func(t *testing.T) {
  58. is := is.New(t)
  59. testHost.ProxyListenPort = 65535
  60. CheckHostPorts(&testHost)
  61. t.Log(testHost.ListenPort, testHost.ProxyListenPort)
  62. t.Log(h.ListenPort, h.ProxyListenPort)
  63. is.Equal(testHost.ListenPort, 51822)
  64. is.Equal(testHost.ProxyListenPort, minPort)
  65. })
  66. t.Run("listenport equals proxy port", func(t *testing.T) {
  67. is := is.New(t)
  68. testHost.ListenPort = maxPort
  69. CheckHostPorts(&testHost)
  70. t.Log(testHost.ListenPort, testHost.ProxyListenPort)
  71. t.Log(h.ListenPort, h.ProxyListenPort)
  72. is.Equal(testHost.ListenPort, minPort)
  73. is.Equal(testHost.ProxyListenPort, minPort+1)
  74. })
  75. t.Run("proxyport equals listenport", func(t *testing.T) {
  76. is := is.New(t)
  77. testHost.ProxyListenPort = 51821
  78. CheckHostPorts(&testHost)
  79. t.Log(testHost.ListenPort, testHost.ProxyListenPort)
  80. t.Log(h.ListenPort, h.ProxyListenPort)
  81. is.Equal(testHost.ListenPort, minPort)
  82. is.Equal(testHost.ProxyListenPort, 51822)
  83. })
  84. }