Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
企猫商务
frp
提交
48fa618c
F
frp
项目概览
企猫商务
/
frp
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
frp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
48fa618c
编写于
9月 07, 2020
作者:
F
fatedier
提交者:
GitHub
9月 07, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update e2e tests (#1973)
上级
c9fe23eb
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
38 addition
and
435 deletion
+38
-435
client/service.go
client/service.go
+3
-1
test/e2e/basic/client_server.go
test/e2e/basic/client_server.go
+35
-15
tests/ci/auth_test.go
tests/ci/auth_test.go
+0
-72
tests/ci/normal_test.go
tests/ci/normal_test.go
+0
-67
tests/ci/tls_test.go
tests/ci/tls_test.go
+0
-280
未找到文件。
client/service.go
浏览文件 @
48fa618c
...
...
@@ -293,6 +293,8 @@ func (svr *Service) ReloadConf(pxyCfgs map[string]config.ProxyConf, visitorCfgs
func
(
svr
*
Service
)
Close
()
{
atomic
.
StoreUint32
(
&
svr
.
exit
,
1
)
svr
.
ctl
.
Close
()
if
svr
.
ctl
!=
nil
{
svr
.
ctl
.
Close
()
}
svr
.
cancel
()
}
test/e2e/basic/client_server.go
浏览文件 @
48fa618c
...
...
@@ -2,6 +2,7 @@ package basic
import
(
"fmt"
"strings"
"github.com/fatedier/frp/test/e2e/framework"
"github.com/fatedier/frp/test/e2e/framework/consts"
...
...
@@ -75,21 +76,40 @@ var _ = Describe("[Feature: Client-Server]", func() {
})
Describe
(
"Authentication"
,
func
()
{
func
()
{
configures
:=
&
generalTestConfigures
{
server
:
"token = 123456"
,
client
:
"token = 123456"
,
}
defineClientServerTest
(
"Token Correct"
,
f
,
configures
)
}()
defineClientServerTest
(
"Token Correct"
,
f
,
&
generalTestConfigures
{
server
:
"token = 123456"
,
client
:
"token = 123456"
,
})
func
()
{
configures
:=
&
generalTestConfigures
{
server
:
"token = 123456"
,
client
:
"token = invalid"
,
expectError
:
true
,
}
defineClientServerTest
(
"Token Incorrect"
,
f
,
configures
)
}()
defineClientServerTest
(
"Token Incorrect"
,
f
,
&
generalTestConfigures
{
server
:
"token = 123456"
,
client
:
"token = invalid"
,
expectError
:
true
,
})
})
Describe
(
"TLS"
,
func
()
{
supportProtocols
:=
[]
string
{
"tcp"
,
"kcp"
,
"websocket"
}
for
_
,
protocol
:=
range
supportProtocols
{
tmp
:=
protocol
defineClientServerTest
(
"TLS over "
+
strings
.
ToUpper
(
tmp
),
f
,
&
generalTestConfigures
{
server
:
fmt
.
Sprintf
(
`
kcp_bind_port = {{ .%s }}
protocol = %s
`
,
consts
.
PortServerName
,
protocol
),
client
:
fmt
.
Sprintf
(
`tls_enable = true
protocol = %s
`
,
protocol
),
})
}
defineClientServerTest
(
"enable tls_only, client with TLS"
,
f
,
&
generalTestConfigures
{
server
:
"tls_only = true"
,
client
:
"tls_enable = true"
,
})
defineClientServerTest
(
"enable tls_only, client without TLS"
,
f
,
&
generalTestConfigures
{
server
:
"tls_only = true"
,
expectError
:
true
,
})
})
})
tests/ci/auth_test.go
已删除
100644 → 0
浏览文件 @
c9fe23eb
package
ci
import
(
"os"
"testing"
"time"
"github.com/fatedier/frp/tests/config"
"github.com/fatedier/frp/tests/consts"
"github.com/fatedier/frp/tests/util"
"github.com/stretchr/testify/assert"
)
const
FRPS_TOKEN_TCP_CONF
=
`
[common]
bind_addr = 0.0.0.0
bind_port = 20000
log_file = console
log_level = debug
authentication_method = token
token = 123456
`
const
FRPC_TOKEN_TCP_CONF
=
`
[common]
server_addr = 127.0.0.1
server_port = 20000
log_file = console
log_level = debug
authentication_method = token
token = 123456
protocol = tcp
[tcp]
type = tcp
local_port = 10701
remote_port = 20801
`
func
TestTCPWithTokenAuthentication
(
t
*
testing
.
T
)
{
assert
:=
assert
.
New
(
t
)
frpsCfgPath
,
err
:=
config
.
GenerateConfigFile
(
consts
.
FRPS_NORMAL_CONFIG
,
FRPS_TOKEN_TCP_CONF
)
if
assert
.
NoError
(
err
)
{
defer
os
.
Remove
(
frpsCfgPath
)
}
frpcCfgPath
,
err
:=
config
.
GenerateConfigFile
(
consts
.
FRPC_NORMAL_CONFIG
,
FRPC_TOKEN_TCP_CONF
)
if
assert
.
NoError
(
err
)
{
defer
os
.
Remove
(
frpcCfgPath
)
}
frpsProcess
:=
util
.
NewProcess
(
consts
.
FRPS_BIN_PATH
,
[]
string
{
"-c"
,
frpsCfgPath
})
err
=
frpsProcess
.
Start
()
if
assert
.
NoError
(
err
)
{
defer
frpsProcess
.
Stop
()
}
time
.
Sleep
(
200
*
time
.
Millisecond
)
frpcProcess
:=
util
.
NewProcess
(
consts
.
FRPC_BIN_PATH
,
[]
string
{
"-c"
,
frpcCfgPath
})
err
=
frpcProcess
.
Start
()
if
assert
.
NoError
(
err
)
{
defer
frpcProcess
.
Stop
()
}
time
.
Sleep
(
500
*
time
.
Millisecond
)
// test tcp
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
)
}
tests/ci/normal_test.go
浏览文件 @
48fa618c
...
...
@@ -61,73 +61,6 @@ func TestMain(m *testing.M) {
os
.
Exit
(
exitCode
)
}
func
TestTCP
(
t
*
testing
.
T
)
{
assert
:=
assert
.
New
(
t
)
// Normal
addr
:=
fmt
.
Sprintf
(
"127.0.0.1:%d"
,
consts
.
TEST_TCP_FRP_PORT
)
res
,
err
:=
util
.
SendTCPMsg
(
addr
,
consts
.
TEST_TCP_ECHO_STR
)
assert
.
NoError
(
err
)
assert
.
Equal
(
consts
.
TEST_TCP_ECHO_STR
,
res
)
// Encrytion and compression
addr
=
fmt
.
Sprintf
(
"127.0.0.1:%d"
,
consts
.
TEST_TCP_EC_FRP_PORT
)
res
,
err
=
util
.
SendTCPMsg
(
addr
,
consts
.
TEST_TCP_ECHO_STR
)
assert
.
NoError
(
err
)
assert
.
Equal
(
consts
.
TEST_TCP_ECHO_STR
,
res
)
}
func
TestUDP
(
t
*
testing
.
T
)
{
assert
:=
assert
.
New
(
t
)
// Normal
addr
:=
fmt
.
Sprintf
(
"127.0.0.1:%d"
,
consts
.
TEST_UDP_FRP_PORT
)
res
,
err
:=
util
.
SendUDPMsg
(
addr
,
consts
.
TEST_UDP_ECHO_STR
)
assert
.
NoError
(
err
)
assert
.
Equal
(
consts
.
TEST_UDP_ECHO_STR
,
res
)
// Encrytion and compression
addr
=
fmt
.
Sprintf
(
"127.0.0.1:%d"
,
consts
.
TEST_UDP_EC_FRP_PORT
)
res
,
err
=
util
.
SendUDPMsg
(
addr
,
consts
.
TEST_UDP_ECHO_STR
)
assert
.
NoError
(
err
)
assert
.
Equal
(
consts
.
TEST_UDP_ECHO_STR
,
res
)
}
func
TestUnixDomain
(
t
*
testing
.
T
)
{
assert
:=
assert
.
New
(
t
)
// Normal
addr
:=
fmt
.
Sprintf
(
"127.0.0.1:%d"
,
consts
.
TEST_UNIX_DOMAIN_FRP_PORT
)
res
,
err
:=
util
.
SendTCPMsg
(
addr
,
consts
.
TEST_UNIX_DOMAIN_STR
)
if
assert
.
NoError
(
err
)
{
assert
.
Equal
(
consts
.
TEST_UNIX_DOMAIN_STR
,
res
)
}
}
func
TestSTCP
(
t
*
testing
.
T
)
{
assert
:=
assert
.
New
(
t
)
// Normal
addr
:=
fmt
.
Sprintf
(
"127.0.0.1:%d"
,
consts
.
TEST_STCP_FRP_PORT
)
res
,
err
:=
util
.
SendTCPMsg
(
addr
,
consts
.
TEST_STCP_ECHO_STR
)
if
assert
.
NoError
(
err
)
{
assert
.
Equal
(
consts
.
TEST_STCP_ECHO_STR
,
res
)
}
// Encrytion and compression
addr
=
fmt
.
Sprintf
(
"127.0.0.1:%d"
,
consts
.
TEST_STCP_EC_FRP_PORT
)
res
,
err
=
util
.
SendTCPMsg
(
addr
,
consts
.
TEST_STCP_ECHO_STR
)
if
assert
.
NoError
(
err
)
{
assert
.
Equal
(
consts
.
TEST_STCP_ECHO_STR
,
res
)
}
}
func
TestSUDP
(
t
*
testing
.
T
)
{
assert
:=
assert
.
New
(
t
)
// Normal
addr
:=
fmt
.
Sprintf
(
"127.0.0.1:%d"
,
consts
.
TEST_SUDP_FRP_PORT
)
res
,
err
:=
util
.
SendUDPMsg
(
addr
,
consts
.
TEST_SUDP_ECHO_STR
)
assert
.
NoError
(
err
)
assert
.
Equal
(
consts
.
TEST_SUDP_ECHO_STR
,
res
)
}
func
TestHTTP
(
t
*
testing
.
T
)
{
assert
:=
assert
.
New
(
t
)
// web01
...
...
tests/ci/tls_test.go
已删除
100644 → 0
浏览文件 @
c9fe23eb
package
ci
import
(
"os"
"testing"
"time"
"github.com/fatedier/frp/tests/config"
"github.com/fatedier/frp/tests/consts"
"github.com/fatedier/frp/tests/util"
"github.com/stretchr/testify/assert"
)
const
FRPS_TLS_TCP_CONF
=
`
[common]
bind_addr = 0.0.0.0
bind_port = 20000
log_file = console
log_level = debug
token = 123456
`
const
FRPC_TLS_TCP_CONF
=
`
[common]
server_addr = 127.0.0.1
server_port = 20000
log_file = console
log_level = debug
token = 123456
protocol = tcp
tls_enable = true
[tcp]
type = tcp
local_port = 10701
remote_port = 20801
`
func
TestTLSOverTCP
(
t
*
testing
.
T
)
{
assert
:=
assert
.
New
(
t
)
frpsCfgPath
,
err
:=
config
.
GenerateConfigFile
(
consts
.
FRPS_NORMAL_CONFIG
,
FRPS_TLS_TCP_CONF
)
if
assert
.
NoError
(
err
)
{
defer
os
.
Remove
(
frpsCfgPath
)
}
frpcCfgPath
,
err
:=
config
.
GenerateConfigFile
(
consts
.
FRPC_NORMAL_CONFIG
,
FRPC_TLS_TCP_CONF
)
if
assert
.
NoError
(
err
)
{
defer
os
.
Remove
(
frpcCfgPath
)
}
frpsProcess
:=
util
.
NewProcess
(
consts
.
FRPS_BIN_PATH
,
[]
string
{
"-c"
,
frpsCfgPath
})
err
=
frpsProcess
.
Start
()
if
assert
.
NoError
(
err
)
{
defer
frpsProcess
.
Stop
()
}
time
.
Sleep
(
200
*
time
.
Millisecond
)
frpcProcess
:=
util
.
NewProcess
(
consts
.
FRPC_BIN_PATH
,
[]
string
{
"-c"
,
frpcCfgPath
})
err
=
frpcProcess
.
Start
()
if
assert
.
NoError
(
err
)
{
defer
frpcProcess
.
Stop
()
}
time
.
Sleep
(
500
*
time
.
Millisecond
)
// test tcp
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
)
}
const
FRPS_TLS_KCP_CONF
=
`
[common]
bind_addr = 0.0.0.0
bind_port = 20000
kcp_bind_port = 20000
log_file = console
log_level = debug
token = 123456
`
const
FRPC_TLS_KCP_CONF
=
`
[common]
server_addr = 127.0.0.1
server_port = 20000
log_file = console
log_level = debug
token = 123456
protocol = kcp
tls_enable = true
[tcp]
type = tcp
local_port = 10701
remote_port = 20801
`
func
TestTLSOverKCP
(
t
*
testing
.
T
)
{
assert
:=
assert
.
New
(
t
)
frpsCfgPath
,
err
:=
config
.
GenerateConfigFile
(
consts
.
FRPS_NORMAL_CONFIG
,
FRPS_TLS_KCP_CONF
)
if
assert
.
NoError
(
err
)
{
defer
os
.
Remove
(
frpsCfgPath
)
}
frpcCfgPath
,
err
:=
config
.
GenerateConfigFile
(
consts
.
FRPC_NORMAL_CONFIG
,
FRPC_TLS_KCP_CONF
)
if
assert
.
NoError
(
err
)
{
defer
os
.
Remove
(
frpcCfgPath
)
}
frpsProcess
:=
util
.
NewProcess
(
consts
.
FRPS_BIN_PATH
,
[]
string
{
"-c"
,
frpsCfgPath
})
err
=
frpsProcess
.
Start
()
if
assert
.
NoError
(
err
)
{
defer
frpsProcess
.
Stop
()
}
time
.
Sleep
(
200
*
time
.
Millisecond
)
frpcProcess
:=
util
.
NewProcess
(
consts
.
FRPC_BIN_PATH
,
[]
string
{
"-c"
,
frpcCfgPath
})
err
=
frpcProcess
.
Start
()
if
assert
.
NoError
(
err
)
{
defer
frpcProcess
.
Stop
()
}
time
.
Sleep
(
500
*
time
.
Millisecond
)
// test tcp
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
)
}
const
FRPS_TLS_WS_CONF
=
`
[common]
bind_addr = 0.0.0.0
bind_port = 20000
log_file = console
log_level = debug
token = 123456
`
const
FRPC_TLS_WS_CONF
=
`
[common]
server_addr = 127.0.0.1
server_port = 20000
log_file = console
log_level = debug
token = 123456
protocol = websocket
tls_enable = true
[tcp]
type = tcp
local_port = 10701
remote_port = 20801
`
func
TestTLSOverWebsocket
(
t
*
testing
.
T
)
{
assert
:=
assert
.
New
(
t
)
frpsCfgPath
,
err
:=
config
.
GenerateConfigFile
(
consts
.
FRPS_NORMAL_CONFIG
,
FRPS_TLS_WS_CONF
)
if
assert
.
NoError
(
err
)
{
defer
os
.
Remove
(
frpsCfgPath
)
}
frpcCfgPath
,
err
:=
config
.
GenerateConfigFile
(
consts
.
FRPC_NORMAL_CONFIG
,
FRPC_TLS_WS_CONF
)
if
assert
.
NoError
(
err
)
{
defer
os
.
Remove
(
frpcCfgPath
)
}
frpsProcess
:=
util
.
NewProcess
(
consts
.
FRPS_BIN_PATH
,
[]
string
{
"-c"
,
frpsCfgPath
})
err
=
frpsProcess
.
Start
()
if
assert
.
NoError
(
err
)
{
defer
frpsProcess
.
Stop
()
}
time
.
Sleep
(
200
*
time
.
Millisecond
)
frpcProcess
:=
util
.
NewProcess
(
consts
.
FRPC_BIN_PATH
,
[]
string
{
"-c"
,
frpcCfgPath
})
err
=
frpcProcess
.
Start
()
if
assert
.
NoError
(
err
)
{
defer
frpcProcess
.
Stop
()
}
time
.
Sleep
(
500
*
time
.
Millisecond
)
// test tcp
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
)
}
const
FRPS_TLS_ONLY_TCP_CONF
=
`
[common]
bind_addr = 0.0.0.0
bind_port = 20000
log_file = console
log_level = debug
token = 123456
tls_only = true
`
const
FRPC_TLS_ONLY_TCP_CONF
=
`
[common]
server_addr = 127.0.0.1
server_port = 20000
log_file = console
log_level = debug
token = 123456
protocol = tcp
tls_enable = true
[tcp]
type = tcp
local_port = 10701
remote_port = 20801
`
const
FRPC_TLS_ONLY_NO_TLS_TCP_CONF
=
`
[common]
server_addr = 127.0.0.1
server_port = 20000
log_file = console
log_level = debug
token = 123456
protocol = tcp
tls_enable = false
[tcp]
type = tcp
local_port = 10701
remote_port = 20802
`
func
TestTLSOnlyOverTCP
(
t
*
testing
.
T
)
{
assert
:=
assert
.
New
(
t
)
frpsCfgPath
,
err
:=
config
.
GenerateConfigFile
(
consts
.
FRPS_NORMAL_CONFIG
,
FRPS_TLS_ONLY_TCP_CONF
)
if
assert
.
NoError
(
err
)
{
defer
os
.
Remove
(
frpsCfgPath
)
}
frpcWithTLSCfgPath
,
err
:=
config
.
GenerateConfigFile
(
consts
.
FRPC_NORMAL_CONFIG
,
FRPC_TLS_ONLY_TCP_CONF
)
if
assert
.
NoError
(
err
)
{
defer
os
.
Remove
(
frpcWithTLSCfgPath
)
}
frpsProcess
:=
util
.
NewProcess
(
consts
.
FRPS_BIN_PATH
,
[]
string
{
"-c"
,
frpsCfgPath
})
err
=
frpsProcess
.
Start
()
if
assert
.
NoError
(
err
)
{
defer
frpsProcess
.
Stop
()
}
time
.
Sleep
(
200
*
time
.
Millisecond
)
frpcProcessWithTLS
:=
util
.
NewProcess
(
consts
.
FRPC_BIN_PATH
,
[]
string
{
"-c"
,
frpcWithTLSCfgPath
})
err
=
frpcProcessWithTLS
.
Start
()
if
assert
.
NoError
(
err
)
{
defer
frpcProcessWithTLS
.
Stop
()
}
time
.
Sleep
(
500
*
time
.
Millisecond
)
// test tcp over TLS
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
)
frpcProcessWithTLS
.
Stop
()
frpcWithoutTLSCfgPath
,
err
:=
config
.
GenerateConfigFile
(
consts
.
FRPC_NORMAL_CONFIG
,
FRPC_TLS_ONLY_NO_TLS_TCP_CONF
)
if
assert
.
NoError
(
err
)
{
defer
os
.
Remove
(
frpcWithTLSCfgPath
)
}
frpcProcessWithoutTLS
:=
util
.
NewProcess
(
consts
.
FRPC_BIN_PATH
,
[]
string
{
"-c"
,
frpcWithoutTLSCfgPath
})
err
=
frpcProcessWithoutTLS
.
Start
()
if
assert
.
NoError
(
err
)
{
defer
frpcProcessWithoutTLS
.
Stop
()
}
time
.
Sleep
(
500
*
time
.
Millisecond
)
// test tcp without TLS
_
,
err
=
util
.
SendTCPMsg
(
"127.0.0.1:20802"
,
consts
.
TEST_TCP_ECHO_STR
)
assert
.
Error
(
err
)
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录