func (S) TestFilter(c *C) { p := pipe.Line( pipe.System("echo out1; echo err1 1>&2; echo out2; echo err2 1>&2; echo out3"), pipe.Filter(func(line []byte) bool { return string(line) != "out2" }), ) output, err := pipe.Output(p) c.Assert(err, IsNil) c.Assert(string(output), Equals, "out1\nout3\n") }
func (S) TestFilterNoNewLine(c *C) { p := pipe.Line( pipe.Print("out1\nout2\nout3"), pipe.Filter(func(line []byte) bool { return string(line) != "out2" }), ) output, err := pipe.Output(p) c.Assert(err, IsNil) c.Assert(string(output), Equals, "out1\nout3") }
func (S) TestLineNesting(c *C) { b := &bytes.Buffer{} p := pipe.Line( pipe.Print("hello"), pipe.Line( pipe.Filter(func(line []byte) bool { return true }), pipe.Exec("sed", "s/l/k/g"), ), pipe.Write(b), ) err := pipe.Run(p) c.Assert(err, IsNil) c.Assert(b.String(), Equals, "hekko") }