72 lines
2.0 KiB
Go
72 lines
2.0 KiB
Go
package zlimit
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
"go-common/library/cache/redis"
|
|
"go-common/library/container/pool"
|
|
"go-common/library/database/sql"
|
|
xtime "go-common/library/time"
|
|
)
|
|
|
|
func TestZlimit(t *testing.T) {
|
|
c := &Config{
|
|
DB: &sql.Config{
|
|
Addr: "172.16.33.54:3306",
|
|
DSN: "test:test@tcp(172.16.33.54:3306)/bilibili_oversea?timeout=5s&readTimeout=5s&writeTimeout=5s&parseTime=true&loc=Local&charset=utf8,utf8mb4",
|
|
Active: 5,
|
|
Idle: 2,
|
|
},
|
|
Redis: &Redis{
|
|
Config: &redis.Config{
|
|
Config: &pool.Config{
|
|
Active: 20,
|
|
Idle: 10,
|
|
IdleTimeout: xtime.Duration(80 * time.Millisecond),
|
|
},
|
|
Name: "business/zlimit",
|
|
Proto: "tcp",
|
|
Addr: "172.16.33.54:6380",
|
|
DialTimeout: xtime.Duration(50 * time.Millisecond),
|
|
ReadTimeout: xtime.Duration(100 * time.Millisecond),
|
|
WriteTimeout: xtime.Duration(100 * time.Millisecond),
|
|
},
|
|
Expire: xtime.Duration(1 * time.Second),
|
|
},
|
|
IPFile: "/data/conf/iprepo/iprepo.txt",
|
|
FlushTime: xtime.Duration(1 * time.Second),
|
|
}
|
|
s := New(c)
|
|
testFind(t, s, 0, "", "")
|
|
testForbid(t, s, "", "")
|
|
testFindByPid(t, s, []int64{0}, "")
|
|
testFindByGid(t, s, 0, "", "")
|
|
}
|
|
|
|
func testFind(t *testing.T, s *Service, aid int64, ipaddr, cdnip string) {
|
|
ret, retdown, err := s.Find(context.TODO(), aid, ipaddr, cdnip)
|
|
if err != nil {
|
|
t.Errorf("Service: find err: %v", err)
|
|
} else {
|
|
t.Logf("Service: find %d,%d", ret, retdown)
|
|
}
|
|
}
|
|
|
|
func testForbid(t *testing.T, s *Service, pstr, ipaddr string) {
|
|
if err := s.Forbid(context.TODO(), pstr, ipaddr); err != nil {
|
|
t.Errorf("Service: forbid err: %v", err)
|
|
}
|
|
}
|
|
|
|
func testFindByPid(t *testing.T, s *Service, pids []int64, ipaddr string) {
|
|
ret, retdown := s.FindByPid(context.TODO(), pids, ipaddr)
|
|
t.Logf("Service: findByPid %d,%d", ret, retdown)
|
|
}
|
|
|
|
func testFindByGid(t *testing.T, s *Service, gid int64, ipaddr, cdnip string) {
|
|
ret, retdown := s.FindByGid(context.TODO(), gid, ipaddr, cdnip)
|
|
t.Logf("Service: findByGid %d,%d", ret, retdown)
|
|
}
|