sigs.k8s.io/kubebuilder/v3@v3.14.0/pkg/plugin/util/exec_test.go (about) 1 /* 2 Copyright 2022 The Kubernetes Authors. 3 Licensed under the Apache License, Version 2.0 (the "License"); 4 you may not use this file except in compliance with the License. 5 You may obtain a copy of the License at 6 http://www.apache.org/licenses/LICENSE-2.0 7 Unless required by applicable law or agreed to in writing, software 8 distributed under the License is distributed on an "AS IS" BASIS, 9 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 See the License for the specific language governing permissions and 11 limitations under the License. 12 */ 13 14 package util 15 16 import ( 17 "bytes" 18 "os/exec" 19 "strings" 20 21 . "github.com/onsi/ginkgo/v2" 22 . "github.com/onsi/gomega" 23 ) 24 25 var _ = Describe("RunCmd", func() { 26 var ( 27 output *bytes.Buffer 28 err error 29 ) 30 BeforeEach(func() { 31 output = &bytes.Buffer{} 32 }) 33 AfterEach(func() { 34 output.Reset() 35 }) 36 It("executes the command and redirects output to stdout", func() { 37 cmd := exec.Command("echo", "test") 38 cmd.Stdout = output 39 err = cmd.Run() 40 Expect(err).ToNot(HaveOccurred()) 41 Expect(strings.TrimSpace(output.String())).To(Equal("test")) 42 }) 43 It("returns an error if the command fails", func() { 44 err = RunCmd("unknown command", "unknowncommand") 45 Expect(err).To(HaveOccurred()) 46 }) 47 })