mirror of https://github.com/bjdgyc/anylink.git
增加测试覆盖率
This commit is contained in:
parent
d40b753871
commit
103329c3d0
15
.travis.yml
15
.travis.yml
|
@ -1,15 +0,0 @@
|
|||
language: go
|
||||
|
||||
go:
|
||||
- 1.15
|
||||
- tip
|
||||
|
||||
before_install:
|
||||
- go get -t -v ./...
|
||||
|
||||
script:
|
||||
- go test -race -coverprofile=coverage.txt -covermode=atomic
|
||||
|
||||
after_success:
|
||||
- bash <(curl -s https://codecov.io/bash)
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
# AnyLink
|
||||
|
||||
[](https://pkg.go.dev/github.com/bjdgyc/anylink)
|
||||
[](https://goreportcard.com/report/github.com/bjdgyc/anylink)
|
||||
[](https://codecov.io/gh/bjdgyc/anylink)
|
||||
|
||||
AnyLink 是一个企业级远程办公ssl vpn软件,可以支持多人同时在线使用。
|
||||
|
||||
|
@ -52,7 +54,7 @@ sudo ./anylink -conf="conf/server.toml"
|
|||
- [x] 流量控制
|
||||
- [x] 后台管理界面
|
||||
- [x] 访问权限管理
|
||||
|
||||
|
||||
- [ ] DTLS-UDP通道
|
||||
|
||||
## Config
|
||||
|
|
|
@ -12,27 +12,35 @@ import (
|
|||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func preIpData() {
|
||||
func preData(tmpDir string) {
|
||||
tmpDb := path.Join(tmpDir, "test.db")
|
||||
base.Cfg.DbFile = tmpDb
|
||||
base.Cfg.Ipv4Network = "192.168.3.0"
|
||||
base.Cfg.Ipv4Netmask = "255.255.255.0"
|
||||
base.Cfg.Ipv4Pool = []string{"192.168.3.1", "192.168.3.199"}
|
||||
tmpDb := path.Join(os.TempDir(), "anylink_test.db")
|
||||
base.Cfg.DbFile = tmpDb
|
||||
base.Cfg.MaxClient = 100
|
||||
base.Cfg.MaxUserClient = 3
|
||||
|
||||
dbdata.Start()
|
||||
group := dbdata.Group{
|
||||
Name: "group1",
|
||||
Bandwidth: 1000,
|
||||
}
|
||||
dbdata.Save(&group)
|
||||
initIpPool()
|
||||
}
|
||||
|
||||
func closeIpdata() {
|
||||
func cleardata(tmpDir string) {
|
||||
dbdata.Stop()
|
||||
tmpDb := path.Join(os.TempDir(), "anylink_test.db")
|
||||
tmpDb := path.Join(tmpDir, "test.db")
|
||||
os.Remove(tmpDb)
|
||||
}
|
||||
|
||||
func TestIpPool(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
preIpData()
|
||||
defer closeIpdata()
|
||||
|
||||
initIpPool()
|
||||
tmp := t.TempDir()
|
||||
preData(tmp)
|
||||
defer cleardata(tmp)
|
||||
|
||||
var ip net.IP
|
||||
|
||||
|
@ -50,7 +58,7 @@ func TestIpPool(t *testing.T) {
|
|||
|
||||
ReleaseIp(net.IPv4(192, 168, 3, 88), "mac-88")
|
||||
ReleaseIp(net.IPv4(192, 168, 3, 77), "mac-77")
|
||||
// 最早过期的ip
|
||||
// 从头循环获取可用ip
|
||||
ip = AcquireIp("user", "mac-release-new")
|
||||
assert.True(net.IPv4(192, 168, 3, 88).Equal(ip))
|
||||
assert.True(net.IPv4(192, 168, 3, 77).Equal(ip))
|
||||
}
|
||||
|
|
|
@ -18,10 +18,16 @@ func TestNewSession(t *testing.T) {
|
|||
|
||||
func TestConnSession(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
preIpData()
|
||||
defer closeIpdata()
|
||||
tmp := t.TempDir()
|
||||
preData(tmp)
|
||||
defer cleardata(tmp)
|
||||
|
||||
sess := NewSession("")
|
||||
sess.Group = "group1"
|
||||
sess.MacAddr = "00:15:5d:50:14:43"
|
||||
|
||||
cSess := sess.NewConn()
|
||||
|
||||
cSess.RateLimit(100, true)
|
||||
assert.Equal(cSess.BandwidthUp, uint32(100))
|
||||
cSess.RateLimit(200, false)
|
||||
|
|
Loading…
Reference in New Issue