增加测试覆盖率

This commit is contained in:
bjd 2021-02-03 11:44:25 +08:00
parent d40b753871
commit 103329c3d0
4 changed files with 30 additions and 29 deletions

View File

@ -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)

View File

@ -1,6 +1,8 @@
# AnyLink # AnyLink
[![PkgGoDev](https://pkg.go.dev/badge/github.com/bjdgyc/anylink)](https://pkg.go.dev/github.com/bjdgyc/anylink) [![PkgGoDev](https://pkg.go.dev/badge/github.com/bjdgyc/anylink)](https://pkg.go.dev/github.com/bjdgyc/anylink)
[![Go Report Card](https://goreportcard.com/badge/github.com/bjdgyc/anylink)](https://goreportcard.com/report/github.com/bjdgyc/anylink)
[![codecov](https://codecov.io/gh/bjdgyc/anylink/branch/master/graph/badge.svg)](https://codecov.io/gh/bjdgyc/anylink)
AnyLink 是一个企业级远程办公ssl vpn软件可以支持多人同时在线使用。 AnyLink 是一个企业级远程办公ssl vpn软件可以支持多人同时在线使用。

View File

@ -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))
} }

View File

@ -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)