@@ -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 {
927928func 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