|
@@ -12,7 +12,7 @@ import (
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
|
|
"github.com/fatedier/frp/client"
|
|
|
- "github.com/fatedier/frp/server"
|
|
|
+ "github.com/fatedier/frp/server/ports"
|
|
|
|
|
|
gnet "github.com/fatedier/golib/net"
|
|
|
)
|
|
@@ -25,7 +25,9 @@ var (
|
|
|
|
|
|
TEST_STR = "frp is a fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet."
|
|
|
TEST_TCP_PORT int = 10701
|
|
|
+ TEST_TCP2_PORT int = 10702
|
|
|
TEST_TCP_FRP_PORT int = 10801
|
|
|
+ TEST_TCP2_FRP_PORT int = 10802
|
|
|
TEST_TCP_EC_FRP_PORT int = 10901
|
|
|
TEST_TCP_ECHO_STR string = "tcp type:" + TEST_STR
|
|
|
|
|
@@ -62,6 +64,7 @@ var (
|
|
|
|
|
|
func init() {
|
|
|
go StartTcpEchoServer()
|
|
|
+ go StartTcpEchoServer2()
|
|
|
go StartUdpEchoServer()
|
|
|
go StartUnixDomainServer()
|
|
|
go StartHttpServer()
|
|
@@ -226,19 +229,19 @@ func TestAllowPorts(t *testing.T) {
|
|
|
status, err := getProxyStatus(ProxyTcpPortNotAllowed)
|
|
|
if assert.NoError(err) {
|
|
|
assert.Equal(client.ProxyStatusStartErr, status.Status)
|
|
|
- assert.True(strings.Contains(status.Err, server.ErrPortNotAllowed.Error()))
|
|
|
+ assert.True(strings.Contains(status.Err, ports.ErrPortNotAllowed.Error()))
|
|
|
}
|
|
|
|
|
|
status, err = getProxyStatus(ProxyUdpPortNotAllowed)
|
|
|
if assert.NoError(err) {
|
|
|
assert.Equal(client.ProxyStatusStartErr, status.Status)
|
|
|
- assert.True(strings.Contains(status.Err, server.ErrPortNotAllowed.Error()))
|
|
|
+ assert.True(strings.Contains(status.Err, ports.ErrPortNotAllowed.Error()))
|
|
|
}
|
|
|
|
|
|
status, err = getProxyStatus(ProxyTcpPortUnavailable)
|
|
|
if assert.NoError(err) {
|
|
|
assert.Equal(client.ProxyStatusStartErr, status.Status)
|
|
|
- assert.True(strings.Contains(status.Err, server.ErrPortUnAvailable.Error()))
|
|
|
+ assert.True(strings.Contains(status.Err, ports.ErrPortUnAvailable.Error()))
|
|
|
}
|
|
|
|
|
|
// Port normal
|
|
@@ -310,3 +313,25 @@ func TestRangePortsMapping(t *testing.T) {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+func TestGroup(t *testing.T) {
|
|
|
+ assert := assert.New(t)
|
|
|
+
|
|
|
+ var (
|
|
|
+ p1 int
|
|
|
+ p2 int
|
|
|
+ )
|
|
|
+ addr := fmt.Sprintf("127.0.0.1:%d", TEST_TCP2_FRP_PORT)
|
|
|
+
|
|
|
+ for i := 0; i < 6; i++ {
|
|
|
+ res, err := sendTcpMsg(addr, TEST_TCP_ECHO_STR)
|
|
|
+ assert.NoError(err)
|
|
|
+ switch res {
|
|
|
+ case TEST_TCP_ECHO_STR:
|
|
|
+ p1++
|
|
|
+ case TEST_TCP_ECHO_STR + TEST_TCP_ECHO_STR:
|
|
|
+ p2++
|
|
|
+ }
|
|
|
+ }
|
|
|
+ assert.True(p1 > 0 && p2 > 0, "group proxies load balancing")
|
|
|
+}
|