DeepEqual method seems cleaner than adding Defaulting before every

reflect.DeepEqual call
This commit is contained in:
Jerome Brette
2019-07-25 03:13:15 +00:00
parent b7405f3872
commit d783bbc0bc

View File

@@ -6,7 +6,6 @@ package target_test
import ( import (
"encoding/base64" "encoding/base64"
"fmt" "fmt"
"reflect"
"strings" "strings"
"testing" "testing"
@@ -334,12 +333,10 @@ vars:
t.Fatalf("unexpected size %d", len(vars)) t.Fatalf("unexpected size %d", len(vars))
} }
for i := range vars[:2] { for i := range vars[:2] {
// We have to enforce the Defaulting call in someVars[i] // By using Var.DeepEqual, we are protecting the code
// to protect from a potential call of vars[i].ObjRef.GVK() // from a potential invocation of vars[i].ObjRef.GVK()
// during AccumulateTarget // during AccumulateTarget
vars[i].Defaulting() if !vars[i].DeepEqual(someVars[i]) {
someVars[i].Defaulting()
if !reflect.DeepEqual(vars[i], someVars[i]) {
t.Fatalf("unexpected var[%d]:\n %v\n %v", i, vars[i], someVars[i]) t.Fatalf("unexpected var[%d]:\n %v\n %v", i, vars[i], someVars[i])
} }
} }
@@ -392,9 +389,10 @@ resources:
t.Fatalf("expected 4 vars, got %d", len(vars)) t.Fatalf("expected 4 vars, got %d", len(vars))
} }
for i := range vars { for i := range vars {
vars[i].Defaulting() // By using Var.DeepEqual, we are protecting the code
someVars[i].Defaulting() // from a potential invocation of vars[i].ObjRef.GVK()
if !reflect.DeepEqual(vars[i], someVars[i]) { // during AccumulateTarget
if !vars[i].DeepEqual(someVars[i]) {
t.Fatalf("unexpected var[%d]:\n %v\n %v", i, vars[i], someVars[i]) t.Fatalf("unexpected var[%d]:\n %v\n %v", i, vars[i], someVars[i])
} }
} }