diff options
Diffstat (limited to 'formats/packp/pktline/pktlines_test.go')
-rw-r--r-- | formats/packp/pktline/pktlines_test.go | 231 |
1 files changed, 0 insertions, 231 deletions
diff --git a/formats/packp/pktline/pktlines_test.go b/formats/packp/pktline/pktlines_test.go deleted file mode 100644 index e0ba16b..0000000 --- a/formats/packp/pktline/pktlines_test.go +++ /dev/null @@ -1,231 +0,0 @@ -package pktline_test - -import ( - "io" - "io/ioutil" - "os" - "strings" - "testing" - - "gopkg.in/src-d/go-git.v4/formats/packp/pktline" - - . "gopkg.in/check.v1" -) - -func Test(t *testing.T) { TestingT(t) } - -type SuitePktLine struct { -} - -var _ = Suite(&SuitePktLine{}) - -func (s *SuitePktLine) TestNewIsEmpty(c *C) { - p := pktline.New() - - b, err := ioutil.ReadAll(p) - c.Assert(err, IsNil) - c.Assert(b, DeepEquals, []byte{}) -} - -func (s *SuitePktLine) TestAddFlush(c *C) { - p := pktline.New() - p.AddFlush() - - b, err := ioutil.ReadAll(p) - c.Assert(err, IsNil) - c.Assert(string(b), DeepEquals, "0000") -} - -func (s *SuitePktLine) TestAdd(c *C) { - for i, test := range [...]struct { - input [][]byte - expected []byte - }{ - { - input: [][]byte{ - []byte("hello\n"), - }, - expected: []byte("000ahello\n"), - }, { - input: [][]byte{ - []byte("hello\n"), - []byte("world!\n"), - []byte("foo"), - }, - expected: []byte("000ahello\n000bworld!\n0007foo"), - }, { - input: [][]byte{ - []byte(strings.Repeat("a", pktline.MaxPayloadSize)), - }, - expected: []byte( - "fff0" + strings.Repeat("a", pktline.MaxPayloadSize)), - }, { - input: [][]byte{ - []byte(strings.Repeat("a", pktline.MaxPayloadSize)), - []byte(strings.Repeat("b", pktline.MaxPayloadSize)), - }, - expected: []byte( - "fff0" + strings.Repeat("a", pktline.MaxPayloadSize) + - "fff0" + strings.Repeat("b", pktline.MaxPayloadSize)), - }, - } { - p := pktline.New() - err := p.Add(test.input...) - c.Assert(err, IsNil, Commentf("input %d = %v", i, test.input)) - - obtained, err := ioutil.ReadAll(p) - c.Assert(err, IsNil, Commentf("input %d = %v", i, test.input)) - - c.Assert(obtained, DeepEquals, test.expected, - Commentf("input %d = %v", i, test.input)) - } -} - -func (s *SuitePktLine) TestAddErrEmptyPayload(c *C) { - for _, input := range [...][][]byte{ - [][]byte{ - []byte{}, - }, - [][]byte{ - []byte(nil), - }, - [][]byte{ - []byte("hello world!"), - []byte{}, - }, - [][]byte{ - []byte{}, - []byte("hello world!"), - }, - } { - p := pktline.New() - err := p.Add(input...) - c.Assert(err, Equals, pktline.ErrEmptyPayload) - } -} - -func (s *SuitePktLine) TestAddErrPayloadTooLong(c *C) { - for _, input := range [...][][]byte{ - [][]byte{ - []byte(strings.Repeat("a", pktline.MaxPayloadSize+1)), - }, - [][]byte{ - []byte("hello world!"), - []byte(strings.Repeat("a", pktline.MaxPayloadSize+1)), - }, - [][]byte{ - []byte("hello world!"), - []byte(strings.Repeat("a", pktline.MaxPayloadSize+1)), - []byte("foo"), - }, - } { - p := pktline.New() - err := p.Add(input...) - c.Assert(err, Equals, pktline.ErrPayloadTooLong, - Commentf("%v\n", input)) - } -} - -func (s *SuitePktLine) TestAddString(c *C) { - for i, test := range [...]struct { - input []string - expected []byte - }{ - { - input: []string{ - "hello\n", - }, - expected: []byte("000ahello\n"), - }, { - input: []string{ - "hello\n", - "world!\n", - "foo", - }, - expected: []byte("000ahello\n000bworld!\n0007foo"), - }, { - input: []string{ - strings.Repeat("a", pktline.MaxPayloadSize), - }, - expected: []byte( - "fff0" + strings.Repeat("a", pktline.MaxPayloadSize)), - }, { - input: []string{ - strings.Repeat("a", pktline.MaxPayloadSize), - strings.Repeat("b", pktline.MaxPayloadSize), - }, - expected: []byte( - "fff0" + strings.Repeat("a", pktline.MaxPayloadSize) + - "fff0" + strings.Repeat("b", pktline.MaxPayloadSize)), - }, - } { - p := pktline.New() - err := p.AddString(test.input...) - c.Assert(err, IsNil, Commentf("input %d = %v", i, test.input)) - - obtained, err := ioutil.ReadAll(p) - c.Assert(err, IsNil, Commentf("input %d = %v", i, test.input)) - - c.Assert(obtained, DeepEquals, test.expected, - Commentf("input %d = %v", i, test.input)) - } -} - -func (s *SuitePktLine) TestAddStringErrEmptyPayload(c *C) { - for _, input := range [...][]string{ - []string{""}, - []string{"hello world!", ""}, - []string{"", "hello world!"}, - } { - p := pktline.New() - err := p.AddString(input...) - c.Assert(err, Equals, pktline.ErrEmptyPayload) - } -} - -func (s *SuitePktLine) TestAddStringErrPayloadTooLong(c *C) { - for _, input := range [...][]string{ - []string{ - strings.Repeat("a", pktline.MaxPayloadSize+1), - }, - []string{ - "hello world!", - strings.Repeat("a", pktline.MaxPayloadSize+1), - }, - []string{ - "hello world!", - strings.Repeat("a", pktline.MaxPayloadSize+1), - "foo", - }, - } { - p := pktline.New() - err := p.AddString(input...) - c.Assert(err, Equals, pktline.ErrPayloadTooLong, - Commentf("%v\n", input)) - } -} - -func ExamplePktLines() { - // Create an empty collection of pktlines. - p := pktline.New() - - // Add two strings as payloads ("foo\n" and "bar\n"), they will - // end up as two consecutive pktlines. - p.AddString("foo\n", "bar\n") // error checks removed for brevity - - // You can also add byte slices as payloads... - p.Add([]byte("hello\n"), []byte("world!\n")) - - // Add a flush-pkt. - p.AddFlush() - - // PktLines are Readers, so you can directly read the full sequence. - io.Copy(os.Stdout, p) - - // Output: - // 0008foo - // 0008bar - // 000ahello - // 000bworld! - // 0000 -} |