Skip to content

Commit

Permalink
Don't call cmp in non testing file (#5370)
Browse files Browse the repository at this point in the history
* Don't call cmp in non testing file
  • Loading branch information
zasweq committed May 23, 2022
1 parent 081c688 commit ed75225
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 8 deletions.
2 changes: 1 addition & 1 deletion xds/internal/balancer/clusterresolver/config.go
Expand Up @@ -121,7 +121,7 @@ func (dm DiscoveryMechanism) Equal(b DiscoveryMechanism) bool {
return false
case dm.DNSHostname != b.DNSHostname:
return false
case !dm.OutlierDetection.Equal(b.OutlierDetection):
case !dm.OutlierDetection.EqualIgnoringChildPolicy(b.OutlierDetection):
return false
}

Expand Down
12 changes: 5 additions & 7 deletions xds/internal/balancer/outlierdetection/config.go
Expand Up @@ -22,7 +22,6 @@ package outlierdetection
import (
"time"

"github.com/google/go-cmp/cmp"
internalserviceconfig "google.golang.org/grpc/internal/serviceconfig"
"google.golang.org/grpc/serviceconfig"
)
Expand Down Expand Up @@ -154,8 +153,10 @@ type LBConfig struct {
ChildPolicy *internalserviceconfig.BalancerConfig `json:"childPolicy,omitempty"`
}

// Equal returns whether the LBConfig is the same with the parameter.
func (lbc *LBConfig) Equal(lbc2 *LBConfig) bool {
// EqualIgnoringChildPolicy returns whether the LBConfig is same with the
// parameter outside of the child policy, only comparing the Outlier Detection
// specific configuration.
func (lbc *LBConfig) EqualIgnoringChildPolicy(lbc2 *LBConfig) bool {
if lbc == nil && lbc2 == nil {
return true
}
Expand All @@ -177,8 +178,5 @@ func (lbc *LBConfig) Equal(lbc2 *LBConfig) bool {
if !lbc.SuccessRateEjection.Equal(lbc2.SuccessRateEjection) {
return false
}
if !lbc.FailurePercentageEjection.Equal(lbc2.FailurePercentageEjection) {
return false
}
return cmp.Equal(lbc.ChildPolicy, lbc2.ChildPolicy)
return lbc.FailurePercentageEjection.Equal(lbc2.FailurePercentageEjection)
}
72 changes: 72 additions & 0 deletions xds/internal/balancer/outlierdetection/config_test.go
@@ -0,0 +1,72 @@
/*
*
* Copyright 2022 gRPC authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package outlierdetection

import (
"reflect"
"testing"
)

func TestSuccessRateEjection(t *testing.T) {
fields := map[string]bool{
"StdevFactor": true,
"EnforcementPercentage": true,
"MinimumHosts": true,
"RequestVolume": true,
}
typ := reflect.TypeOf(SuccessRateEjection{})
for i := 0; i < typ.NumField(); i++ {
if n := typ.Field(i).Name; !fields[n] {
t.Errorf("New field in SuccessRateEjection %q, update this test and Equal", n)
}
}
}

func TestEqualFieldsFailurePercentageEjection(t *testing.T) {
fields := map[string]bool{
"Threshold": true,
"EnforcementPercentage": true,
"MinimumHosts": true,
"RequestVolume": true,
}
typ := reflect.TypeOf(FailurePercentageEjection{})
for i := 0; i < typ.NumField(); i++ {
if n := typ.Field(i).Name; !fields[n] {
t.Errorf("New field in FailurePercentageEjection %q, update this test and Equal", n)
}
}
}

func TestEqualFieldsLBConfig(t *testing.T) {
fields := map[string]bool{
"LoadBalancingConfig": true,
"Interval": true,
"BaseEjectionTime": true,
"MaxEjectionTime": true,
"MaxEjectionPercent": true,
"SuccessRateEjection": true,
"FailurePercentageEjection": true,
"ChildPolicy": true,
}
typ := reflect.TypeOf(LBConfig{})
for i := 0; i < typ.NumField(); i++ {
if n := typ.Field(i).Name; !fields[n] {
t.Errorf("New field in LBConfig %q, update this test and EqualIgnoringChildPolicy", n)
}
}
}

0 comments on commit ed75225

Please sign in to comment.