diff --git a/api/filesys/fsnode.go b/api/filesys/fsnode.go index 97e0408e0..2593e705c 100644 --- a/api/filesys/fsnode.go +++ b/api/filesys/fsnode.go @@ -560,7 +560,7 @@ func isLegalFileNameForCreation(n string) bool { func (n *fsNode) RegExpGlob(pattern string) ([]string, error) { var result []string var expression = regexp.MustCompile(pattern) - n.WalkMe(func(path string, info os.FileInfo, err error) error { + err := n.WalkMe(func(path string, info os.FileInfo, err error) error { if err != nil { return err } @@ -571,6 +571,9 @@ func (n *fsNode) RegExpGlob(pattern string) ([]string, error) { } return nil }) + if err != nil { + return nil, err + } sort.Strings(result) return result, nil } @@ -582,7 +585,7 @@ func (n *fsNode) RegExpGlob(pattern string) ([]string, error) { // This is how /bin/ls behaves. func (n *fsNode) Glob(pattern string) ([]string, error) { var result []string - n.WalkMe(func(path string, info os.FileInfo, err error) error { + err := n.WalkMe(func(path string, info os.FileInfo, err error) error { if err != nil { return err } @@ -597,6 +600,9 @@ func (n *fsNode) Glob(pattern string) ([]string, error) { } return nil }) + if err != nil { + return nil, err + } sort.Strings(result) return result, nil } diff --git a/api/internal/accumulator/loadconfigfromcrds.go b/api/internal/accumulator/loadconfigfromcrds.go index 87d3de73c..0a79d483d 100644 --- a/api/internal/accumulator/loadconfigfromcrds.go +++ b/api/internal/accumulator/loadconfigfromcrds.go @@ -178,9 +178,12 @@ func loadCrdIntoConfig( } } if property.Ref.GetURL() != nil { - loadCrdIntoConfig( + err = loadCrdIntoConfig( theConfig, theGvk, theMap, property.Ref.String(), append(path, propName)) + if err != nil { + return + } } } return nil diff --git a/api/internal/accumulator/loadconfigfromcrds_test.go b/api/internal/accumulator/loadconfigfromcrds_test.go index 1f489c50b..9544717e6 100644 --- a/api/internal/accumulator/loadconfigfromcrds_test.go +++ b/api/internal/accumulator/loadconfigfromcrds_test.go @@ -7,6 +7,7 @@ import ( "reflect" "testing" + "github.com/stretchr/testify/require" "sigs.k8s.io/kustomize/api/filesys" . "sigs.k8s.io/kustomize/api/internal/accumulator" "sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig" @@ -162,16 +163,13 @@ func TestLoadCRDs(t *testing.T) { } fSys := filesys.MakeFsInMemory() - fSys.WriteFile("/testpath/crd.json", []byte(crdContent)) + err := fSys.WriteFile("/testpath/crd.json", []byte(crdContent)) + require.NoError(t, err) ldr, err := loader.NewLoader(loader.RestrictionRootOnly, "/testpath", fSys) - if err != nil { - t.Fatalf("unexpected error:%v", err) - } + require.NoError(t, err) actualTc, err := LoadConfigFromCRDs(ldr, []string{"crd.json"}) - if err != nil { - t.Fatalf("unexpected error:%v", err) - } + require.NoError(t, err) if !reflect.DeepEqual(actualTc, expectedTc) { t.Fatalf("expected\n %v\n but got\n %v\n", expectedTc, actualTc) } diff --git a/api/internal/accumulator/resaccumulator_test.go b/api/internal/accumulator/resaccumulator_test.go index 04d7edd9c..92a7bd6ee 100644 --- a/api/internal/accumulator/resaccumulator_test.go +++ b/api/internal/accumulator/resaccumulator_test.go @@ -10,6 +10,7 @@ import ( "strings" "testing" + "github.com/stretchr/testify/require" . "sigs.k8s.io/kustomize/api/internal/accumulator" "sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig" "sigs.k8s.io/kustomize/api/provider" @@ -224,20 +225,26 @@ func TestResolveVarConflicts(t *testing.T) { // create accumulators holding apparently conflicting vars that are not // actually in conflict because they point to the same concrete value. rm0 := resmap.New() - rm0.Append(rf.FromMap(fooAws)) + err := rm0.Append(rf.FromMap(fooAws)) + require.NoError(t, err) ac0 := MakeEmptyAccumulator() - ac0.AppendAll(rm0) - ac0.MergeVars([]types.Var{varFoo}) + err = ac0.AppendAll(rm0) + require.NoError(t, err) + err = ac0.MergeVars([]types.Var{varFoo}) + require.NoError(t, err) rm1 := resmap.New() - rm1.Append(rf.FromMap(barAws)) + err = rm1.Append(rf.FromMap(barAws)) + require.NoError(t, err) ac1 := MakeEmptyAccumulator() - ac1.AppendAll(rm1) - ac1.MergeVars([]types.Var{varBar}) + err = ac1.AppendAll(rm1) + require.NoError(t, err) + err = ac1.MergeVars([]types.Var{varBar}) + require.NoError(t, err) // validate that two vars of the same name which reference the same concrete // value do not produce a conflict. - err := ac0.MergeAccumulator(ac1) + err = ac0.MergeAccumulator(ac1) if err == nil { t.Fatalf("see bug gh-1600") } @@ -246,10 +253,13 @@ func TestResolveVarConflicts(t *testing.T) { // two above (because it contains a variable whose name is used in the other // accumulators AND whose concrete values are different). rm2 := resmap.New() - rm2.Append(rf.FromMap(barGcp)) + err = rm2.Append(rf.FromMap(barGcp)) + require.NoError(t, err) ac2 := MakeEmptyAccumulator() - ac2.AppendAll(rm2) - ac2.MergeVars([]types.Var{varBar}) + err = ac2.AppendAll(rm2) + require.NoError(t, err) + err = ac2.MergeVars([]types.Var{varBar}) + require.NoError(t, err) err = ac1.MergeAccumulator(ac2) if err == nil { t.Fatalf("dupe vars w/ different concrete values should conflict") diff --git a/api/internal/generators/configmap.go b/api/internal/generators/configmap.go index 982ff684f..47498aaa5 100644 --- a/api/internal/generators/configmap.go +++ b/api/internal/generators/configmap.go @@ -40,7 +40,13 @@ func MakeConfigMap( if err = rn.LoadMapIntoConfigMapData(m); err != nil { return nil, err } - copyLabelsAndAnnotations(rn, args.Options) - setImmutable(rn, args.Options) + err = copyLabelsAndAnnotations(rn, args.Options) + if err != nil { + return nil, err + } + err = setImmutable(rn, args.Options) + if err != nil { + return nil, err + } return rn, nil } diff --git a/api/internal/plugins/execplugin/execplugin.go b/api/internal/plugins/execplugin/execplugin.go index a6f801ebb..9380558cb 100644 --- a/api/internal/plugins/execplugin/execplugin.go +++ b/api/internal/plugins/execplugin/execplugin.go @@ -89,7 +89,10 @@ type argsConfig struct { func (p *ExecPlugin) processOptionalArgsFields() error { var c argsConfig - yaml.Unmarshal(p.cfg, &c) + err := yaml.Unmarshal(p.cfg, &c) + if err != nil { + return err + } if c.ArgsOneLiner != "" { p.args, _ = shlex.Split(c.ArgsOneLiner) } diff --git a/api/internal/plugins/execplugin/execplugin_test.go b/api/internal/plugins/execplugin/execplugin_test.go index 389793cb3..77b657b9e 100644 --- a/api/internal/plugins/execplugin/execplugin_test.go +++ b/api/internal/plugins/execplugin/execplugin_test.go @@ -9,6 +9,7 @@ import ( "strings" "testing" + "github.com/stretchr/testify/require" "sigs.k8s.io/kustomize/api/filesys" . "sigs.k8s.io/kustomize/api/internal/plugins/execplugin" pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader" @@ -21,11 +22,12 @@ import ( func TestExecPluginConfig(t *testing.T) { fSys := filesys.MakeFsInMemory() - fSys.WriteFile("sed-input.txt", []byte(` + err := fSys.WriteFile("sed-input.txt", []byte(` s/$FOO/foo/g s/$BAR/bar baz/g \ \ \ `)) + require.NoError(t, err) ldr, err := fLdr.NewLoader( fLdr.RestrictionRootOnly, filesys.Separator, fSys) if err != nil { @@ -62,9 +64,10 @@ s/$BAR/bar baz/g if err != nil { t.Fatalf("unexpected err: %v", err) } - p.Config( + err = p.Config( resmap.NewPluginHelpers(ldr, pvd.GetFieldValidator(), rf, pc), yaml) + require.NoError(t, err) expected := "someteam.example.com/v1/sedtransformer/SedTransformer" if !strings.HasSuffix(p.Path(), expected) { diff --git a/api/internal/plugins/utils/utils.go b/api/internal/plugins/utils/utils.go index 2d4250789..02e163b74 100644 --- a/api/internal/plugins/utils/utils.go +++ b/api/internal/plugins/utils/utils.go @@ -192,7 +192,9 @@ func UpdateResMapValues(pluginName string, h *resmap.PluginHelpers, output []byt for _, id := range rm.AllIds() { newIdx, _ := newMap.GetIndexOfCurrentId(id) if newIdx == -1 { - rm.Remove(id) + if err = rm.Remove(id); err != nil { + return err + } } } diff --git a/api/internal/plugins/utils/utils_test.go b/api/internal/plugins/utils/utils_test.go index bd75ebada..195913590 100644 --- a/api/internal/plugins/utils/utils_test.go +++ b/api/internal/plugins/utils/utils_test.go @@ -10,6 +10,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/api/konfig" "sigs.k8s.io/kustomize/api/provider" @@ -86,8 +87,10 @@ func TestUpdateResourceOptions(t *testing.T) { } for i, c := range cases { name := fmt.Sprintf("test%d", i) - in.Append(makeConfigMap(rf, name, c.behavior, c.hashValue)) - expected.Append(makeConfigMapOptions(rf, name, c.behavior, !c.needsHash)) + err := in.Append(makeConfigMap(rf, name, c.behavior, c.hashValue)) + require.NoError(t, err) + err = expected.Append(makeConfigMapOptions(rf, name, c.behavior, !c.needsHash)) + require.NoError(t, err) } actual, err := UpdateResourceOptions(in) assert.NoError(t, err) @@ -105,10 +108,9 @@ func TestUpdateResourceOptionsWithInvalidHashAnnotationValues(t *testing.T) { for i, c := range cases { name := fmt.Sprintf("test%d", i) in := resmap.New() - in.Append(makeConfigMap(rf, name, "", &c)) - _, err := UpdateResourceOptions(in) - if err == nil { - t.Errorf("expected error from value %q", c) - } + err := in.Append(makeConfigMap(rf, name, "", &c)) + require.NoError(t, err) + _, err = UpdateResourceOptions(in) + require.Error(t, err) } } diff --git a/api/konfig/plugins_test.go b/api/konfig/plugins_test.go index 953047d86..d06b8c5c2 100644 --- a/api/konfig/plugins_test.go +++ b/api/konfig/plugins_test.go @@ -9,7 +9,7 @@ import ( "testing" "github.com/stretchr/testify/assert" - + "github.com/stretchr/testify/require" "sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/api/types" ) @@ -18,11 +18,11 @@ func TestDefaultAbsPluginHome_NoKustomizePluginHomeEnv(t *testing.T) { fSys := filesys.MakeFsInMemory() keep, isSet := os.LookupEnv(KustomizePluginHomeEnv) if isSet { - _ = os.Unsetenv(KustomizePluginHomeEnv) + unsetenv(t, KustomizePluginHomeEnv) } _, err := DefaultAbsPluginHome(fSys) if isSet { - os.Setenv(KustomizePluginHomeEnv, keep) + setenv(t, KustomizePluginHomeEnv, keep) } if err == nil { t.Fatalf("expected err") @@ -43,13 +43,13 @@ func TestDefaultAbsPluginHome_NoKustomizePluginHomeEnv(t *testing.T) { func TestDefaultAbsPluginHome_EmptyKustomizePluginHomeEnv(t *testing.T) { keep, isSet := os.LookupEnv(KustomizePluginHomeEnv) - os.Setenv(KustomizePluginHomeEnv, "") + setenv(t, KustomizePluginHomeEnv, "") _, err := DefaultAbsPluginHome(filesys.MakeFsInMemory()) if !isSet { - _ = os.Unsetenv(KustomizePluginHomeEnv) + unsetenv(t, KustomizePluginHomeEnv) } else { - _ = os.Setenv(KustomizePluginHomeEnv, keep) + setenv(t, KustomizePluginHomeEnv, keep) } if err == nil { t.Fatalf("expected err") @@ -65,16 +65,15 @@ func TestDefaultAbsPluginHome_WithKustomizePluginHomeEnv(t *testing.T) { keep, isSet := os.LookupEnv(KustomizePluginHomeEnv) if !isSet { keep = "whatever" - os.Setenv(KustomizePluginHomeEnv, keep) + setenv(t, KustomizePluginHomeEnv, keep) } - fSys.Mkdir(keep) + err := fSys.Mkdir(keep) + require.NoError(t, err) h, err := DefaultAbsPluginHome(fSys) if !isSet { - _ = os.Unsetenv(KustomizePluginHomeEnv) - } - if err != nil { - t.Fatalf("unexpected err: %v", err) + unsetenv(t, KustomizePluginHomeEnv) } + require.NoError(t, err) if h != keep { t.Fatalf("unexpected config dir: %s", h) } @@ -85,13 +84,14 @@ func TestDefaultAbsPluginHomeWithXdg(t *testing.T) { keep, isSet := os.LookupEnv(XdgConfigHomeEnv) if !isSet { keep = "whatever" - os.Setenv(XdgConfigHomeEnv, keep) + setenv(t, XdgConfigHomeEnv, keep) } configDir := filepath.Join(keep, ProgramName, RelPluginHome) - fSys.Mkdir(configDir) + err := fSys.Mkdir(configDir) + require.NoError(t, err) h, err := DefaultAbsPluginHome(fSys) if !isSet { - _ = os.Unsetenv(XdgConfigHomeEnv) + unsetenv(t, XdgConfigHomeEnv) } if err != nil { t.Fatalf("unexpected err: %v", err) @@ -105,11 +105,11 @@ func TestDefaultAbsPluginHomeNoConfig(t *testing.T) { fSys := filesys.MakeFsInMemory() keep, isSet := os.LookupEnv(XdgConfigHomeEnv) if isSet { - _ = os.Unsetenv(XdgConfigHomeEnv) + unsetenv(t, XdgConfigHomeEnv) } _, err := DefaultAbsPluginHome(fSys) if isSet { - os.Setenv(XdgConfigHomeEnv, keep) + setenv(t, XdgConfigHomeEnv, keep) } if err == nil { t.Fatalf("expected err") @@ -121,13 +121,13 @@ func TestDefaultAbsPluginHomeNoConfig(t *testing.T) { func TestDefaultAbsPluginHomeEmptyXdgConfig(t *testing.T) { keep, isSet := os.LookupEnv(XdgConfigHomeEnv) - os.Setenv(XdgConfigHomeEnv, "") + setenv(t, XdgConfigHomeEnv, "") if isSet { - _ = os.Unsetenv(XdgConfigHomeEnv) + unsetenv(t, XdgConfigHomeEnv) } _, err := DefaultAbsPluginHome(filesys.MakeFsInMemory()) if isSet { - os.Setenv(XdgConfigHomeEnv, keep) + setenv(t, XdgConfigHomeEnv, keep) } if err == nil { t.Fatalf("expected err") @@ -142,14 +142,16 @@ func TestDefaultAbsPluginHomeNoXdgWithDotConfig(t *testing.T) { fSys := filesys.MakeFsInMemory() configDir := filepath.Join( HomeDir(), XdgConfigHomeEnvDefault, ProgramName, RelPluginHome) - fSys.Mkdir(configDir) + err := fSys.Mkdir(configDir) + require.NoError(t, err) keep, isSet := os.LookupEnv(XdgConfigHomeEnv) if isSet { - _ = os.Unsetenv(XdgConfigHomeEnv) + unsetenv(t, XdgConfigHomeEnv) } - s, _ := DefaultAbsPluginHome(fSys) + s, err := DefaultAbsPluginHome(fSys) + require.NoError(t, err) if isSet { - os.Setenv(XdgConfigHomeEnv, keep) + setenv(t, XdgConfigHomeEnv, keep) } if s != configDir { t.Fatalf("unexpected config dir: %s", s) @@ -160,16 +162,26 @@ func TestDefaultAbsPluginHomeNoXdgJustHomeDir(t *testing.T) { fSys := filesys.MakeFsInMemory() configDir := filepath.Join( HomeDir(), ProgramName, RelPluginHome) - fSys.Mkdir(configDir) + err := fSys.Mkdir(configDir) + require.NoError(t, err) keep, isSet := os.LookupEnv(XdgConfigHomeEnv) if isSet { - _ = os.Unsetenv(XdgConfigHomeEnv) + unsetenv(t, XdgConfigHomeEnv) } - s, _ := DefaultAbsPluginHome(fSys) + s, err := DefaultAbsPluginHome(fSys) + require.NoError(t, err) if isSet { - os.Setenv(XdgConfigHomeEnv, keep) + setenv(t, XdgConfigHomeEnv, keep) } if s != configDir { t.Fatalf("unexpected config dir: %s", s) } } + +func setenv(t *testing.T, key, value string) { + require.NoError(t, os.Setenv(key, value)) +} + +func unsetenv(t *testing.T, key string) { + require.NoError(t, os.Unsetenv(key)) +} diff --git a/api/kv/kv_test.go b/api/kv/kv_test.go index bc362adce..8eb60ad16 100644 --- a/api/kv/kv_test.go +++ b/api/kv/kv_test.go @@ -7,6 +7,7 @@ import ( "reflect" "testing" + "github.com/stretchr/testify/require" "sigs.k8s.io/kustomize/api/filesys" ldr "sigs.k8s.io/kustomize/api/loader" valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest" @@ -83,7 +84,8 @@ func TestKeyValuesFromFileSources(t *testing.T) { } fSys := filesys.MakeFsInMemory() - fSys.WriteFile("/files/app-init.ini", []byte("FOO=bar")) + err := fSys.WriteFile("/files/app-init.ini", []byte("FOO=bar")) + require.NoError(t, err) kvl := makeKvLoader(fSys) for _, tc := range tests { kvs, err := kvl.keyValuesFromFileSources(tc.sources) diff --git a/cmd/config/completion/completion.go b/cmd/config/completion/completion.go index f91ec9749..079afc420 100644 --- a/cmd/config/completion/completion.go +++ b/cmd/config/completion/completion.go @@ -17,17 +17,18 @@ func NewCommand() *cobra.Command { DisableFlagsInUseLine: true, ValidArgs: []string{"bash", "zsh", "fish", "powershell"}, Args: cobra.ExactValidArgs(1), - Run: func(cmd *cobra.Command, args []string) { + RunE: func(cmd *cobra.Command, args []string) error { switch args[0] { case "bash": - cmd.Root().GenBashCompletion(os.Stdout) + return cmd.Root().GenBashCompletion(os.Stdout) case "zsh": - cmd.Root().GenZshCompletion(os.Stdout) + return cmd.Root().GenZshCompletion(os.Stdout) case "fish": - cmd.Root().GenFishCompletion(os.Stdout, true) + return cmd.Root().GenFishCompletion(os.Stdout, true) case "powershell": - cmd.Root().GenPowerShellCompletion(os.Stdout) + return cmd.Root().GenPowerShellCompletion(os.Stdout) } + return nil }, } } diff --git a/cmd/config/internal/commands/annotate.go b/cmd/config/internal/commands/annotate.go index efe62264e..93db621db 100644 --- a/cmd/config/internal/commands/annotate.go +++ b/cmd/config/internal/commands/annotate.go @@ -104,9 +104,9 @@ func (r *AnnotateRunner) ExecuteCmd(w io.Writer, pkgPath string) error { return err } // print error message and continue if there are multiple packages to annotate - fmt.Fprintf(w, "%s\n", err.Error()) + _, _ = fmt.Fprintf(w, "%s\n", err.Error()) } else { - fmt.Fprint(w, "added annotations in the package\n") + _, _ = fmt.Fprint(w, "added annotations in the package\n") } return nil } diff --git a/cmd/pluginator/internal/builtinplugin/builtinplugin.go b/cmd/pluginator/internal/builtinplugin/builtinplugin.go index db2ae7e63..cad21c83e 100644 --- a/cmd/pluginator/internal/builtinplugin/builtinplugin.go +++ b/cmd/pluginator/internal/builtinplugin/builtinplugin.go @@ -27,7 +27,7 @@ const ( // ConvertToBuiltInPlugin converts the input plugin file to // kustomize builtin plugin and writes it to proper directory -func ConvertToBuiltInPlugin() error { +func ConvertToBuiltInPlugin() (retErr error) { root, err := inputFileRoot() if err != nil { return err @@ -47,7 +47,12 @@ func ConvertToBuiltInPlugin() error { if err != nil { return err } - defer w.close() + defer func() { + closeErr := w.Close() + if retErr == nil { + retErr = closeErr + } + }() // This particular phrasing is required. w.write( @@ -139,10 +144,10 @@ func makeOutputFileName(root string) string { "..", "..", "..", "api", packageForGeneratedCode, root+".go") } -func (w *writer) close() { +func (w *writer) Close() error { // Do this for debugging. // fmt.Println("Generated " + makeOutputFileName(w.root)) - w.f.Close() + return w.f.Close() } func (w *writer) write(line string) { diff --git a/kustomize/commands/edit/add/addbase_test.go b/kustomize/commands/edit/add/addbase_test.go index 1d4f5b140..6a667df4e 100644 --- a/kustomize/commands/edit/add/addbase_test.go +++ b/kustomize/commands/edit/add/addbase_test.go @@ -8,6 +8,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/kustomize/v4/commands/internal/kustfile" testutils_test "sigs.k8s.io/kustomize/kustomize/v4/commands/internal/testutils" @@ -21,7 +22,8 @@ func TestAddBaseHappyPath(t *testing.T) { fSys := filesys.MakeFsInMemory() bases := strings.Split(baseDirectoryPaths, ",") for _, base := range bases { - fSys.Mkdir(base) + err := fSys.Mkdir(base) + require.NoError(t, err) } testutils_test.WriteTestKustomization(fSys) @@ -41,7 +43,8 @@ func TestAddBaseAlreadyThere(t *testing.T) { // Create fake directories bases := strings.Split(baseDirectoryPaths, ",") for _, base := range bases { - fSys.Mkdir(base) + err := fSys.Mkdir(base) + require.NoError(t, err) } testutils_test.WriteTestKustomization(fSys) diff --git a/kustomize/commands/edit/add/addcomponent_test.go b/kustomize/commands/edit/add/addcomponent_test.go index 4a821628f..74f2003b2 100644 --- a/kustomize/commands/edit/add/addcomponent_test.go +++ b/kustomize/commands/edit/add/addcomponent_test.go @@ -7,6 +7,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "sigs.k8s.io/kustomize/api/filesys" testutils_test "sigs.k8s.io/kustomize/kustomize/v4/commands/internal/testutils" ) @@ -21,8 +22,10 @@ sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. func TestAddComponentHappyPath(t *testing.T) { fSys := filesys.MakeEmptyDirInMemory() - fSys.WriteFile(componentFileName, []byte(componentFileContent)) - fSys.WriteFile(componentFileName+"another", []byte(componentFileContent)) + err := fSys.WriteFile(componentFileName, []byte(componentFileContent)) + require.NoError(t, err) + err = fSys.WriteFile(componentFileName+"another", []byte(componentFileContent)) + require.NoError(t, err) testutils_test.WriteTestKustomization(fSys) cmd := newCmdAddComponent(fSys) @@ -36,7 +39,8 @@ func TestAddComponentHappyPath(t *testing.T) { func TestAddComponentAlreadyThere(t *testing.T) { fSys := filesys.MakeFsInMemory() - fSys.WriteFile(componentFileName, []byte(componentFileContent)) + err := fSys.WriteFile(componentFileName, []byte(componentFileContent)) + require.NoError(t, err) testutils_test.WriteTestKustomization(fSys) cmd := newCmdAddComponent(fSys) @@ -49,15 +53,16 @@ func TestAddComponentAlreadyThere(t *testing.T) { func TestAddKustomizationFileAsComponent(t *testing.T) { fSys := filesys.MakeFsInMemory() - fSys.WriteFile(componentFileName, []byte(componentFileContent)) + err := fSys.WriteFile(componentFileName, []byte(componentFileContent)) + require.NoError(t, err) testutils_test.WriteTestKustomization(fSys) cmd := newCmdAddComponent(fSys) args := []string{componentFileName} - assert.NoError(t, cmd.RunE(cmd, args)) + require.NoError(t, cmd.RunE(cmd, args)) content, err := testutils_test.ReadTestKustomization(fSys) - assert.NoError(t, err) + require.NoError(t, err) assert.NotContains(t, string(content), componentFileName) } @@ -66,6 +71,5 @@ func TestAddComponentNoArgs(t *testing.T) { cmd := newCmdAddComponent(fSys) err := cmd.Execute() - assert.Error(t, err) - assert.Equal(t, "must specify a component file", err.Error()) + assert.EqualError(t, err, "must specify a component file") } diff --git a/kustomize/commands/edit/add/addmetadata_test.go b/kustomize/commands/edit/add/addmetadata_test.go index 1b50e015a..6244a4b5a 100644 --- a/kustomize/commands/edit/add/addmetadata_test.go +++ b/kustomize/commands/edit/add/addmetadata_test.go @@ -7,6 +7,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "sigs.k8s.io/kustomize/api/filesys" valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest" "sigs.k8s.io/kustomize/api/types" @@ -163,8 +164,9 @@ func TestAddAnnotationForce(t *testing.T) { // but trying to add it with --force should v = valtest_test.MakeHappyMapValidator(t) cmd = newCmdAddAnnotation(fSys, v.Validator) - cmd.Flag("force").Value.Set("true") - assert.NoError(t, cmd.RunE(cmd, args)) + err = cmd.Flag("force").Value.Set("true") + require.NoError(t, err) + require.NoError(t, cmd.RunE(cmd, args)) v.VerifyCall() } @@ -266,7 +268,8 @@ func TestAddLabelForce(t *testing.T) { // but trying to add it with --force should v = valtest_test.MakeHappyMapValidator(t) cmd = newCmdAddLabel(fSys, v.Validator) - cmd.Flag("force").Value.Set("true") + err = cmd.Flag("force").Value.Set("true") + require.NoError(t, err) assert.NoError(t, cmd.RunE(cmd, args)) v.VerifyCall() } diff --git a/kustomize/commands/edit/add/addpatch_test.go b/kustomize/commands/edit/add/addpatch_test.go index 3894545a2..670f73982 100644 --- a/kustomize/commands/edit/add/addpatch_test.go +++ b/kustomize/commands/edit/add/addpatch_test.go @@ -8,6 +8,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "sigs.k8s.io/kustomize/api/filesys" testutils_test "sigs.k8s.io/kustomize/kustomize/v4/commands/internal/testutils" ) @@ -28,7 +29,8 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit, func TestAddPatchWithFilePath(t *testing.T) { fSys := filesys.MakeEmptyDirInMemory() - fSys.WriteFile(patchFileName, []byte(patchFileContent)) + err := fSys.WriteFile(patchFileName, []byte(patchFileContent)) + require.NoError(t, err) testutils_test.WriteTestKustomization(fSys) cmd := newCmdAddPatch(fSys) @@ -53,7 +55,8 @@ func TestAddPatchWithFilePath(t *testing.T) { func TestAddPatchWithPatchContent(t *testing.T) { fSys := filesys.MakeEmptyDirInMemory() - fSys.WriteFile(patchFileName, []byte(patchFileContent)) + err := fSys.WriteFile(patchFileName, []byte(patchFileContent)) + require.NoError(t, err) testutils_test.WriteTestKustomization(fSys) cmd := newCmdAddPatch(fSys) @@ -78,7 +81,8 @@ func TestAddPatchWithPatchContent(t *testing.T) { func TestAddPatchAlreadyThere(t *testing.T) { fSys := filesys.MakeEmptyDirInMemory() - fSys.WriteFile(patchFileName, []byte(patchFileContent)) + err := fSys.WriteFile(patchFileName, []byte(patchFileContent)) + require.NoError(t, err) testutils_test.WriteTestKustomization(fSys) cmd := newCmdAddPatch(fSys) diff --git a/kustomize/commands/edit/add/addresource_test.go b/kustomize/commands/edit/add/addresource_test.go index ff0d12e10..9b926ad2a 100644 --- a/kustomize/commands/edit/add/addresource_test.go +++ b/kustomize/commands/edit/add/addresource_test.go @@ -7,6 +7,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "sigs.k8s.io/kustomize/api/filesys" testutils_test "sigs.k8s.io/kustomize/kustomize/v4/commands/internal/testutils" ) @@ -21,8 +22,10 @@ sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. func TestAddResourceHappyPath(t *testing.T) { fSys := filesys.MakeEmptyDirInMemory() - fSys.WriteFile(resourceFileName, []byte(resourceFileContent)) - fSys.WriteFile(resourceFileName+"another", []byte(resourceFileContent)) + err := fSys.WriteFile(resourceFileName, []byte(resourceFileContent)) + require.NoError(t, err) + err = fSys.WriteFile(resourceFileName+"another", []byte(resourceFileContent)) + require.NoError(t, err) testutils_test.WriteTestKustomization(fSys) cmd := newCmdAddResource(fSys) @@ -36,7 +39,8 @@ func TestAddResourceHappyPath(t *testing.T) { func TestAddResourceAlreadyThere(t *testing.T) { fSys := filesys.MakeFsInMemory() - fSys.WriteFile(resourceFileName, []byte(resourceFileContent)) + err := fSys.WriteFile(resourceFileName, []byte(resourceFileContent)) + require.NoError(t, err) testutils_test.WriteTestKustomization(fSys) cmd := newCmdAddResource(fSys) @@ -49,7 +53,8 @@ func TestAddResourceAlreadyThere(t *testing.T) { func TestAddKustomizationFileAsResource(t *testing.T) { fSys := filesys.MakeFsInMemory() - fSys.WriteFile(resourceFileName, []byte(resourceFileContent)) + err := fSys.WriteFile(resourceFileName, []byte(resourceFileContent)) + require.NoError(t, err) testutils_test.WriteTestKustomization(fSys) cmd := newCmdAddResource(fSys) diff --git a/kustomize/commands/edit/add/addtransformer_test.go b/kustomize/commands/edit/add/addtransformer_test.go index e39518fa5..113eb6999 100644 --- a/kustomize/commands/edit/add/addtransformer_test.go +++ b/kustomize/commands/edit/add/addtransformer_test.go @@ -7,6 +7,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/kustomize/v4/commands/internal/kustfile" testutils_test "sigs.k8s.io/kustomize/kustomize/v4/commands/internal/testutils" @@ -22,8 +23,10 @@ sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. func TestAddTransformerHappyPath(t *testing.T) { fSys := filesys.MakeEmptyDirInMemory() - fSys.WriteFile(transformerFileName, []byte(transformerFileContent)) - fSys.WriteFile(transformerFileName+"another", []byte(transformerFileContent)) + err := fSys.WriteFile(transformerFileName, []byte(transformerFileContent)) + require.NoError(t, err) + err = fSys.WriteFile(transformerFileName+"another", []byte(transformerFileContent)) + require.NoError(t, err) testutils_test.WriteTestKustomization(fSys) cmd := newCmdAddTransformer(fSys) @@ -37,7 +40,8 @@ func TestAddTransformerHappyPath(t *testing.T) { func TestAddTransformerAlreadyThere(t *testing.T) { fSys := filesys.MakeEmptyDirInMemory() - fSys.WriteFile(transformerFileName, []byte(transformerFileName)) + err := fSys.WriteFile(transformerFileName, []byte(transformerFileName)) + require.NoError(t, err) testutils_test.WriteTestKustomization(fSys) cmd := newCmdAddTransformer(fSys) @@ -61,18 +65,18 @@ func TestAddTransformerNoArgs(t *testing.T) { cmd := newCmdAddTransformer(fSys) err := cmd.Execute() - assert.Error(t, err) - assert.Equal(t, "must specify a transformer file", err.Error()) + assert.EqualError(t, err, "must specify a transformer file") } func TestAddTransformerMissingKustomizationYAML(t *testing.T) { fSys := filesys.MakeEmptyDirInMemory() - fSys.WriteFile(transformerFileName, []byte(transformerFileContent)) - fSys.WriteFile(transformerFileName+"another", []byte(transformerFileContent)) + err := fSys.WriteFile(transformerFileName, []byte(transformerFileContent)) + require.NoError(t, err) + err = fSys.WriteFile(transformerFileName+"another", []byte(transformerFileContent)) + require.NoError(t, err) cmd := newCmdAddTransformer(fSys) args := []string{transformerFileName + "*"} - err := cmd.RunE(cmd, args) - assert.Error(t, err) - assert.Equal(t, "Missing kustomization file 'kustomization.yaml'.\n", err.Error()) + err = cmd.RunE(cmd, args) + assert.EqualError(t, err, "Missing kustomization file 'kustomization.yaml'.\n") } diff --git a/kustomize/commands/edit/add/flagsandargs_test.go b/kustomize/commands/edit/add/flagsandargs_test.go index 6517094b6..173a965e3 100644 --- a/kustomize/commands/edit/add/flagsandargs_test.go +++ b/kustomize/commands/edit/add/flagsandargs_test.go @@ -8,7 +8,7 @@ import ( "testing" "github.com/stretchr/testify/assert" - + "github.com/stretchr/testify/require" "sigs.k8s.io/kustomize/api/filesys" ) @@ -88,13 +88,17 @@ func TestDataConfigValidation_Flags(t *testing.T) { func TestExpandFileSource(t *testing.T) { fSys := filesys.MakeEmptyDirInMemory() - fSys.Create("dir/fa1") - fSys.Create("dir/fa2") - fSys.Create("dir/readme") + _, err := fSys.Create("dir/fa1") + require.NoError(t, err) + _, err = fSys.Create("dir/fa2") + require.NoError(t, err) + _, err = fSys.Create("dir/readme") + require.NoError(t, err) fa := flagsAndArgs{ FileSources: []string{"dir/fa*"}, } - fa.ExpandFileSource(fSys) + err = fa.ExpandFileSource(fSys) + require.NoError(t, err) expected := []string{ "dir/fa1", "dir/fa2", @@ -106,14 +110,19 @@ func TestExpandFileSource(t *testing.T) { func TestExpandFileSourceWithKey(t *testing.T) { fSys := filesys.MakeEmptyDirInMemory() - fSys.Create("dir/faaaaaaaaaabbbbbbbbbccccccccccccccccc") - fSys.Create("dir/foobar") - fSys.Create("dir/simplebar") - fSys.Create("dir/readme") + _, err := fSys.Create("dir/faaaaaaaaaabbbbbbbbbccccccccccccccccc") + require.NoError(t, err) + _, err = fSys.Create("dir/foobar") + require.NoError(t, err) + _, err = fSys.Create("dir/simplebar") + require.NoError(t, err) + _, err = fSys.Create("dir/readme") + require.NoError(t, err) fa := flagsAndArgs{ FileSources: []string{"foo-key=dir/fa*", "bar-key=dir/foobar", "dir/simplebar"}, } - fa.ExpandFileSource(fSys) + err = fa.ExpandFileSource(fSys) + require.NoError(t, err) expected := []string{ "foo-key=dir/faaaaaaaaaabbbbbbbbbccccccccccccccccc", "bar-key=dir/foobar", @@ -126,13 +135,16 @@ func TestExpandFileSourceWithKey(t *testing.T) { func TestExpandFileSourceWithKeyAndError(t *testing.T) { fSys := filesys.MakeFsInMemory() - fSys.Create("dir/fa1") - fSys.Create("dir/fa2") - fSys.Create("dir/readme") + _, err := fSys.Create("dir/fa1") + require.NoError(t, err) + _, err = fSys.Create("dir/fa2") + require.NoError(t, err) + _, err = fSys.Create("dir/readme") + require.NoError(t, err) fa := flagsAndArgs{ FileSources: []string{"foo-key=dir/fa*"}, } - err := fa.ExpandFileSource(fSys) + err = fa.ExpandFileSource(fSys) if err == nil { t.Fatalf("FileSources should not be correctly expanded: %v", fa.FileSources) } diff --git a/kustomize/commands/internal/kustfile/kustomizationfile_test.go b/kustomize/commands/internal/kustfile/kustomizationfile_test.go index 685980638..094ebf8a6 100644 --- a/kustomize/commands/internal/kustfile/kustomizationfile_test.go +++ b/kustomize/commands/internal/kustfile/kustomizationfile_test.go @@ -9,7 +9,7 @@ import ( "testing" "github.com/google/go-cmp/cmp" - + "github.com/stretchr/testify/require" "sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/api/konfig" "sigs.k8s.io/kustomize/api/types" @@ -125,7 +125,8 @@ configMapGenerator: ` for _, n := range konfig.RecognizedKustomizationFileNames() { fSys := filesys.MakeFsInMemory() - fSys.WriteFile(n, []byte(kcontent)) + err := fSys.WriteFile(n, []byte(kcontent)) + require.NoError(t, err) k, err := NewKustomizationFile(fSys) if err != nil { t.Fatalf("Unexpected Error: %v", err) diff --git a/kyaml/yaml/rnode_test.go b/kyaml/yaml/rnode_test.go index 5477750d4..3897825f4 100644 --- a/kyaml/yaml/rnode_test.go +++ b/kyaml/yaml/rnode_test.go @@ -10,6 +10,7 @@ import ( "github.com/google/go-cmp/cmp" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "gopkg.in/yaml.v3" ) @@ -1671,7 +1672,8 @@ func TestSetName(t *testing.T) { if err := rn.UnmarshalJSON([]byte(deploymentBiggerJson)); err != nil { t.Fatalf("unexpected unmarshaljson err: %v", err) } - rn.SetName("marge") + err := rn.SetName("marge") + require.NoError(t, err) if expected, actual := "marge", rn.GetName(); expected != actual { t.Fatalf("expected '%s', got '%s'", expected, actual) } @@ -1682,12 +1684,15 @@ func TestSetNamespace(t *testing.T) { if err := rn.UnmarshalJSON([]byte(deploymentBiggerJson)); err != nil { t.Fatalf("unexpected unmarshaljson err: %v", err) } - rn.SetNamespace("flanders") - meta, _ := rn.GetMeta() + err := rn.SetNamespace("flanders") + require.NoError(t, err) + meta, err := rn.GetMeta() + require.NoError(t, err) if expected, actual := "flanders", meta.Namespace; expected != actual { t.Fatalf("expected '%s', got '%s'", expected, actual) } } + func TestSetLabels(t *testing.T) { rn := NewRNode(nil) if err := rn.UnmarshalJSON([]byte(deploymentBiggerJson)); err != nil { diff --git a/kyaml/yaml/types.go b/kyaml/yaml/types.go index 2c424e508..81def6c87 100644 --- a/kyaml/yaml/types.go +++ b/kyaml/yaml/types.go @@ -213,7 +213,10 @@ func String(node *yaml.Node, opts ...string) (string, error) { b := &bytes.Buffer{} e := NewEncoder(b) err := e.Encode(node) - e.Close() + errClose := e.Close() + if err == nil { + err = errClose + } val := b.String() if optsSet.Has(Trim) { val = strings.TrimSpace(val) diff --git a/plugin/someteam.example.com/v1/calvinduplicator/CalvinDuplicator.go b/plugin/someteam.example.com/v1/calvinduplicator/CalvinDuplicator.go index 7fcbe9654..5a3b49e8e 100644 --- a/plugin/someteam.example.com/v1/calvinduplicator/CalvinDuplicator.go +++ b/plugin/someteam.example.com/v1/calvinduplicator/CalvinDuplicator.go @@ -37,11 +37,20 @@ func (p *plugin) Transform(m resmap.ResMap) error { if r.GetName() == p.Name { for i := 1; i <= p.Count; i++ { c := r.DeepCopy() - c.SetName(fmt.Sprintf("%s-%d", p.Name, i)) - m.Append(c) + err := c.SetName(fmt.Sprintf("%s-%d", p.Name, i)) + if err != nil { + return err + } + err = m.Append(c) + if err != nil { + return err + } } } else { - m.Append(r) + err := m.Append(r) + if err != nil { + return err + } } } return nil