aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/os/exec/exec.go3
-rw-r--r--src/os/exec/exec_test.go8
2 files changed, 11 insertions, 0 deletions
diff --git a/src/os/exec/exec.go b/src/os/exec/exec.go
index 0c495755116..505de58e84d 100644
--- a/src/os/exec/exec.go
+++ b/src/os/exec/exec.go
@@ -374,6 +374,9 @@ func lookExtensions(path, dir string) (string, error) {
// The Wait method will return the exit code and release associated resources
// once the command exits.
func (c *Cmd) Start() error {
+ if c.Path == "" && c.lookPathErr == nil {
+ c.lookPathErr = errors.New("exec: no command")
+ }
if c.lookPathErr != nil {
c.closeDescriptors(c.closeAfterStart)
c.closeDescriptors(c.closeAfterWait)
diff --git a/src/os/exec/exec_test.go b/src/os/exec/exec_test.go
index d854e0de843..a951be718d3 100644
--- a/src/os/exec/exec_test.go
+++ b/src/os/exec/exec_test.go
@@ -1156,3 +1156,11 @@ func TestChildCriticalEnv(t *testing.T) {
t.Error("no SYSTEMROOT found")
}
}
+
+func TestNoPath(t *testing.T) {
+ err := new(exec.Cmd).Start()
+ want := "exec: no command"
+ if err == nil || err.Error() != want {
+ t.Errorf("new(Cmd).Start() = %v, want %q", err, want)
+ }
+}