diff --git a/.gitignore b/.gitignore index dc6e5bb..7e46a95 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *_plus.go +*_plus_test.go *-plus.sh \ No newline at end of file diff --git a/build/test.sh b/build/test.sh new file mode 100755 index 0000000..4f2fa74 --- /dev/null +++ b/build/test.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +TAG=${1} + +if [ -z "$TAG" ]; then + TAG="community" +fi + +go test -v ../... -tags=${TAG} \ No newline at end of file diff --git a/internal/caches/list_file_db_test.go b/internal/caches/list_file_db_test.go index f5e8d50..73a8f8d 100644 --- a/internal/caches/list_file_db_test.go +++ b/internal/caches/list_file_db_test.go @@ -12,6 +12,11 @@ import ( func TestFileListDB_ListLFUItems(t *testing.T) { 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-index/p1/db-0.db") if err != nil { @@ -22,10 +27,6 @@ func TestFileListDB_ListLFUItems(t *testing.T) { t.Fatal(err) } - defer func() { - _ = db.Close() - }() - hashList, err := db.ListLFUItems(100) if err != nil { t.Fatal(err) @@ -35,25 +36,38 @@ func TestFileListDB_ListLFUItems(t *testing.T) { func TestFileListDB_IncreaseHitAsync(t *testing.T) { var db = caches.NewFileListDB() + + defer func() { + _ = db.Close() + }() + err := db.Open(Tea.Root + "/data/cache-db-large.db") if err != nil { t.Fatal(err) } + err = db.Init() err = db.IncreaseHitAsync("4598e5231ba47d6ec7aa9ea640ff2eaf") if err != nil { t.Fatal(err) } + // wait transaction time.Sleep(1 * time.Second) } func TestFileListDB_CleanMatchKey(t *testing.T) { var db = caches.NewFileListDB() + + defer func() { + _ = db.Close() + }() + err := db.Open(Tea.Root + "/data/cache-db-large.db") if err != nil { t.Fatal(err) } + err = db.Init() err = db.CleanMatchKey("https://*.goedge.cn/large-text") @@ -69,10 +83,16 @@ func TestFileListDB_CleanMatchKey(t *testing.T) { func TestFileListDB_CleanMatchPrefix(t *testing.T) { var db = caches.NewFileListDB() + + defer func() { + _ = db.Close() + }() + err := db.Open(Tea.Root + "/data/cache-db-large.db") if err != nil { t.Fatal(err) } + err = db.Init() err = db.CleanMatchPrefix("https://*.goedge.cn/large-text") diff --git a/internal/caches/list_file_hash_map_test.go b/internal/caches/list_file_hash_map_test.go index 16af3e6..e2bf7fd 100644 --- a/internal/caches/list_file_hash_map_test.go +++ b/internal/caches/list_file_hash_map_test.go @@ -59,15 +59,16 @@ func TestFileListHashMap_BigInt(t *testing.T) { func TestFileListHashMap_Load(t *testing.T) { var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1").(*caches.FileList) - err := list.Init() - if err != nil { - t.Fatal(err) - } defer func() { _ = list.Close() }() + err := list.Init() + if err != nil { + t.Fatal(err) + } + var m = caches.NewFileListHashMap() var before = time.Now() var db = list.GetDB("abc") diff --git a/internal/caches/list_file_test.go b/internal/caches/list_file_test.go index a6de8b8..e933010 100644 --- a/internal/caches/list_file_test.go +++ b/internal/caches/list_file_test.go @@ -5,6 +5,7 @@ package caches_test import ( "github.com/TeaOSLab/EdgeNode/internal/caches" "github.com/TeaOSLab/EdgeNode/internal/goman" + "github.com/TeaOSLab/EdgeNode/internal/utils/testutils" "github.com/iwind/TeaGo/Tea" "github.com/iwind/TeaGo/rands" "github.com/iwind/TeaGo/types" @@ -17,6 +18,11 @@ import ( func TestFileList_Init(t *testing.T) { var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1") + + defer func() { + _ = list.Close() + }() + err := list.Init() if err != nil { t.Fatal(err) @@ -29,6 +35,11 @@ func TestFileList_Init(t *testing.T) { func TestFileList_Add(t *testing.T) { var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1").(*caches.FileList) + + defer func() { + _ = list.Close() + }() + err := list.Init() if err != nil { t.Fatal(err) @@ -59,16 +70,21 @@ func TestFileList_Add(t *testing.T) { } func TestFileList_Add_Many(t *testing.T) { - var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1") - err := list.Init() - if err != nil { - t.Fatal(err) + if !testutils.IsSingleTesting() { + return } + var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1") + defer func() { _ = list.Close() }() + err := list.Init() + if err != nil { + t.Fatal(err) + } + var before = time.Now() for i := 0; i < 10_000_000; 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) { var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1").(*caches.FileList) + defer func() { + _ = list.Close() + }() + err := list.Init() if err != nil { t.Fatal(err) } - defer func() { - _ = list.Close() - }() - total, _ := list.Count() t.Log("total:", total) @@ -130,7 +146,7 @@ func TestFileList_Exist_Many_DB(t *testing.T) { // 测试在多个数据库下的性能 var listSlice = []caches.ListInterface{} 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() if err != nil { t.Fatal(err) @@ -138,6 +154,12 @@ func TestFileList_Exist_Many_DB(t *testing.T) { listSlice = append(listSlice, list) } + defer func() { + for _, list := range listSlice { + _ = list.Close() + } + }() + var wg = sync.WaitGroup{} var threads = 8 wg.Add(threads) @@ -181,15 +203,16 @@ func TestFileList_Exist_Many_DB(t *testing.T) { func TestFileList_CleanPrefix(t *testing.T) { var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1") - err := list.Init() - if err != nil { - t.Fatal(err) - } defer func() { _ = list.Close() }() + err := list.Init() + if err != nil { + t.Fatal(err) + } + before := time.Now() err = list.CleanPrefix("123") if err != nil { @@ -200,15 +223,15 @@ func TestFileList_CleanPrefix(t *testing.T) { func TestFileList_Remove(t *testing.T) { var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1").(*caches.FileList) + defer func() { + _ = list.Close() + }() + err := list.Init() if err != nil { t.Fatal(err) } - defer func() { - _ = list.Close() - }() - list.OnRemove(func(item *caches.Item) { t.Logf("remove %#v", item) }) @@ -224,13 +247,15 @@ func TestFileList_Remove(t *testing.T) { func TestFileList_Purge(t *testing.T) { var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1") + + defer func() { + _ = list.Close() + }() + err := list.Init() if err != nil { t.Fatal(err) } - defer func() { - _ = list.Close() - }() var count = 0 _, 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) { var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1") + + defer func() { + _ = list.Close() + }() + err := list.Init() if err != nil { t.Fatal(err) } - defer func() { - _ = list.Close() - }() err = list.IncreaseHit(stringutil.Md5("123456")) if err != nil { @@ -273,15 +300,16 @@ func TestFileList_PurgeLFU(t *testing.T) { func TestFileList_Stat(t *testing.T) { var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1") - err := list.Init() - if err != nil { - t.Fatal(err) - } defer func() { _ = list.Close() }() + err := list.Init() + if err != nil { + t.Fatal(err) + } + stat, err := list.Stat(nil) if err != nil { t.Fatal(err) @@ -291,6 +319,11 @@ func TestFileList_Stat(t *testing.T) { func TestFileList_Count(t *testing.T) { var list = caches.NewFileList(Tea.Root + "/data") + + defer func() { + _ = list.Close() + }() + err := list.Init() if err != nil { t.Fatal(err) @@ -305,7 +338,12 @@ func TestFileList_Count(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() if err != nil { t.Fatal(err) @@ -320,6 +358,11 @@ func TestFileList_CleanAll(t *testing.T) { func TestFileList_IncreaseHit(t *testing.T) { var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1") + + defer func() { + _ = list.Close() + }() + err := list.Init() if err != nil { t.Fatal(err) @@ -333,7 +376,13 @@ func TestFileList_IncreaseHit(t *testing.T) { defer func() { 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))) } if err != nil { @@ -344,6 +393,11 @@ func TestFileList_IncreaseHit(t *testing.T) { func TestFileList_UpgradeV3(t *testing.T) { var list = caches.NewFileList(Tea.Root + "/data/cache-index/p43").(*caches.FileList) + + defer func() { + _ = list.Close() + }() + err := list.Init() if err != nil { t.Fatal(err) @@ -363,6 +417,11 @@ func TestFileList_UpgradeV3(t *testing.T) { func BenchmarkFileList_Exist(b *testing.B) { var list = caches.NewFileList(Tea.Root + "/data/cache-index/p1") + + defer func() { + _ = list.Close() + }() + err := list.Init() if err != nil { b.Fatal(err) diff --git a/internal/caches/list_memory_test.go b/internal/caches/list_memory_test.go index 5b08df8..b2125e7 100644 --- a/internal/caches/list_memory_test.go +++ b/internal/caches/list_memory_test.go @@ -2,6 +2,7 @@ package caches import ( "fmt" + "github.com/TeaOSLab/EdgeNode/internal/utils/testutils" "github.com/cespare/xxhash" "github.com/iwind/TeaGo/logs" "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) { @@ -255,9 +258,11 @@ func TestMemoryList_GC(t *testing.T) { //runtime.GC() t.Log("gc cost:", time.Since(before).Seconds()*1000, "ms") - timeout := time.NewTimer(2 * time.Minute) - <-timeout.C - t.Log("2 minutes passed") + if testutils.IsSingleTesting() { + timeout := time.NewTimer(2 * time.Minute) + <-timeout.C + t.Log("2 minutes passed") - time.Sleep(30 * time.Minute) + time.Sleep(30 * time.Minute) + } } diff --git a/internal/caches/open_file_cache_test.go b/internal/caches/open_file_cache_test.go index c2e8a5a..b13f2e4 100644 --- a/internal/caches/open_file_cache_test.go +++ b/internal/caches/open_file_cache_test.go @@ -4,6 +4,7 @@ package caches_test import ( "github.com/TeaOSLab/EdgeNode/internal/caches" + "github.com/TeaOSLab/EdgeNode/internal/utils/testutils" "testing" "time" ) @@ -23,7 +24,9 @@ func TestNewOpenFileCache_Close(t *testing.T) { cache.Get("d.txt") cache.Close("a.txt") - time.Sleep(100 * time.Second) + if testutils.IsSingleTesting() { + time.Sleep(100 * time.Second) + } } func TestNewOpenFileCache_CloseAll(t *testing.T) { diff --git a/internal/caches/reader_file_test.go b/internal/caches/reader_file_test.go index 19816a9..72be759 100644 --- a/internal/caches/reader_file_test.go +++ b/internal/caches/reader_file_test.go @@ -8,21 +8,29 @@ import ( ) func TestFileReader(t *testing.T) { - storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{ + var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{ Id: 1, IsOn: true, Options: map[string]interface{}{ "dir": Tea.Root + "/caches", }, }) + + defer storage.Stop() + err := storage.Init() if err != nil { t.Fatal(err) } + _, path, _ := storage.keyPath("my-key") fp, err := os.Open(path) if err != nil { + if os.IsNotExist(err) { + t.Log("file '" + path + "' not exists") + return + } t.Fatal(err) } defer func() { @@ -58,6 +66,10 @@ func TestFileReader_ReadHeader(t *testing.T) { var path = "/Users/WorkSpace/EdgeProject/EdgeCache/p43/12/6b/126bbed90fc80f2bdfb19558948b0d49.cache" fp, err := os.Open(path) if err != nil { + if os.IsNotExist(err) { + t.Log("'" + path + "' not exists") + return + } t.Fatal(err) } defer func() { @@ -66,6 +78,11 @@ func TestFileReader_ReadHeader(t *testing.T) { var reader = NewFileReader(fp) err = reader.Init() if err != nil { + if os.IsNotExist(err) { + t.Log("file '" + path + "' not exists") + return + } + t.Fatal(err) } var buf = make([]byte, 16*1024) @@ -79,13 +96,16 @@ func TestFileReader_ReadHeader(t *testing.T) { } func TestFileReader_Range(t *testing.T) { - storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{ + var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{ Id: 1, IsOn: true, Options: map[string]interface{}{ "dir": Tea.Root + "/caches", }, }) + + defer storage.Stop() + err := storage.Init() if err != nil { t.Fatal(err) @@ -109,6 +129,10 @@ func TestFileReader_Range(t *testing.T) { fp, err := os.Open(path) if err != nil { + if os.IsNotExist(err) { + t.Log("'" + path + "' not exists") + return + } t.Fatal(err) } defer func() { diff --git a/internal/caches/storage_file.go b/internal/caches/storage_file.go index fa00731..ece9f73 100644 --- a/internal/caches/storage_file.go +++ b/internal/caches/storage_file.go @@ -899,7 +899,10 @@ func (this *FileStorage) Stop() { memoryStorage.Stop() }) - _ = this.list.Reset() + if this.list != nil { + _ = this.list.Reset() + } + if this.purgeTicker != nil { this.purgeTicker.Stop() } @@ -907,7 +910,9 @@ func (this *FileStorage) Stop() { this.hotTicker.Stop() } - _ = this.list.Close() + if this.list != nil { + _ = this.list.Close() + } var openFileCache = this.openFileCache if openFileCache != nil { diff --git a/internal/caches/storage_file_test.go b/internal/caches/storage_file_test.go index f538c62..f6de455 100644 --- a/internal/caches/storage_file_test.go +++ b/internal/caches/storage_file_test.go @@ -18,7 +18,7 @@ import ( ) func TestFileStorage_Init(t *testing.T) { - storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{ + var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{ Id: 1, IsOn: true, Options: map[string]interface{}{ @@ -26,6 +26,8 @@ func TestFileStorage_Init(t *testing.T) { }, }) + defer storage.Stop() + err := storage.Init() if err != nil { t.Fatal(err) @@ -44,13 +46,16 @@ func TestFileStorage_Init(t *testing.T) { } func TestFileStorage_OpenWriter(t *testing.T) { - storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{ + var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{ Id: 1, IsOn: true, Options: map[string]interface{}{ "dir": Tea.Root + "/caches", }, }) + + defer storage.Stop() + err := storage.Init() if err != nil { t.Fatal(err) @@ -95,6 +100,9 @@ func TestFileStorage_OpenWriter_Partial(t *testing.T) { "dir": Tea.Root + "/caches", }, }) + + defer storage.Stop() + err := storage.Init() if err != nil { t.Fatal(err) @@ -123,13 +131,16 @@ func TestFileStorage_OpenWriter_Partial(t *testing.T) { } func TestFileStorage_OpenWriter_HTTP(t *testing.T) { - storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{ + var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{ Id: 1, IsOn: true, Options: map[string]interface{}{ "dir": Tea.Root + "/caches", }, }) + + defer storage.Stop() + err := storage.Init() if err != nil { t.Fatal(err) @@ -188,13 +199,16 @@ func TestFileStorage_OpenWriter_HTTP(t *testing.T) { } func TestFileStorage_Concurrent_Open_DifferentFile(t *testing.T) { - storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{ + var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{ Id: 1, IsOn: true, Options: map[string]interface{}{ "dir": Tea.Root + "/caches", }, }) + + defer storage.Stop() + err := storage.Init() if err != nil { t.Fatal(err) @@ -243,13 +257,16 @@ func TestFileStorage_Concurrent_Open_DifferentFile(t *testing.T) { } func TestFileStorage_Concurrent_Open_SameFile(t *testing.T) { - storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{ + var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{ Id: 1, IsOn: true, Options: map[string]interface{}{ "dir": Tea.Root + "/caches", }, }) + + defer storage.Stop() + err := storage.Init() if err != nil { t.Fatal(err) @@ -299,13 +316,16 @@ func TestFileStorage_Concurrent_Open_SameFile(t *testing.T) { } func TestFileStorage_Read(t *testing.T) { - storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{ + var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{ Id: 1, IsOn: true, Options: map[string]interface{}{ "dir": Tea.Root + "/caches", }, }) + + defer storage.Stop() + err := storage.Init() if err != nil { t.Fatal(err) @@ -335,13 +355,16 @@ func TestFileStorage_Read(t *testing.T) { } func TestFileStorage_Read_HTTP_Response(t *testing.T) { - storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{ + var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{ Id: 1, IsOn: true, Options: map[string]interface{}{ "dir": Tea.Root + "/caches", }, }) + + defer storage.Stop() + err := storage.Init() if err != nil { t.Fatal(err) @@ -388,13 +411,16 @@ func TestFileStorage_Read_HTTP_Response(t *testing.T) { } func TestFileStorage_Read_NotFound(t *testing.T) { - storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{ + var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{ Id: 1, IsOn: true, Options: map[string]interface{}{ "dir": Tea.Root + "/caches", }, }) + + defer storage.Stop() + err := storage.Init() if err != nil { t.Fatal(err) @@ -421,13 +447,16 @@ func TestFileStorage_Read_NotFound(t *testing.T) { } func TestFileStorage_Delete(t *testing.T) { - storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{ + var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{ Id: 1, IsOn: true, Options: map[string]interface{}{ "dir": Tea.Root + "/caches", }, }) + + defer storage.Stop() + err := storage.Init() if err != nil { t.Fatal(err) @@ -440,13 +469,16 @@ func TestFileStorage_Delete(t *testing.T) { } func TestFileStorage_Stat(t *testing.T) { - storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{ + var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{ Id: 1, IsOn: true, Options: map[string]interface{}{ "dir": Tea.Root + "/caches", }, }) + + defer storage.Stop() + err := storage.Init() if err != nil { t.Fatal(err) @@ -465,13 +497,16 @@ func TestFileStorage_Stat(t *testing.T) { } func TestFileStorage_CleanAll(t *testing.T) { - storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{ + var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{ Id: 1, IsOn: true, Options: map[string]interface{}{ "dir": Tea.Root + "/caches", }, }) + + defer storage.Stop() + err := storage.Init() if err != nil { t.Fatal(err) @@ -496,13 +531,16 @@ func TestFileStorage_CleanAll(t *testing.T) { } func TestFileStorage_Stop(t *testing.T) { - storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{ + var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{ Id: 1, IsOn: true, Options: map[string]interface{}{ "dir": Tea.Root + "/caches", }, }) + + defer storage.Stop() + err := storage.Init() if err != nil { t.Fatal(err) @@ -518,6 +556,9 @@ func TestFileStorage_DecodeFile(t *testing.T) { "dir": Tea.Root + "/caches", }, }) + + defer storage.Stop() + err := storage.Init() if err != nil { t.Fatal(err) @@ -528,6 +569,9 @@ func TestFileStorage_DecodeFile(t *testing.T) { func TestFileStorage_RemoveCacheFile(t *testing.T) { var storage = NewFileStorage(nil) + + defer storage.Stop() + 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) - storage := NewFileStorage(&serverconfigs.HTTPCachePolicy{ + var storage = NewFileStorage(&serverconfigs.HTTPCachePolicy{ Id: 1, IsOn: true, Options: map[string]interface{}{ "dir": Tea.Root + "/caches", }, }) + + defer storage.Stop() + err := storage.Init() if err != nil { b.Fatal(err) diff --git a/internal/iplibrary/manager_ip_list_test.go b/internal/iplibrary/manager_ip_list_test.go index ef5b7eb..b751ab9 100644 --- a/internal/iplibrary/manager_ip_list_test.go +++ b/internal/iplibrary/manager_ip_list_test.go @@ -30,7 +30,6 @@ func TestIPListManager_check(t *testing.T) { func TestIPListManager_loop(t *testing.T) { manager := NewIPListManager() manager.Start() - manager.pageSize = 10 err := manager.loop() if err != nil { t.Fatal(err) diff --git a/internal/metrics/task_test.go b/internal/metrics/task_test.go index f5b88af..be2d4a4 100644 --- a/internal/metrics/task_test.go +++ b/internal/metrics/task_test.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/TeaOSLab/EdgeNode/internal/metrics" + "github.com/TeaOSLab/EdgeNode/internal/utils/testutils" _ "github.com/iwind/TeaGo/bootstrap" "github.com/iwind/TeaGo/rands" "testing" @@ -79,6 +80,10 @@ func TestTask_Add(t *testing.T) { } func TestTask_Add_Many(t *testing.T) { + if !testutils.IsSingleTesting() { + return + } + var task = metrics.NewTask(&serverconfigs.MetricItemConfig{ Id: 1, IsOn: false, diff --git a/internal/nodes/http3_manager_plus_test.go b/internal/nodes/http3_manager_plus_test.go deleted file mode 100644 index 0fc13b6..0000000 --- a/internal/nodes/http3_manager_plus_test.go +++ /dev/null @@ -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) -} diff --git a/internal/utils/testutils/utils.go b/internal/utils/testutils/utils.go new file mode 100644 index 0000000..318f6ed --- /dev/null +++ b/internal/utils/testutils/utils.go @@ -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 +} \ No newline at end of file