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
|
# AnyLink
|
||||||
|
|
||||||
[](https://pkg.go.dev/github.com/bjdgyc/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软件,可以支持多人同时在线使用。
|
AnyLink 是一个企业级远程办公ssl vpn软件,可以支持多人同时在线使用。
|
||||||
|
|
||||||
|
|
|
@ -12,27 +12,35 @@ import (
|
||||||
"github.com/stretchr/testify/assert"
|
"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.Ipv4Network = "192.168.3.0"
|
||||||
base.Cfg.Ipv4Netmask = "255.255.255.0"
|
base.Cfg.Ipv4Netmask = "255.255.255.0"
|
||||||
base.Cfg.Ipv4Pool = []string{"192.168.3.1", "192.168.3.199"}
|
base.Cfg.Ipv4Pool = []string{"192.168.3.1", "192.168.3.199"}
|
||||||
tmpDb := path.Join(os.TempDir(), "anylink_test.db")
|
base.Cfg.MaxClient = 100
|
||||||
base.Cfg.DbFile = tmpDb
|
base.Cfg.MaxUserClient = 3
|
||||||
|
|
||||||
dbdata.Start()
|
dbdata.Start()
|
||||||
|
group := dbdata.Group{
|
||||||
|
Name: "group1",
|
||||||
|
Bandwidth: 1000,
|
||||||
|
}
|
||||||
|
dbdata.Save(&group)
|
||||||
|
initIpPool()
|
||||||
}
|
}
|
||||||
|
|
||||||
func closeIpdata() {
|
func cleardata(tmpDir string) {
|
||||||
dbdata.Stop()
|
dbdata.Stop()
|
||||||
tmpDb := path.Join(os.TempDir(), "anylink_test.db")
|
tmpDb := path.Join(tmpDir, "test.db")
|
||||||
os.Remove(tmpDb)
|
os.Remove(tmpDb)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestIpPool(t *testing.T) {
|
func TestIpPool(t *testing.T) {
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
preIpData()
|
tmp := t.TempDir()
|
||||||
defer closeIpdata()
|
preData(tmp)
|
||||||
|
defer cleardata(tmp)
|
||||||
initIpPool()
|
|
||||||
|
|
||||||
var ip net.IP
|
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, 88), "mac-88")
|
||||||
ReleaseIp(net.IPv4(192, 168, 3, 77), "mac-77")
|
ReleaseIp(net.IPv4(192, 168, 3, 77), "mac-77")
|
||||||
// 最早过期的ip
|
// 从头循环获取可用ip
|
||||||
ip = AcquireIp("user", "mac-release-new")
|
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) {
|
func TestConnSession(t *testing.T) {
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
preIpData()
|
tmp := t.TempDir()
|
||||||
defer closeIpdata()
|
preData(tmp)
|
||||||
|
defer cleardata(tmp)
|
||||||
|
|
||||||
sess := NewSession("")
|
sess := NewSession("")
|
||||||
|
sess.Group = "group1"
|
||||||
|
sess.MacAddr = "00:15:5d:50:14:43"
|
||||||
|
|
||||||
cSess := sess.NewConn()
|
cSess := sess.NewConn()
|
||||||
|
|
||||||
cSess.RateLimit(100, true)
|
cSess.RateLimit(100, true)
|
||||||
assert.Equal(cSess.BandwidthUp, uint32(100))
|
assert.Equal(cSess.BandwidthUp, uint32(100))
|
||||||
cSess.RateLimit(200, false)
|
cSess.RateLimit(200, false)
|
||||||
|
|
Loading…
Reference in New Issue