github.com/dahs81/otto@v0.2.1-0.20160126165905-6400716cf085/helper/exec/exec_test.go (about) 1 package exec 2 3 import ( 4 "bytes" 5 "os/exec" 6 "runtime" 7 "testing" 8 9 "github.com/hashicorp/otto/ui" 10 ) 11 12 func TestRun(t *testing.T) { 13 if runtime.GOOS == "windows" { 14 t.Skip("Windows. Not running this test.") 15 } 16 17 if _, err := exec.LookPath("echo"); err != nil { 18 t.Skipf("echo not found, skipping test: %s", err) 19 } 20 21 cmd := exec.Command("echo", "-n", "hello world") 22 ui := new(ui.Mock) 23 24 err := Run(ui, cmd) 25 if err != nil { 26 t.Fatalf("err: %s", err) 27 } 28 29 var output bytes.Buffer 30 for _, v := range ui.RawBuf { 31 output.WriteString(v) 32 } 33 34 if output.String() != "hello world" { 35 t.Fatalf("bad: %s", output.String()) 36 } 37 }