Skip to content

Commit c930def

Browse files
lvan100lianghuan
authored andcommitted
test(gs): Add Object Cleanup Function Test
1 parent 7a84d20 commit c930def

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

gs/internal/gs_core/injecting/injecting_test.go

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"fmt"
2323
"net/http"
2424
"reflect"
25+
"runtime"
2526
"testing"
2627
"time"
2728

@@ -927,20 +928,36 @@ type DyncValue struct {
927928
func TestForceClean(t *testing.T) {
928929

929930
t.Run("no dync value", func(t *testing.T) {
931+
release := make(map[string]struct{})
932+
930933
r := New(conf.Map(map[string]interface{}{
931934
"spring": map[string]interface{}{
932935
"force-clean": true,
933936
},
934937
}))
935-
beans := []*gs.BeanDefinition{
936-
objectBean(&SimpleLogger{}).Name("biz"),
937-
objectBean(&SimpleLogger{}).Name("sys"),
938-
}
938+
939+
b1 := objectBean(&SimpleLogger{}).Name("biz")
940+
runtime.AddCleanup(&b1, func(s string) {
941+
release[s] = struct{}{}
942+
}, "biz")
943+
944+
b2 := objectBean(&SimpleLogger{}).Name("sys")
945+
runtime.AddCleanup(&b2, func(s string) {
946+
release[s] = struct{}{}
947+
}, "sys")
948+
949+
beans := []*gs.BeanDefinition{b1, b2}
939950
err := r.Refresh(extractBeans(beans))
940951
assert.Nil(t, err)
941952
assert.Nil(t, r.p)
942953
assert.Nil(t, r.beansByName)
943954
assert.Nil(t, r.beansByType)
955+
956+
runtime.GC()
957+
assert.That(t, release).Equal(map[string]struct{}{
958+
"biz": {},
959+
"sys": {},
960+
})
944961
})
945962

946963
t.Run("has dync value", func(t *testing.T) {

0 commit comments

Comments
 (0)