cmd/go-contrib-init: add unit test for the cmdErr function
Change-Id: I5f03eb6ea220befb15e5318634124d1b5005e0b1
Reviewed-on: https://go-review.googlesource.com/c/tools/+/205799
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/cmd/go-contrib-init/contrib_test.go b/cmd/go-contrib-init/contrib_test.go
index c151f02..94764b0 100644
--- a/cmd/go-contrib-init/contrib_test.go
+++ b/cmd/go-contrib-init/contrib_test.go
@@ -1,7 +1,13 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
package main
import (
+ "errors"
"os"
+ "os/exec"
"runtime"
"testing"
)
@@ -33,3 +39,21 @@
}
}
}
+
+func TestCmdErr(t *testing.T) {
+ tests := []struct {
+ input error
+ want string
+ }{
+ {input: errors.New("cmd error"), want: "cmd error"},
+ {input: &exec.ExitError{ProcessState: nil, Stderr: nil}, want: "<nil>"},
+ {input: &exec.ExitError{ProcessState: nil, Stderr: []byte("test")}, want: "<nil>: test"},
+ }
+
+ for i, tt := range tests {
+ got := cmdErr(tt.input)
+ if got != tt.want {
+ t.Fatalf("%d. got %q, want %q", i, got, tt.want)
+ }
+ }
+}