aboutsummaryrefslogtreecommitdiffstats
path: root/formats/packp/advrefs/advrefs_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'formats/packp/advrefs/advrefs_test.go')
-rw-r--r--formats/packp/advrefs/advrefs_test.go315
1 files changed, 0 insertions, 315 deletions
diff --git a/formats/packp/advrefs/advrefs_test.go b/formats/packp/advrefs/advrefs_test.go
deleted file mode 100644
index 6950ba5..0000000
--- a/formats/packp/advrefs/advrefs_test.go
+++ /dev/null
@@ -1,315 +0,0 @@
-package advrefs_test
-
-import (
- "bytes"
- "fmt"
- "io"
- "strings"
- "testing"
-
- "gopkg.in/src-d/go-git.v4/core"
- "gopkg.in/src-d/go-git.v4/formats/packp/advrefs"
- "gopkg.in/src-d/go-git.v4/formats/packp/pktline"
-
- . "gopkg.in/check.v1"
-)
-
-func Test(t *testing.T) { TestingT(t) }
-
-type SuiteDecodeEncode struct{}
-
-var _ = Suite(&SuiteDecodeEncode{})
-
-func (s *SuiteDecodeEncode) test(c *C, in []string, exp []string) {
- var err error
- var input io.Reader
- {
- var buf bytes.Buffer
- p := pktline.NewEncoder(&buf)
- err = p.EncodeString(in...)
- c.Assert(err, IsNil)
- input = &buf
- }
-
- var expected []byte
- {
- var buf bytes.Buffer
- p := pktline.NewEncoder(&buf)
- err = p.EncodeString(exp...)
- c.Assert(err, IsNil)
-
- expected = buf.Bytes()
- }
-
- var obtained []byte
- {
- ar := advrefs.New()
- d := advrefs.NewDecoder(input)
- err = d.Decode(ar)
- c.Assert(err, IsNil)
-
- var buf bytes.Buffer
- e := advrefs.NewEncoder(&buf)
- err := e.Encode(ar)
- c.Assert(err, IsNil)
-
- obtained = buf.Bytes()
- }
-
- c.Assert(obtained, DeepEquals, expected,
- Commentf("input = %v\nobtained = %q\nexpected = %q\n",
- in, string(obtained), string(expected)))
-}
-
-func (s *SuiteDecodeEncode) TestNoHead(c *C) {
- input := []string{
- "0000000000000000000000000000000000000000 capabilities^{}\x00",
- pktline.FlushString,
- }
-
- expected := []string{
- "0000000000000000000000000000000000000000 capabilities^{}\x00\n",
- pktline.FlushString,
- }
-
- s.test(c, input, expected)
-}
-
-func (s *SuiteDecodeEncode) TestNoHeadSmart(c *C) {
- input := []string{
- "# service=git-upload-pack\n",
- "0000000000000000000000000000000000000000 capabilities^{}\x00",
- pktline.FlushString,
- }
-
- expected := []string{
- "# service=git-upload-pack\n",
- "0000000000000000000000000000000000000000 capabilities^{}\x00\n",
- pktline.FlushString,
- }
-
- s.test(c, input, expected)
-}
-
-func (s *SuiteDecodeEncode) TestNoHeadSmartBug(c *C) {
- input := []string{
- "# service=git-upload-pack\n",
- pktline.FlushString,
- "0000000000000000000000000000000000000000 capabilities^{}\x00\n",
- pktline.FlushString,
- }
-
- expected := []string{
- "# service=git-upload-pack\n",
- pktline.FlushString,
- "0000000000000000000000000000000000000000 capabilities^{}\x00\n",
- pktline.FlushString,
- }
-
- s.test(c, input, expected)
-}
-
-func (s *SuiteDecodeEncode) TestRefs(c *C) {
- input := []string{
- "6ecf0ef2c2dffb796033e5a02219af86ec6584e5 HEAD\x00symref=HEAD:/refs/heads/master ofs-delta multi_ack",
- "a6930aaee06755d1bdcfd943fbf614e4d92bb0c7 refs/heads/master",
- "5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c refs/tags/v2.6.11-tree\n",
- "7777777777777777777777777777777777777777 refs/tags/v2.6.12-tree",
- pktline.FlushString,
- }
-
- expected := []string{
- "6ecf0ef2c2dffb796033e5a02219af86ec6584e5 HEAD\x00multi_ack ofs-delta symref=HEAD:/refs/heads/master\n",
- "a6930aaee06755d1bdcfd943fbf614e4d92bb0c7 refs/heads/master\n",
- "5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c refs/tags/v2.6.11-tree\n",
- "7777777777777777777777777777777777777777 refs/tags/v2.6.12-tree\n",
- pktline.FlushString,
- }
-
- s.test(c, input, expected)
-}
-
-func (s *SuiteDecodeEncode) TestPeeled(c *C) {
- input := []string{
- "6ecf0ef2c2dffb796033e5a02219af86ec6584e5 HEAD\x00symref=HEAD:/refs/heads/master ofs-delta multi_ack",
- "7777777777777777777777777777777777777777 refs/tags/v2.6.12-tree\n",
- "8888888888888888888888888888888888888888 refs/tags/v2.6.12-tree^{}",
- "a6930aaee06755d1bdcfd943fbf614e4d92bb0c7 refs/heads/master\n",
- "5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c refs/tags/v2.6.11-tree",
- "c39ae07f393806ccf406ef966e9a15afc43cc36a refs/tags/v2.6.11-tree^{}\n",
- pktline.FlushString,
- }
-
- expected := []string{
- "6ecf0ef2c2dffb796033e5a02219af86ec6584e5 HEAD\x00multi_ack ofs-delta symref=HEAD:/refs/heads/master\n",
- "a6930aaee06755d1bdcfd943fbf614e4d92bb0c7 refs/heads/master\n",
- "5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c refs/tags/v2.6.11-tree\n",
- "c39ae07f393806ccf406ef966e9a15afc43cc36a refs/tags/v2.6.11-tree^{}\n",
- "7777777777777777777777777777777777777777 refs/tags/v2.6.12-tree\n",
- "8888888888888888888888888888888888888888 refs/tags/v2.6.12-tree^{}\n",
- pktline.FlushString,
- }
-
- s.test(c, input, expected)
-}
-
-func (s *SuiteDecodeEncode) TestAll(c *C) {
- input := []string{
- "6ecf0ef2c2dffb796033e5a02219af86ec6584e5 HEAD\x00symref=HEAD:/refs/heads/master ofs-delta multi_ack\n",
- "a6930aaee06755d1bdcfd943fbf614e4d92bb0c7 refs/heads/master\n",
- "5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c refs/tags/v2.6.11-tree",
- "c39ae07f393806ccf406ef966e9a15afc43cc36a refs/tags/v2.6.11-tree^{}\n",
- "7777777777777777777777777777777777777777 refs/tags/v2.6.12-tree\n",
- "8888888888888888888888888888888888888888 refs/tags/v2.6.12-tree^{}",
- "shallow 1111111111111111111111111111111111111111",
- "shallow 2222222222222222222222222222222222222222\n",
- pktline.FlushString,
- }
-
- expected := []string{
- "6ecf0ef2c2dffb796033e5a02219af86ec6584e5 HEAD\x00multi_ack ofs-delta symref=HEAD:/refs/heads/master\n",
- "a6930aaee06755d1bdcfd943fbf614e4d92bb0c7 refs/heads/master\n",
- "5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c refs/tags/v2.6.11-tree\n",
- "c39ae07f393806ccf406ef966e9a15afc43cc36a refs/tags/v2.6.11-tree^{}\n",
- "7777777777777777777777777777777777777777 refs/tags/v2.6.12-tree\n",
- "8888888888888888888888888888888888888888 refs/tags/v2.6.12-tree^{}\n",
- "shallow 1111111111111111111111111111111111111111\n",
- "shallow 2222222222222222222222222222222222222222\n",
- pktline.FlushString,
- }
-
- s.test(c, input, expected)
-}
-
-func (s *SuiteDecodeEncode) TestAllSmart(c *C) {
- input := []string{
- "# service=git-upload-pack\n",
- pktline.FlushString,
- "6ecf0ef2c2dffb796033e5a02219af86ec6584e5 HEAD\x00symref=HEAD:/refs/heads/master ofs-delta multi_ack\n",
- "a6930aaee06755d1bdcfd943fbf614e4d92bb0c7 refs/heads/master\n",
- "5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c refs/tags/v2.6.11-tree\n",
- "c39ae07f393806ccf406ef966e9a15afc43cc36a refs/tags/v2.6.11-tree^{}\n",
- "7777777777777777777777777777777777777777 refs/tags/v2.6.12-tree\n",
- "8888888888888888888888888888888888888888 refs/tags/v2.6.12-tree^{}\n",
- "shallow 1111111111111111111111111111111111111111\n",
- "shallow 2222222222222222222222222222222222222222\n",
- pktline.FlushString,
- }
-
- expected := []string{
- "# service=git-upload-pack\n",
- pktline.FlushString,
- "6ecf0ef2c2dffb796033e5a02219af86ec6584e5 HEAD\x00multi_ack ofs-delta symref=HEAD:/refs/heads/master\n",
- "a6930aaee06755d1bdcfd943fbf614e4d92bb0c7 refs/heads/master\n",
- "5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c refs/tags/v2.6.11-tree\n",
- "c39ae07f393806ccf406ef966e9a15afc43cc36a refs/tags/v2.6.11-tree^{}\n",
- "7777777777777777777777777777777777777777 refs/tags/v2.6.12-tree\n",
- "8888888888888888888888888888888888888888 refs/tags/v2.6.12-tree^{}\n",
- "shallow 1111111111111111111111111111111111111111\n",
- "shallow 2222222222222222222222222222222222222222\n",
- pktline.FlushString,
- }
-
- s.test(c, input, expected)
-}
-
-func (s *SuiteDecodeEncode) TestAllSmartBug(c *C) {
- input := []string{
- "# service=git-upload-pack\n",
- pktline.FlushString,
- "6ecf0ef2c2dffb796033e5a02219af86ec6584e5 HEAD\x00symref=HEAD:/refs/heads/master ofs-delta multi_ack\n",
- "a6930aaee06755d1bdcfd943fbf614e4d92bb0c7 refs/heads/master\n",
- "5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c refs/tags/v2.6.11-tree\n",
- "c39ae07f393806ccf406ef966e9a15afc43cc36a refs/tags/v2.6.11-tree^{}\n",
- "7777777777777777777777777777777777777777 refs/tags/v2.6.12-tree\n",
- "8888888888888888888888888888888888888888 refs/tags/v2.6.12-tree^{}\n",
- "shallow 1111111111111111111111111111111111111111\n",
- "shallow 2222222222222222222222222222222222222222\n",
- pktline.FlushString,
- }
-
- expected := []string{
- "# service=git-upload-pack\n",
- pktline.FlushString,
- "6ecf0ef2c2dffb796033e5a02219af86ec6584e5 HEAD\x00multi_ack ofs-delta symref=HEAD:/refs/heads/master\n",
- "a6930aaee06755d1bdcfd943fbf614e4d92bb0c7 refs/heads/master\n",
- "5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c refs/tags/v2.6.11-tree\n",
- "c39ae07f393806ccf406ef966e9a15afc43cc36a refs/tags/v2.6.11-tree^{}\n",
- "7777777777777777777777777777777777777777 refs/tags/v2.6.12-tree\n",
- "8888888888888888888888888888888888888888 refs/tags/v2.6.12-tree^{}\n",
- "shallow 1111111111111111111111111111111111111111\n",
- "shallow 2222222222222222222222222222222222222222\n",
- pktline.FlushString,
- }
-
- s.test(c, input, expected)
-}
-
-func ExampleDecoder_Decode() {
- // Here is a raw advertised-ref message.
- raw := "" +
- "0065a6930aaee06755d1bdcfd943fbf614e4d92bb0c7 HEAD\x00multi_ack ofs-delta symref=HEAD:/refs/heads/master\n" +
- "003fa6930aaee06755d1bdcfd943fbf614e4d92bb0c7 refs/heads/master\n" +
- "00441111111111111111111111111111111111111111 refs/tags/v2.6.11-tree\n" +
- "00475555555555555555555555555555555555555555 refs/tags/v2.6.11-tree^{}\n" +
- "0035shallow 5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c\n" +
- "0000"
-
- // Use the raw message as our input.
- input := strings.NewReader(raw)
-
- // Create a advref.Decoder reading from our input.
- d := advrefs.NewDecoder(input)
-
- // Decode the input into a newly allocated AdvRefs value.
- ar := advrefs.New()
- _ = d.Decode(ar) // error check ignored for brevity
-
- // Do something interesting with the AdvRefs, e.g. print its contents.
- fmt.Println("head =", ar.Head)
- fmt.Println("capabilities =", ar.Capabilities.String())
- fmt.Println("...")
- fmt.Println("shallows =", ar.Shallows)
- // Output: head = a6930aaee06755d1bdcfd943fbf614e4d92bb0c7
- // capabilities = multi_ack ofs-delta symref=HEAD:/refs/heads/master
- // ...
- // shallows = [5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c]
-}
-
-func ExampleEncoder_Encode() {
- // Create an AdvRefs with the contents you want...
- ar := advrefs.New()
-
- // ...add a hash for the HEAD...
- head := core.NewHash("1111111111111111111111111111111111111111")
- ar.Head = &head
-
- // ...add some server capabilities...
- ar.Capabilities.Add("symref", "HEAD:/refs/heads/master")
- ar.Capabilities.Add("ofs-delta")
- ar.Capabilities.Add("multi_ack")
-
- // ...add a couple of references...
- ar.References["refs/heads/master"] = core.NewHash("2222222222222222222222222222222222222222")
- ar.References["refs/tags/v1"] = core.NewHash("3333333333333333333333333333333333333333")
-
- // ...including a peeled ref...
- ar.Peeled["refs/tags/v1"] = core.NewHash("4444444444444444444444444444444444444444")
-
- // ...and finally add a shallow
- ar.Shallows = append(ar.Shallows, core.NewHash("5555555555555555555555555555555555555555"))
-
- // Encode the advrefs.Contents to a bytes.Buffer.
- // You can encode into stdout too, but you will not be able
- // see the '\x00' after "HEAD".
- var buf bytes.Buffer
- e := advrefs.NewEncoder(&buf)
- _ = e.Encode(ar) // error checks ignored for brevity
-
- // Print the contents of the buffer as a quoted string.
- // Printing is as a non-quoted string will be prettier but you
- // will miss the '\x00' after "HEAD".
- fmt.Printf("%q", buf.String())
- // Output:
- // "00651111111111111111111111111111111111111111 HEAD\x00multi_ack ofs-delta symref=HEAD:/refs/heads/master\n003f2222222222222222222222222222222222222222 refs/heads/master\n003a3333333333333333333333333333333333333333 refs/tags/v1\n003d4444444444444444444444444444444444444444 refs/tags/v1^{}\n0035shallow 5555555555555555555555555555555555555555\n0000"
-}