Mercurial > yakumo_izuru > aya
changeset 5:e0ee0721d34f draft
added tests for eval command runner
author | zaitsev.serge |
---|---|
date | Fri, 05 Dec 2014 18:21:42 +0000 |
parents | 05fc24caac37 |
children | cb66f5b86616 |
files | zs.go zs_test.go |
diffstat | 2 files changed, 24 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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 } }
--- 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