| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package protocol_test
- import (
- "testing"
- "time"
- "v2ray.com/core/common/net"
- . "v2ray.com/core/common/protocol"
- . "v2ray.com/ext/assert"
- )
- func TestServerList(t *testing.T) {
- assert := With(t)
- list := NewServerList()
- list.AddServer(NewServerSpec(net.TCPDestination(net.LocalHostIP, net.Port(1)), AlwaysValid()))
- assert(list.Size(), Equals, uint32(1))
- list.AddServer(NewServerSpec(net.TCPDestination(net.LocalHostIP, net.Port(2)), BeforeTime(time.Now().Add(time.Second))))
- assert(list.Size(), Equals, uint32(2))
- server := list.GetServer(1)
- assert(server.Destination().Port, Equals, net.Port(2))
- time.Sleep(2 * time.Second)
- server = list.GetServer(1)
- assert(server, IsNil)
- server = list.GetServer(0)
- assert(server.Destination().Port, Equals, net.Port(1))
- }
- func TestServerPicker(t *testing.T) {
- assert := With(t)
- list := NewServerList()
- list.AddServer(NewServerSpec(net.TCPDestination(net.LocalHostIP, net.Port(1)), AlwaysValid()))
- list.AddServer(NewServerSpec(net.TCPDestination(net.LocalHostIP, net.Port(2)), BeforeTime(time.Now().Add(time.Second))))
- list.AddServer(NewServerSpec(net.TCPDestination(net.LocalHostIP, net.Port(3)), BeforeTime(time.Now().Add(time.Second))))
- picker := NewRoundRobinServerPicker(list)
- server := picker.PickServer()
- assert(server.Destination().Port, Equals, net.Port(1))
- server = picker.PickServer()
- assert(server.Destination().Port, Equals, net.Port(2))
- server = picker.PickServer()
- assert(server.Destination().Port, Equals, net.Port(3))
- server = picker.PickServer()
- assert(server.Destination().Port, Equals, net.Port(1))
- time.Sleep(2 * time.Second)
- server = picker.PickServer()
- assert(server.Destination().Port, Equals, net.Port(1))
- server = picker.PickServer()
- assert(server.Destination().Port, Equals, net.Port(1))
- }
|