# HG changeset patch # User zaitsev.serge # Date 1417803702 0 # Node ID e0ee0721d34f6b0ff82d27ac96c1217ba23635bb # Parent 05fc24caac377a6e60ae2d1c518172fddc52ca1b added tests for eval command runner diff -r 05fc24caac37 -r e0ee0721d34f zs.go --- a/zs.go Fri Dec 05 18:09:03 2014 +0000 +++ b/zs.go Fri Dec 05 18:21:42 2014 +0000 @@ -110,10 +110,13 @@ outbuf := bytes.NewBuffer(nil) err := run(path.Join(ZSDIR, cmd[0]), cmd[1:], vars, outbuf) if err != nil { - log.Println(err) + if _, ok := err.(*exec.ExitError); ok { + return "", err + } outbuf = bytes.NewBuffer(nil) err := run(cmd[0], cmd[1:], vars, outbuf) - if err != nil { + // Return exit errors, but ignore if the command was not found + if _, ok := err.(*exec.ExitError); ok { return "", err } } diff -r 05fc24caac37 -r e0ee0721d34f zs_test.go --- a/zs_test.go Fri Dec 05 18:09:03 2014 +0000 +++ b/zs_test.go Fri Dec 05 18:21:42 2014 +0000 @@ -5,6 +5,7 @@ "fmt" "log" "os" + "os/exec" "strings" "testing" ) @@ -123,6 +124,24 @@ } } +func TestEvalCommand(t *testing.T) { + s, err := eval([]string{"echo", "hello"}, map[string]string{}) + if err != nil { + t.Error(err) + } + if s != "hello\n" { + t.Error(s) + } + _, err = eval([]string{"cat", "bogus/file"}, map[string]string{}) + if _, ok := err.(*exec.ExitError); !ok { + t.Error("expected ExitError") + } + _, err = eval([]string{"missing command"}, map[string]string{}) + if err != nil { + t.Error("missing command should be ignored") + } +} + func TestHelperProcess(*testing.T) { if os.Getenv("ZS_HELPER") != "1" { return