mirror of
https://git.mills.io/prologic/zs.git
synced 2024-09-07 20:54:20 -04:00
added tests for eval command runner
This commit is contained in:
parent
a87c8336aa
commit
9df80c20d5
7
zs.go
7
zs.go
@ -110,10 +110,13 @@ func eval(cmd []string, vars map[string]string) (string, error) {
|
||||
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
|
||||
}
|
||||
}
|
||||
|
19
zs_test.go
19
zs_test.go
@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
@ -123,6 +124,24 @@ func TestRun(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user