diff --git a/cluster/router/condition/default_health_check_test.go b/cluster/router/condition/default_health_check_test.go index f576a928afb48f08c166da20be2935b057ac131c..0a7f24392191d48a31ea93bd088f47c918257833 100644 --- a/cluster/router/condition/default_health_check_test.go +++ b/cluster/router/condition/default_health_check_test.go @@ -15,6 +15,7 @@ import ( ) func TestDefaultHealthChecker_IsHealthy(t *testing.T) { + defer protocol.CleanAllStatus() url, _ := common.NewURL("dubbo://192.168.10.10:20000/com.ikurento.user.UserProvider") hc := NewDefaultHealthChecker(&url).(*DefaultHealthChecker) invoker := NewMockInvoker(url, 1) @@ -49,7 +50,7 @@ func TestDefaultHealthChecker_IsHealthy(t *testing.T) { } func TestDefaultHealthChecker_getCircuitBreakerSleepWindowTime(t *testing.T) { - + defer protocol.CleanAllStatus() url, _ := common.NewURL("dubbo://192.168.10.10:20000/com.ikurento.user.UserProvider") defaultHc := NewDefaultHealthChecker(&url).(*DefaultHealthChecker) // Increase the number of failed requests @@ -75,10 +76,10 @@ func TestDefaultHealthChecker_getCircuitBreakerSleepWindowTime(t *testing.T) { request(url1, "test", 1, false, false) sleepWindowTime = defaultHc.getCircuitBreakerSleepWindowTime(protocol.GetURLStatus(url1)) assert.True(t, sleepWindowTime > 0 && sleepWindowTime < MAX_CIRCUIT_TRIPPED_TIMEOUT) - } func TestDefaultHealthChecker_getCircuitBreakerTimeout(t *testing.T) { + defer protocol.CleanAllStatus() url, _ := common.NewURL("dubbo://192.168.10.10:20000/com.ikurento.user.UserProvider") defaultHc := NewDefaultHealthChecker(&url).(*DefaultHealthChecker) timeout := defaultHc.getCircuitBreakerTimeout(protocol.GetURLStatus(url)) @@ -97,6 +98,7 @@ func TestDefaultHealthChecker_getCircuitBreakerTimeout(t *testing.T) { } func TestDefaultHealthChecker_isCircuitBreakerTripped(t *testing.T) { + defer protocol.CleanAllStatus() url, _ := common.NewURL("dubbo://192.168.10.10:20000/com.ikurento.user.UserProvider") defaultHc := NewDefaultHealthChecker(&url).(*DefaultHealthChecker) status := protocol.GetURLStatus(url) @@ -112,6 +114,7 @@ func TestDefaultHealthChecker_isCircuitBreakerTripped(t *testing.T) { } func TestNewDefaultHealthChecker(t *testing.T) { + defer protocol.CleanAllStatus() url, _ := common.NewURL("dubbo://192.168.10.10:20000/com.ikurento.user.UserProvider") defaultHc := NewDefaultHealthChecker(&url).(*DefaultHealthChecker) assert.NotNil(t, defaultHc) diff --git a/cluster/router/condition/health_check_route_test.go b/cluster/router/condition/health_check_route_test.go index 23a11ab1b5168f8f5bee1fa6441923508725b93c..d345f199496189b0f7e1ea8ab4409e0b277dd17f 100644 --- a/cluster/router/condition/health_check_route_test.go +++ b/cluster/router/condition/health_check_route_test.go @@ -15,6 +15,7 @@ import ( ) func TestHealthCheckRouter_Route(t *testing.T) { + defer protocol.CleanAllStatus() consumerURL, _ := common.NewURL("dubbo://192.168.10.1/com.ikurento.user.UserProvider") consumerURL.SetParam(HEALTH_ROUTE_ENABLED_KEY, "true") url1, _ := common.NewURL("dubbo://192.168.10.10:20000/com.ikurento.user.UserProvider") @@ -86,6 +87,7 @@ func contains(invokers []protocol.Invoker, invoker protocol.Invoker) bool { } func TestNewHealthCheckRouter(t *testing.T) { + defer protocol.CleanAllStatus() url, _ := common.NewURL("dubbo://192.168.10.10:20000/com.ikurento.user.UserProvider") hcr, _ := NewHealthCheckRouter(&url) h := hcr.(*HealthCheckRouter) diff --git a/protocol/rpc_status.go b/protocol/rpc_status.go index fa044d71d163850c19f7bafddd082367c1c7129d..13be47c98ece1cc006250ad49ab2b9a8c3b1f625 100644 --- a/protocol/rpc_status.go +++ b/protocol/rpc_status.go @@ -167,3 +167,17 @@ func endCount0(rpcStatus *RPCStatus, elapsed int64, succeeded bool) { func CurrentTimeMillis() int64 { return time.Now().UnixNano() / int64(time.Millisecond) } + +// Destroy is used to clean all status +func CleanAllStatus() { + delete1 := func(key interface{}, value interface{}) bool { + methodStatistics.Delete(key) + return true + } + methodStatistics.Range(delete1) + delete2 := func(key interface{}, value interface{}) bool { + serviceStatistic.Delete(key) + return true + } + serviceStatistic.Range(delete2) +} diff --git a/protocol/rpc_status_test.go b/protocol/rpc_status_test.go index ffdb3b535667f32e96c3af2be84851655abf5954..5a07f44eab0db60ba65a155d6c6190ab4ce2d716 100644 --- a/protocol/rpc_status_test.go +++ b/protocol/rpc_status_test.go @@ -14,7 +14,7 @@ import ( ) func TestBeginCount(t *testing.T) { - defer destroy() + defer CleanAllStatus() url, _ := common.NewURL("dubbo://192.168.10.10:20000/com.ikurento.user.UserProvider") BeginCount(url, "test") @@ -28,7 +28,7 @@ func TestBeginCount(t *testing.T) { } func TestEndCount(t *testing.T) { - defer destroy() + defer CleanAllStatus() url, _ := common.NewURL("dubbo://192.168.10.10:20000/com.ikurento.user.UserProvider") EndCount(url, "test", 100, true) @@ -41,7 +41,7 @@ func TestEndCount(t *testing.T) { } func TestGetMethodStatus(t *testing.T) { - defer destroy() + defer CleanAllStatus() url, _ := common.NewURL("dubbo://192.168.10.10:20000/com.ikurento.user.UserProvider") status := GetMethodStatus(url, "test") @@ -50,7 +50,7 @@ func TestGetMethodStatus(t *testing.T) { } func TestGetUrlStatus(t *testing.T) { - defer destroy() + defer CleanAllStatus() url, _ := common.NewURL("dubbo://192.168.10.10:20000/com.ikurento.user.UserProvider") status := GetURLStatus(url) @@ -59,7 +59,7 @@ func TestGetUrlStatus(t *testing.T) { } func Test_beginCount0(t *testing.T) { - defer destroy() + defer CleanAllStatus() url, _ := common.NewURL("dubbo://192.168.10.10:20000/com.ikurento.user.UserProvider") status := GetURLStatus(url) @@ -68,7 +68,7 @@ func Test_beginCount0(t *testing.T) { } func Test_All(t *testing.T) { - defer destroy() + defer CleanAllStatus() url, _ := common.NewURL("dubbo://192.168.10.10:20000/com.ikurento.user.UserProvider") request(url, "test", 100, false, true) @@ -129,23 +129,10 @@ func request(url common.URL, method string, elapsed int64, active, succeeded boo } func TestCurrentTimeMillis(t *testing.T) { - defer destroy() + defer CleanAllStatus() c := CurrentTimeMillis() assert.NotNil(t, c) str := strconv.FormatInt(c, 10) i, _ := strconv.ParseInt(str, 10, 64) assert.Equal(t, c, i) } - -func destroy() { - delete1 := func(key interface{}, value interface{}) bool { - methodStatistics.Delete(key) - return true - } - methodStatistics.Range(delete1) - delete2 := func(key interface{}, value interface{}) bool { - serviceStatistic.Delete(key) - return true - } - serviceStatistic.Range(delete2) -}