|
|
|
package ci
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
"time"
|
|
|
|
|
|
|
|
"github.com/fatedier/frp/tests/consts"
|
|
|
|
"github.com/fatedier/frp/tests/util"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestCmdTcp(t *testing.T) {
|
|
|
|
assert := assert.New(t)
|
|
|
|
|
|
|
|
var err error
|
|
|
|
s := util.NewProcess(consts.FRPS_BIN_PATH, []string{"-t", "123", "-p", "20000"})
|
|
|
|
err = s.Start()
|
|
|
|
if assert.NoError(err) {
|
|
|
|
defer s.Stop()
|
|
|
|
}
|
|
|
|
time.Sleep(200 * time.Millisecond)
|
|
|
|
|
|
|
|
c := util.NewProcess(consts.FRPC_BIN_PATH, []string{"tcp", "-s", "127.0.0.1:20000", "-t", "123", "-u", "test",
|
|
|
|
"-l", "10701", "-r", "20801", "-n", "tcp_test"})
|
|
|
|
err = c.Start()
|
|
|
|
if assert.NoError(err) {
|
|
|
|
defer c.Stop()
|
|
|
|
}
|
|
|
|
time.Sleep(500 * time.Millisecond)
|
|
|
|
|
|
|
|
res, err := util.SendTcpMsg("127.0.0.1:20801", consts.TEST_TCP_ECHO_STR)
|
|
|
|
assert.NoError(err)
|
|
|
|
assert.Equal(consts.TEST_TCP_ECHO_STR, res)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestCmdUdp(t *testing.T) {
|
|
|
|
assert := assert.New(t)
|
|
|
|
|
|
|
|
var err error
|
|
|
|
s := util.NewProcess(consts.FRPS_BIN_PATH, []string{"-t", "123", "-p", "20000"})
|
|
|
|
err = s.Start()
|
|
|
|
if assert.NoError(err) {
|
|
|
|
defer s.Stop()
|
|
|
|
}
|
|
|
|
time.Sleep(200 * time.Millisecond)
|
|
|
|
|
|
|
|
c := util.NewProcess(consts.FRPC_BIN_PATH, []string{"udp", "-s", "127.0.0.1:20000", "-t", "123", "-u", "test",
|
|
|
|
"-l", "10702", "-r", "20802", "-n", "udp_test"})
|
|
|
|
err = c.Start()
|
|
|
|
if assert.NoError(err) {
|
|
|
|
defer c.Stop()
|
|
|
|
}
|
|
|
|
time.Sleep(500 * time.Millisecond)
|
|
|
|
|
|
|
|
res, err := util.SendUdpMsg("127.0.0.1:20802", consts.TEST_UDP_ECHO_STR)
|
|
|
|
assert.NoError(err)
|
|
|
|
assert.Equal(consts.TEST_UDP_ECHO_STR, res)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestCmdHttp(t *testing.T) {
|
|
|
|
assert := assert.New(t)
|
|
|
|
|
|
|
|
var err error
|
|
|
|
s := util.NewProcess(consts.FRPS_BIN_PATH, []string{"-t", "123", "-p", "20000", "--vhost_http_port", "20001"})
|
|
|
|
err = s.Start()
|
|
|
|
if assert.NoError(err) {
|
|
|
|
defer s.Stop()
|
|
|
|
}
|
|
|
|
time.Sleep(200 * time.Millisecond)
|
|
|
|
|
|
|
|
c := util.NewProcess(consts.FRPC_BIN_PATH, []string{"http", "-s", "127.0.0.1:20000", "-t", "123", "-u", "test",
|
|
|
|
"-n", "udp_test", "-l", "10704", "--custom_domain", "127.0.0.1"})
|
|
|
|
err = c.Start()
|
|
|
|
if assert.NoError(err) {
|
|
|
|
defer c.Stop()
|
|
|
|
}
|
|
|
|
time.Sleep(500 * time.Millisecond)
|
|
|
|
|
|
|
|
code, body, _, err := util.SendHttpMsg("GET", "http://127.0.0.1:20001", "", nil, "")
|
|
|
|
if assert.NoError(err) {
|
|
|
|
assert.Equal(200, code)
|
|
|
|
assert.Equal(consts.TEST_HTTP_NORMAL_STR, body)
|
|
|
|
}
|
|
|
|
}
|