in config/testing/roundtrip.go [39:76]
func GetRoundtripTestCases(t *testing.T, scheme *runtime.Scheme, codecs serializer.CodecFactory) []TestCase {
cases := []TestCase{}
versionsForKind := map[schema.GroupKind][]string{}
for gvk := range scheme.AllKnownTypes() {
if gvk.Version != runtime.APIVersionInternal {
versionsForKind[gvk.GroupKind()] = append(versionsForKind[gvk.GroupKind()], gvk.Version)
}
}
for gk, versions := range versionsForKind {
testdir := filepath.Join("testdata", gk.Kind, "roundtrip")
dirs, err := ioutil.ReadDir(testdir)
if err != nil {
t.Fatalf("failed to read testdir %s: %v", testdir, err)
}
for _, dir := range dirs {
for _, vin := range versions {
for _, vout := range versions {
marshalGVK := gk.WithVersion(vout)
codec, err := getCodecForGV(codecs, marshalGVK.GroupVersion())
if err != nil {
t.Fatalf("failed to get codec for %v: %v", marshalGVK.GroupVersion().String(), err)
}
testname := dir.Name()
cases = append(cases, TestCase{
name: fmt.Sprintf("%s_%sTo%s_%s", gk.Kind, vin, vout, testname),
in: filepath.Join(testdir, testname, vin+".yaml"),
out: filepath.Join(testdir, testname, vout+".yaml"),
codec: codec,
})
}
}
}
}
return cases
}