mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-02 14:00:25 +08:00
修复部分测试用例
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,2 +1,3 @@
|
|||||||
*_plus.go
|
*_plus.go
|
||||||
|
*_plus_test.go
|
||||||
*-plus.sh
|
*-plus.sh
|
||||||
9
build/test.sh
Executable file
9
build/test.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
TAG=${1}
|
||||||
|
|
||||||
|
if [ -z "$TAG" ]; then
|
||||||
|
TAG="community"
|
||||||
|
fi
|
||||||
|
|
||||||
|
go test -v ../... -tags=${TAG}
|
||||||
@@ -12,6 +12,11 @@ import (
|
|||||||
|
|
||||||
func TestFileListDB_ListLFUItems(t *testing.T) {
|
func TestFileListDB_ListLFUItems(t *testing.T) {
|
||||||
var db = caches.NewFileListDB()
|
var db = caches.NewFileListDB()
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
_ = db.Close()
|
||||||
|
}()
|
||||||
|
|
||||||
err := db.Open(Tea.Root + "/data/cache-db-large.db")
|
err := db.Open(Tea.Root + "/data/cache-db-large.db")
|
||||||
//err := db.Open(Tea.Root + "/data/cache-index/p1/db-0.db")
|
//err := db.Open(Tea.Root + "/data/cache-index/p1/db-0.db")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -22,10 +27,6 @@ func TestFileListDB_ListLFUItems(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
defer func() {
|
|
||||||
_ = db.Close()
|
|
||||||
}()
|
|
||||||
|
|
||||||
hashList, err := db.ListLFUItems(100)
|
hashList, err := db.ListLFUItems(100)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -35,25 +36,38 @@ func TestFileListDB_ListLFUItems(t *testing.T) {
|
|||||||
|
|
||||||
func TestFileListDB_IncreaseHitAsync(t *testing.T) {
|
func TestFileListDB_IncreaseHitAsync(t *testing.T) {
|
||||||
var db = caches.NewFileListDB()
|
var db = caches.NewFileListDB()
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
_ = db.Close()
|
||||||
|
}()
|
||||||
|
|
||||||
err := db.Open(Tea.Root + "/data/cache-db-large.db")
|
err := db.Open(Tea.Root + "/data/cache-db-large.db")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = db.Init()
|
err = db.Init()
|
||||||
err = db.IncreaseHitAsync("4598e5231ba47d6ec7aa9ea640ff2eaf")
|
err = db.IncreaseHitAsync("4598e5231ba47d6ec7aa9ea640ff2eaf")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// wait transaction
|
// wait transaction
|
||||||
time.Sleep(1 * time.Second)
|
time.Sleep(1 * time.Second)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestFileListDB_CleanMatchKey(t *testing.T) {
|
func TestFileListDB_CleanMatchKey(t *testing.T) {
|
||||||
var db = caches.NewFileListDB()
|
var db = caches.NewFileListDB()
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
_ = db.Close()
|
||||||
|
}()
|
||||||
|
|
||||||
err := db.Open(Tea.Root + "/data/cache-db-large.db")
|
err := db.Open(Tea.Root + "/data/cache-db-large.db")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = db.Init()
|
err = db.Init()
|
||||||
|
|
||||||
err = db.CleanMatchKey("https://*.goedge.cn/large-text")
|
err = db.CleanMatchKey("https://*.goedge.cn/large-text")
|
||||||
@@ -69,10 +83,16 @@ func TestFileListDB_CleanMatchKey(t *testing.T) {
|
|||||||
|
|
||||||
func TestFileListDB_CleanMatchPrefix(t *testing.T) {
|
func TestFileListDB_CleanMatchPrefix(t *testing.T) {
|
||||||
var db = caches.NewFileListDB()
|
var db = caches.NewFileListDB()
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
_ = db.Close()
|
||||||
|
}()
|
||||||
|
|
||||||
err := db.Open(Tea.Root + "/data/cache-db-large.db")
|
err := db.Open(Tea.Root + "/data/cache-db-large.db")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = db.Init()
|
err = db.Init()
|
||||||
|
|
||||||
err = db.CleanMatchPrefix("https://*.goedge.cn/large-text")
|
err = db.CleanMatchPrefix("https://*.goedge.cn/large-text")
|
||||||
|
|||||||
@@ -59,15 +59,16 @@ func TestFileListHashMap_BigInt(t *testing.T) {
|
|||||||
|
|
||||||
func TestFileListHashMap_Load(t *testing.T) {
|
func TestFileListHashMap_Load(t *testing.T) {
|
||||||
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1").(*caches.FileList)
|
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1").(*caches.FileList)
|
||||||
err := list.Init()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
_ = list.Close()
|
_ = list.Close()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
err := list.Init()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
var m = caches.NewFileListHashMap()
|
var m = caches.NewFileListHashMap()
|
||||||
var before = time.Now()
|
var before = time.Now()
|
||||||
var db = list.GetDB("abc")
|
var db = list.GetDB("abc")
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ package caches_test
|
|||||||
import (
|
import (
|
||||||
"github.com/TeaOSLab/EdgeNode/internal/caches"
|
"github.com/TeaOSLab/EdgeNode/internal/caches"
|
||||||
"github.com/TeaOSLab/EdgeNode/internal/goman"
|
"github.com/TeaOSLab/EdgeNode/internal/goman"
|
||||||
|
"github.com/TeaOSLab/EdgeNode/internal/utils/testutils"
|
||||||
"github.com/iwind/TeaGo/Tea"
|
"github.com/iwind/TeaGo/Tea"
|
||||||
"github.com/iwind/TeaGo/rands"
|
"github.com/iwind/TeaGo/rands"
|
||||||
"github.com/iwind/TeaGo/types"
|
"github.com/iwind/TeaGo/types"
|
||||||
@@ -17,6 +18,11 @@ import (
|
|||||||
|
|
||||||
func TestFileList_Init(t *testing.T) {
|
func TestFileList_Init(t *testing.T) {
|
||||||
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1")
|
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1")
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
_ = list.Close()
|
||||||
|
}()
|
||||||
|
|
||||||
err := list.Init()
|
err := list.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -29,6 +35,11 @@ func TestFileList_Init(t *testing.T) {
|
|||||||
|
|
||||||
func TestFileList_Add(t *testing.T) {
|
func TestFileList_Add(t *testing.T) {
|
||||||
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1").(*caches.FileList)
|
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1").(*caches.FileList)
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
_ = list.Close()
|
||||||
|
}()
|
||||||
|
|
||||||
err := list.Init()
|
err := list.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -59,16 +70,21 @@ func TestFileList_Add(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFileList_Add_Many(t *testing.T) {
|
func TestFileList_Add_Many(t *testing.T) {
|
||||||
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1")
|
if !testutils.IsSingleTesting() {
|
||||||
err := list.Init()
|
return
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1")
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
_ = list.Close()
|
_ = list.Close()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
err := list.Init()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
var before = time.Now()
|
var before = time.Now()
|
||||||
for i := 0; i < 10_000_000; i++ {
|
for i := 0; i < 10_000_000; i++ {
|
||||||
u := "https://edge.teaos.cn/123456" + strconv.Itoa(i)
|
u := "https://edge.teaos.cn/123456" + strconv.Itoa(i)
|
||||||
@@ -92,15 +108,15 @@ func TestFileList_Add_Many(t *testing.T) {
|
|||||||
|
|
||||||
func TestFileList_Exist(t *testing.T) {
|
func TestFileList_Exist(t *testing.T) {
|
||||||
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1").(*caches.FileList)
|
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1").(*caches.FileList)
|
||||||
|
defer func() {
|
||||||
|
_ = list.Close()
|
||||||
|
}()
|
||||||
|
|
||||||
err := list.Init()
|
err := list.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
defer func() {
|
|
||||||
_ = list.Close()
|
|
||||||
}()
|
|
||||||
|
|
||||||
total, _ := list.Count()
|
total, _ := list.Count()
|
||||||
t.Log("total:", total)
|
t.Log("total:", total)
|
||||||
|
|
||||||
@@ -130,7 +146,7 @@ func TestFileList_Exist_Many_DB(t *testing.T) {
|
|||||||
// 测试在多个数据库下的性能
|
// 测试在多个数据库下的性能
|
||||||
var listSlice = []caches.ListInterface{}
|
var listSlice = []caches.ListInterface{}
|
||||||
for i := 1; i <= 10; i++ {
|
for i := 1; i <= 10; i++ {
|
||||||
list := caches.NewFileList(Tea.Root + "/data/data" + strconv.Itoa(i))
|
var list = caches.NewFileList(Tea.Root + "/data/data" + strconv.Itoa(i))
|
||||||
err := list.Init()
|
err := list.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -138,6 +154,12 @@ func TestFileList_Exist_Many_DB(t *testing.T) {
|
|||||||
listSlice = append(listSlice, list)
|
listSlice = append(listSlice, list)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
for _, list := range listSlice {
|
||||||
|
_ = list.Close()
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
var wg = sync.WaitGroup{}
|
var wg = sync.WaitGroup{}
|
||||||
var threads = 8
|
var threads = 8
|
||||||
wg.Add(threads)
|
wg.Add(threads)
|
||||||
@@ -181,15 +203,16 @@ func TestFileList_Exist_Many_DB(t *testing.T) {
|
|||||||
|
|
||||||
func TestFileList_CleanPrefix(t *testing.T) {
|
func TestFileList_CleanPrefix(t *testing.T) {
|
||||||
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1")
|
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1")
|
||||||
err := list.Init()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
_ = list.Close()
|
_ = list.Close()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
err := list.Init()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
before := time.Now()
|
before := time.Now()
|
||||||
err = list.CleanPrefix("123")
|
err = list.CleanPrefix("123")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -200,15 +223,15 @@ func TestFileList_CleanPrefix(t *testing.T) {
|
|||||||
|
|
||||||
func TestFileList_Remove(t *testing.T) {
|
func TestFileList_Remove(t *testing.T) {
|
||||||
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1").(*caches.FileList)
|
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1").(*caches.FileList)
|
||||||
|
defer func() {
|
||||||
|
_ = list.Close()
|
||||||
|
}()
|
||||||
|
|
||||||
err := list.Init()
|
err := list.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
defer func() {
|
|
||||||
_ = list.Close()
|
|
||||||
}()
|
|
||||||
|
|
||||||
list.OnRemove(func(item *caches.Item) {
|
list.OnRemove(func(item *caches.Item) {
|
||||||
t.Logf("remove %#v", item)
|
t.Logf("remove %#v", item)
|
||||||
})
|
})
|
||||||
@@ -224,13 +247,15 @@ func TestFileList_Remove(t *testing.T) {
|
|||||||
|
|
||||||
func TestFileList_Purge(t *testing.T) {
|
func TestFileList_Purge(t *testing.T) {
|
||||||
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1")
|
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1")
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
_ = list.Close()
|
||||||
|
}()
|
||||||
|
|
||||||
err := list.Init()
|
err := list.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
defer func() {
|
|
||||||
_ = list.Close()
|
|
||||||
}()
|
|
||||||
|
|
||||||
var count = 0
|
var count = 0
|
||||||
_, err = list.Purge(caches.CountFileDB*2, func(hash string) error {
|
_, err = list.Purge(caches.CountFileDB*2, func(hash string) error {
|
||||||
@@ -246,13 +271,15 @@ func TestFileList_Purge(t *testing.T) {
|
|||||||
|
|
||||||
func TestFileList_PurgeLFU(t *testing.T) {
|
func TestFileList_PurgeLFU(t *testing.T) {
|
||||||
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1")
|
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1")
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
_ = list.Close()
|
||||||
|
}()
|
||||||
|
|
||||||
err := list.Init()
|
err := list.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
defer func() {
|
|
||||||
_ = list.Close()
|
|
||||||
}()
|
|
||||||
|
|
||||||
err = list.IncreaseHit(stringutil.Md5("123456"))
|
err = list.IncreaseHit(stringutil.Md5("123456"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -273,15 +300,16 @@ func TestFileList_PurgeLFU(t *testing.T) {
|
|||||||
|
|
||||||
func TestFileList_Stat(t *testing.T) {
|
func TestFileList_Stat(t *testing.T) {
|
||||||
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1")
|
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1")
|
||||||
err := list.Init()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
_ = list.Close()
|
_ = list.Close()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
err := list.Init()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
stat, err := list.Stat(nil)
|
stat, err := list.Stat(nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -291,6 +319,11 @@ func TestFileList_Stat(t *testing.T) {
|
|||||||
|
|
||||||
func TestFileList_Count(t *testing.T) {
|
func TestFileList_Count(t *testing.T) {
|
||||||
var list = caches.NewFileList(Tea.Root + "/data")
|
var list = caches.NewFileList(Tea.Root + "/data")
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
_ = list.Close()
|
||||||
|
}()
|
||||||
|
|
||||||
err := list.Init()
|
err := list.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -305,7 +338,12 @@ func TestFileList_Count(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFileList_CleanAll(t *testing.T) {
|
func TestFileList_CleanAll(t *testing.T) {
|
||||||
list := caches.NewFileList(Tea.Root + "/data")
|
var list = caches.NewFileList(Tea.Root + "/data")
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
_ = list.Close()
|
||||||
|
}()
|
||||||
|
|
||||||
err := list.Init()
|
err := list.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -320,6 +358,11 @@ func TestFileList_CleanAll(t *testing.T) {
|
|||||||
|
|
||||||
func TestFileList_IncreaseHit(t *testing.T) {
|
func TestFileList_IncreaseHit(t *testing.T) {
|
||||||
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1")
|
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1")
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
_ = list.Close()
|
||||||
|
}()
|
||||||
|
|
||||||
err := list.Init()
|
err := list.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -333,7 +376,13 @@ func TestFileList_IncreaseHit(t *testing.T) {
|
|||||||
defer func() {
|
defer func() {
|
||||||
t.Log(time.Since(before).Seconds()*1000, "ms")
|
t.Log(time.Since(before).Seconds()*1000, "ms")
|
||||||
}()
|
}()
|
||||||
for i := 0; i < 1000_000; i++ {
|
|
||||||
|
var count = 1_000_000
|
||||||
|
|
||||||
|
if !testutils.IsSingleTesting() {
|
||||||
|
count = 10
|
||||||
|
}
|
||||||
|
for i := 0; i < count; i++ {
|
||||||
err = list.IncreaseHit(stringutil.Md5("abc" + types.String(i)))
|
err = list.IncreaseHit(stringutil.Md5("abc" + types.String(i)))
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -344,6 +393,11 @@ func TestFileList_IncreaseHit(t *testing.T) {
|
|||||||
|
|
||||||
func TestFileList_UpgradeV3(t *testing.T) {
|
func TestFileList_UpgradeV3(t *testing.T) {
|
||||||
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p43").(*caches.FileList)
|
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p43").(*caches.FileList)
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
_ = list.Close()
|
||||||
|
}()
|
||||||
|
|
||||||
err := list.Init()
|
err := list.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -363,6 +417,11 @@ func TestFileList_UpgradeV3(t *testing.T) {
|
|||||||
|
|
||||||
func BenchmarkFileList_Exist(b *testing.B) {
|
func BenchmarkFileList_Exist(b *testing.B) {
|
||||||
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1")
|
var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1")
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
_ = list.Close()
|
||||||
|
}()
|
||||||
|
|
||||||
err := list.Init()
|
err := list.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package caches
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/TeaOSLab/EdgeNode/internal/utils/testutils"
|
||||||
"github.com/cespare/xxhash"
|
"github.com/cespare/xxhash"
|
||||||
"github.com/iwind/TeaGo/logs"
|
"github.com/iwind/TeaGo/logs"
|
||||||
"github.com/iwind/TeaGo/rands"
|
"github.com/iwind/TeaGo/rands"
|
||||||
@@ -107,7 +108,9 @@ func TestMemoryList_Purge_Large_List(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
time.Sleep(1 * time.Hour)
|
if testutils.IsSingleTesting() {
|
||||||
|
time.Sleep(1 * time.Hour)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMemoryList_Stat(t *testing.T) {
|
func TestMemoryList_Stat(t *testing.T) {
|
||||||
@@ -255,9 +258,11 @@ func TestMemoryList_GC(t *testing.T) {
|
|||||||
//runtime.GC()
|
//runtime.GC()
|
||||||
t.Log("gc cost:", time.Since(before).Seconds()*1000, "ms")
|
t.Log("gc cost:", time.Since(before).Seconds()*1000, "ms")
|
||||||
|
|
||||||
timeout := time.NewTimer(2 * time.Minute)
|
if testutils.IsSingleTesting() {
|
||||||
<-timeout.C
|
timeout := time.NewTimer(2 * time.Minute)
|
||||||
t.Log("2 minutes passed")
|
<-timeout.C
|
||||||
|
t.Log("2 minutes passed")
|
||||||
|
|
||||||
time.Sleep(30 * time.Minute)
|
time.Sleep(30 * time.Minute)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ package caches_test
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/TeaOSLab/EdgeNode/internal/caches"
|
"github.com/TeaOSLab/EdgeNode/internal/caches"
|
||||||
|
"github.com/TeaOSLab/EdgeNode/internal/utils/testutils"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
@@ -23,7 +24,9 @@ func TestNewOpenFileCache_Close(t *testing.T) {
|
|||||||
cache.Get("d.txt")
|
cache.Get("d.txt")
|
||||||
cache.Close("a.txt")
|
cache.Close("a.txt")
|
||||||
|
|
||||||
time.Sleep(100 * time.Second)
|
if testutils.IsSingleTesting() {
|
||||||
|
time.Sleep(100 * time.Second)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNewOpenFileCache_CloseAll(t *testing.T) {
|
func TestNewOpenFileCache_CloseAll(t *testing.T) {
|
||||||
|
|||||||
@@ -8,21 +8,29 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestFileReader(t *testing.T) {
|
func TestFileReader(t *testing.T) {
|
||||||
storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
||||||
Id: 1,
|
Id: 1,
|
||||||
IsOn: true,
|
IsOn: true,
|
||||||
Options: map[string]interface{}{
|
Options: map[string]interface{}{
|
||||||
"dir": Tea.Root + "/caches",
|
"dir": Tea.Root + "/caches",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
_, path, _ := storage.keyPath("my-key")
|
_, path, _ := storage.keyPath("my-key")
|
||||||
|
|
||||||
fp, err := os.Open(path)
|
fp, err := os.Open(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
t.Log("file '" + path + "' not exists")
|
||||||
|
return
|
||||||
|
}
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
@@ -58,6 +66,10 @@ func TestFileReader_ReadHeader(t *testing.T) {
|
|||||||
var path = "/Users/WorkSpace/EdgeProject/EdgeCache/p43/12/6b/126bbed90fc80f2bdfb19558948b0d49.cache"
|
var path = "/Users/WorkSpace/EdgeProject/EdgeCache/p43/12/6b/126bbed90fc80f2bdfb19558948b0d49.cache"
|
||||||
fp, err := os.Open(path)
|
fp, err := os.Open(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
t.Log("'" + path + "' not exists")
|
||||||
|
return
|
||||||
|
}
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
@@ -66,6 +78,11 @@ func TestFileReader_ReadHeader(t *testing.T) {
|
|||||||
var reader = NewFileReader(fp)
|
var reader = NewFileReader(fp)
|
||||||
err = reader.Init()
|
err = reader.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
t.Log("file '" + path + "' not exists")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
var buf = make([]byte, 16*1024)
|
var buf = make([]byte, 16*1024)
|
||||||
@@ -79,13 +96,16 @@ func TestFileReader_ReadHeader(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFileReader_Range(t *testing.T) {
|
func TestFileReader_Range(t *testing.T) {
|
||||||
storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
||||||
Id: 1,
|
Id: 1,
|
||||||
IsOn: true,
|
IsOn: true,
|
||||||
Options: map[string]interface{}{
|
Options: map[string]interface{}{
|
||||||
"dir": Tea.Root + "/caches",
|
"dir": Tea.Root + "/caches",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -109,6 +129,10 @@ func TestFileReader_Range(t *testing.T) {
|
|||||||
|
|
||||||
fp, err := os.Open(path)
|
fp, err := os.Open(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
t.Log("'" + path + "' not exists")
|
||||||
|
return
|
||||||
|
}
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
|
|||||||
@@ -899,7 +899,10 @@ func (this *FileStorage) Stop() {
|
|||||||
memoryStorage.Stop()
|
memoryStorage.Stop()
|
||||||
})
|
})
|
||||||
|
|
||||||
_ = this.list.Reset()
|
if this.list != nil {
|
||||||
|
_ = this.list.Reset()
|
||||||
|
}
|
||||||
|
|
||||||
if this.purgeTicker != nil {
|
if this.purgeTicker != nil {
|
||||||
this.purgeTicker.Stop()
|
this.purgeTicker.Stop()
|
||||||
}
|
}
|
||||||
@@ -907,7 +910,9 @@ func (this *FileStorage) Stop() {
|
|||||||
this.hotTicker.Stop()
|
this.hotTicker.Stop()
|
||||||
}
|
}
|
||||||
|
|
||||||
_ = this.list.Close()
|
if this.list != nil {
|
||||||
|
_ = this.list.Close()
|
||||||
|
}
|
||||||
|
|
||||||
var openFileCache = this.openFileCache
|
var openFileCache = this.openFileCache
|
||||||
if openFileCache != nil {
|
if openFileCache != nil {
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestFileStorage_Init(t *testing.T) {
|
func TestFileStorage_Init(t *testing.T) {
|
||||||
storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
||||||
Id: 1,
|
Id: 1,
|
||||||
IsOn: true,
|
IsOn: true,
|
||||||
Options: map[string]interface{}{
|
Options: map[string]interface{}{
|
||||||
@@ -26,6 +26,8 @@ func TestFileStorage_Init(t *testing.T) {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -44,13 +46,16 @@ func TestFileStorage_Init(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFileStorage_OpenWriter(t *testing.T) {
|
func TestFileStorage_OpenWriter(t *testing.T) {
|
||||||
storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
||||||
Id: 1,
|
Id: 1,
|
||||||
IsOn: true,
|
IsOn: true,
|
||||||
Options: map[string]interface{}{
|
Options: map[string]interface{}{
|
||||||
"dir": Tea.Root + "/caches",
|
"dir": Tea.Root + "/caches",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -95,6 +100,9 @@ func TestFileStorage_OpenWriter_Partial(t *testing.T) {
|
|||||||
"dir": Tea.Root + "/caches",
|
"dir": Tea.Root + "/caches",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -123,13 +131,16 @@ func TestFileStorage_OpenWriter_Partial(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFileStorage_OpenWriter_HTTP(t *testing.T) {
|
func TestFileStorage_OpenWriter_HTTP(t *testing.T) {
|
||||||
storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
||||||
Id: 1,
|
Id: 1,
|
||||||
IsOn: true,
|
IsOn: true,
|
||||||
Options: map[string]interface{}{
|
Options: map[string]interface{}{
|
||||||
"dir": Tea.Root + "/caches",
|
"dir": Tea.Root + "/caches",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -188,13 +199,16 @@ func TestFileStorage_OpenWriter_HTTP(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFileStorage_Concurrent_Open_DifferentFile(t *testing.T) {
|
func TestFileStorage_Concurrent_Open_DifferentFile(t *testing.T) {
|
||||||
storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
||||||
Id: 1,
|
Id: 1,
|
||||||
IsOn: true,
|
IsOn: true,
|
||||||
Options: map[string]interface{}{
|
Options: map[string]interface{}{
|
||||||
"dir": Tea.Root + "/caches",
|
"dir": Tea.Root + "/caches",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -243,13 +257,16 @@ func TestFileStorage_Concurrent_Open_DifferentFile(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFileStorage_Concurrent_Open_SameFile(t *testing.T) {
|
func TestFileStorage_Concurrent_Open_SameFile(t *testing.T) {
|
||||||
storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
||||||
Id: 1,
|
Id: 1,
|
||||||
IsOn: true,
|
IsOn: true,
|
||||||
Options: map[string]interface{}{
|
Options: map[string]interface{}{
|
||||||
"dir": Tea.Root + "/caches",
|
"dir": Tea.Root + "/caches",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -299,13 +316,16 @@ func TestFileStorage_Concurrent_Open_SameFile(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFileStorage_Read(t *testing.T) {
|
func TestFileStorage_Read(t *testing.T) {
|
||||||
storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
||||||
Id: 1,
|
Id: 1,
|
||||||
IsOn: true,
|
IsOn: true,
|
||||||
Options: map[string]interface{}{
|
Options: map[string]interface{}{
|
||||||
"dir": Tea.Root + "/caches",
|
"dir": Tea.Root + "/caches",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -335,13 +355,16 @@ func TestFileStorage_Read(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFileStorage_Read_HTTP_Response(t *testing.T) {
|
func TestFileStorage_Read_HTTP_Response(t *testing.T) {
|
||||||
storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
||||||
Id: 1,
|
Id: 1,
|
||||||
IsOn: true,
|
IsOn: true,
|
||||||
Options: map[string]interface{}{
|
Options: map[string]interface{}{
|
||||||
"dir": Tea.Root + "/caches",
|
"dir": Tea.Root + "/caches",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -388,13 +411,16 @@ func TestFileStorage_Read_HTTP_Response(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFileStorage_Read_NotFound(t *testing.T) {
|
func TestFileStorage_Read_NotFound(t *testing.T) {
|
||||||
storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
||||||
Id: 1,
|
Id: 1,
|
||||||
IsOn: true,
|
IsOn: true,
|
||||||
Options: map[string]interface{}{
|
Options: map[string]interface{}{
|
||||||
"dir": Tea.Root + "/caches",
|
"dir": Tea.Root + "/caches",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -421,13 +447,16 @@ func TestFileStorage_Read_NotFound(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFileStorage_Delete(t *testing.T) {
|
func TestFileStorage_Delete(t *testing.T) {
|
||||||
storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
||||||
Id: 1,
|
Id: 1,
|
||||||
IsOn: true,
|
IsOn: true,
|
||||||
Options: map[string]interface{}{
|
Options: map[string]interface{}{
|
||||||
"dir": Tea.Root + "/caches",
|
"dir": Tea.Root + "/caches",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -440,13 +469,16 @@ func TestFileStorage_Delete(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFileStorage_Stat(t *testing.T) {
|
func TestFileStorage_Stat(t *testing.T) {
|
||||||
storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
||||||
Id: 1,
|
Id: 1,
|
||||||
IsOn: true,
|
IsOn: true,
|
||||||
Options: map[string]interface{}{
|
Options: map[string]interface{}{
|
||||||
"dir": Tea.Root + "/caches",
|
"dir": Tea.Root + "/caches",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -465,13 +497,16 @@ func TestFileStorage_Stat(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFileStorage_CleanAll(t *testing.T) {
|
func TestFileStorage_CleanAll(t *testing.T) {
|
||||||
storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
||||||
Id: 1,
|
Id: 1,
|
||||||
IsOn: true,
|
IsOn: true,
|
||||||
Options: map[string]interface{}{
|
Options: map[string]interface{}{
|
||||||
"dir": Tea.Root + "/caches",
|
"dir": Tea.Root + "/caches",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -496,13 +531,16 @@ func TestFileStorage_CleanAll(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFileStorage_Stop(t *testing.T) {
|
func TestFileStorage_Stop(t *testing.T) {
|
||||||
storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
||||||
Id: 1,
|
Id: 1,
|
||||||
IsOn: true,
|
IsOn: true,
|
||||||
Options: map[string]interface{}{
|
Options: map[string]interface{}{
|
||||||
"dir": Tea.Root + "/caches",
|
"dir": Tea.Root + "/caches",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -518,6 +556,9 @@ func TestFileStorage_DecodeFile(t *testing.T) {
|
|||||||
"dir": Tea.Root + "/caches",
|
"dir": Tea.Root + "/caches",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -528,6 +569,9 @@ func TestFileStorage_DecodeFile(t *testing.T) {
|
|||||||
|
|
||||||
func TestFileStorage_RemoveCacheFile(t *testing.T) {
|
func TestFileStorage_RemoveCacheFile(t *testing.T) {
|
||||||
var storage = NewFileStorage(nil)
|
var storage = NewFileStorage(nil)
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
t.Log(storage.removeCacheFile("/Users/WorkSpace/EdgeProject/EdgeCache/p43/15/7e/157eba0dfc6dfb6fbbf20b1f9e584674.cache"))
|
t.Log(storage.removeCacheFile("/Users/WorkSpace/EdgeProject/EdgeCache/p43/15/7e/157eba0dfc6dfb6fbbf20b1f9e584674.cache"))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -536,13 +580,16 @@ func BenchmarkFileStorage_Read(b *testing.B) {
|
|||||||
|
|
||||||
_ = utils.SetRLimit(1024 * 1024)
|
_ = utils.SetRLimit(1024 * 1024)
|
||||||
|
|
||||||
storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{
|
||||||
Id: 1,
|
Id: 1,
|
||||||
IsOn: true,
|
IsOn: true,
|
||||||
Options: map[string]interface{}{
|
Options: map[string]interface{}{
|
||||||
"dir": Tea.Root + "/caches",
|
"dir": Tea.Root + "/caches",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
defer storage.Stop()
|
||||||
|
|
||||||
err := storage.Init()
|
err := storage.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ func TestIPListManager_check(t *testing.T) {
|
|||||||
func TestIPListManager_loop(t *testing.T) {
|
func TestIPListManager_loop(t *testing.T) {
|
||||||
manager := NewIPListManager()
|
manager := NewIPListManager()
|
||||||
manager.Start()
|
manager.Start()
|
||||||
manager.pageSize = 10
|
|
||||||
err := manager.loop()
|
err := manager.loop()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
|
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
|
||||||
"github.com/TeaOSLab/EdgeNode/internal/metrics"
|
"github.com/TeaOSLab/EdgeNode/internal/metrics"
|
||||||
|
"github.com/TeaOSLab/EdgeNode/internal/utils/testutils"
|
||||||
_ "github.com/iwind/TeaGo/bootstrap"
|
_ "github.com/iwind/TeaGo/bootstrap"
|
||||||
"github.com/iwind/TeaGo/rands"
|
"github.com/iwind/TeaGo/rands"
|
||||||
"testing"
|
"testing"
|
||||||
@@ -79,6 +80,10 @@ func TestTask_Add(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestTask_Add_Many(t *testing.T) {
|
func TestTask_Add_Many(t *testing.T) {
|
||||||
|
if !testutils.IsSingleTesting() {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var task = metrics.NewTask(&serverconfigs.MetricItemConfig{
|
var task = metrics.NewTask(&serverconfigs.MetricItemConfig{
|
||||||
Id: 1,
|
Id: 1,
|
||||||
IsOn: false,
|
IsOn: false,
|
||||||
|
|||||||
@@ -1,46 +0,0 @@
|
|||||||
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
|
||||||
//go:build plus
|
|
||||||
|
|
||||||
package nodes_test
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
|
|
||||||
"github.com/TeaOSLab/EdgeNode/internal/nodes"
|
|
||||||
"testing"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestHTTP3Manager_Update(t *testing.T) {
|
|
||||||
var manager = nodes.NewHTTP3Manager()
|
|
||||||
err := manager.Update(map[int64]*nodeconfigs.HTTP3Policy{
|
|
||||||
1: {
|
|
||||||
IsOn: true,
|
|
||||||
Port: 443,
|
|
||||||
},
|
|
||||||
2: {
|
|
||||||
IsOn: true,
|
|
||||||
Port: 444,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**{
|
|
||||||
err = manager.Update(map[int64]*nodeconfigs.HTTP3Policy{
|
|
||||||
1: {
|
|
||||||
IsOn: false,
|
|
||||||
Port: 443,
|
|
||||||
},
|
|
||||||
2: {
|
|
||||||
IsOn: true,
|
|
||||||
Port: 445,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
}**/
|
|
||||||
|
|
||||||
time.Sleep(1 * time.Minute)
|
|
||||||
}
|
|
||||||
15
internal/utils/testutils/utils.go
Normal file
15
internal/utils/testutils/utils.go
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||||
|
|
||||||
|
package testutils
|
||||||
|
|
||||||
|
import "os"
|
||||||
|
|
||||||
|
// IsSingleTesting 判断当前测试环境是否为单个函数测试
|
||||||
|
func IsSingleTesting() bool {
|
||||||
|
for _, arg := range os.Args {
|
||||||
|
if arg == "-test.run" {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user