mirror of
https://git.mills.io/prologic/zs.git
synced 2024-11-03 01:38:30 -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)
|
outbuf := bytes.NewBuffer(nil)
|
||||||
err := run(path.Join(ZSDIR, cmd[0]), cmd[1:], vars, outbuf)
|
err := run(path.Join(ZSDIR, cmd[0]), cmd[1:], vars, outbuf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
if _, ok := err.(*exec.ExitError); ok {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
outbuf = bytes.NewBuffer(nil)
|
outbuf = bytes.NewBuffer(nil)
|
||||||
err := run(cmd[0], cmd[1:], vars, outbuf)
|
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
|
return "", err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
19
zs_test.go
19
zs_test.go
@ -5,6 +5,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
"os/exec"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"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) {
|
func TestHelperProcess(*testing.T) {
|
||||||
if os.Getenv("ZS_HELPER") != "1" {
|
if os.Getenv("ZS_HELPER") != "1" {
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user