func TestCommandLinesPipe(t *testing.T) { stretcher.Init() var buf bytes.Buffer for i := 0; i < 10; i++ { buf.WriteString(fmt.Sprintf("foo%d\n", i)) } toWrite := buf.Bytes() cmdlines := stretcher.CommandLines{ stretcher.CommandLine("cat > test/tmp/cmdoutput"), stretcher.CommandLine("cat"), stretcher.CommandLine("echo ok"), } defer os.Remove("test/tmp/cmdoutput") err := cmdlines.InvokePipe(&buf) if err != nil { t.Error(err) } wrote, err := ioutil.ReadFile("test/tmp/cmdoutput") if err != nil { t.Error(err) } if bytes.Compare(toWrite, wrote) != 0 { t.Error("unexpected wrote data", wrote) } }
func TestCommandLinesPipeIgnoreEPIPE(t *testing.T) { stretcher.Init(0) var buf bytes.Buffer for i := 0; i < 1025; i++ { buf.WriteString("0123456789012345678901234567890123456789012345678901234567890123") // 64 bytes } cmdlines := stretcher.CommandLines{ stretcher.CommandLine("echo ok"), } err := cmdlines.InvokePipe(&buf) if err != nil { t.Error(err) } if strings.Index(stretcher.LogBuffer.String(), "broken pipe") != -1 { t.Error("broken pipe was occuered") } }