This commit is contained in:
Guilhem Lettron 2023-11-17 14:59:07 +01:00 committed by GitHub
commit 9ede36eb73
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 44 additions and 4 deletions

View file

@ -20,7 +20,6 @@ package cobra
import (
"fmt"
"io"
"os"
"reflect"
"strconv"
"strings"
@ -229,11 +228,10 @@ func stringInSlice(a string, list []string) bool {
return false
}
// CheckErr prints the msg with the prefix 'Error:' and exits with error code 1. If the msg is nil, it does nothing.
// CheckErr prints the msg with the prefix 'panic:' and exits with code != 0. If the msg is nil, it does nothing.
func CheckErr(msg interface{}) {
if msg != nil {
fmt.Fprintln(os.Stderr, "Error:", msg)
os.Exit(1)
panic(msg)
}
}

View file

@ -15,6 +15,7 @@
package cobra
import (
"errors"
"testing"
"text/template"
)
@ -40,3 +41,44 @@ func TestAddTemplateFunctions(t *testing.T) {
t.Errorf("Expected UsageString: %v\nGot: %v", expected, got)
}
}
func TestCheckErr(t *testing.T) {
tests := []struct {
name string
msg interface{}
panic bool
}{
{
name: "no error",
msg: nil,
panic: false,
},
{
name: "panic string",
msg: "test",
panic: true,
},
{
name: "panic error",
msg: errors.New("test error"),
panic: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
defer func() {
r := recover()
if r != nil {
if !tt.panic {
t.Error("Didn't expect panic")
}
} else {
if tt.panic {
t.Error("Expected to panic")
}
}
}()
CheckErr(tt.msg)
})
}
}