func TestCommandLines(t *testing.T) { stretcher.Init() now := time.Now() ymd := now.Format("20060102") hm := now.Format("1504") cmdlines := stretcher.CommandLines{ stretcher.CommandLine("date +%Y%m%d"), stretcher.CommandLine("date +%H%M"), } cmdlines.Invoke() output := stretcher.LogBuffer.String() if strings.Index(output, ymd) == -1 { t.Error("invalid output", output) } if strings.Index(output, hm) == -1 { t.Error("invalid output", output) } }
func TestCommandLinesFail(t *testing.T) { stretcher.Init() cmdlines := stretcher.CommandLines{ stretcher.CommandLine("echo 'FOO'; echo 'BAR' 2>&1; false"), } err := cmdlines.Invoke() if err == nil { t.Error("false command must fail") } if fmt.Sprintf("%s", err) != "failed: echo 'FOO'; echo 'BAR' 2>&1; false exit status 1" { t.Error("invalid err message.", err) } output := string(stretcher.LogBuffer.Bytes()) if !strings.Contains(output, "FOO\n") { t.Error("output does not contain FOO\\n") } if !strings.Contains(output, "BAR\n") { t.Error("output does not contain BAR\\n") } }