9 "github.com/stretchr/testify/assert"
12 func TestDecodeIndexV2(t *testing.T) {
13 buf := make([]byte, 0, indexV2Width+indexFanoutWidth)
14 buf = append(buf, 0xff, 0x74, 0x4f, 0x63)
15 buf = append(buf, 0x0, 0x0, 0x0, 0x2)
16 for i := 0; i < indexFanoutEntries; i++ {
19 binary.BigEndian.PutUint32(x, uint32(3))
21 buf = append(buf, x...)
24 idx, err := DecodeIndex(bytes.NewReader(buf))
26 assert.NoError(t, err)
27 assert.EqualValues(t, 3, idx.Count())
30 func TestDecodeIndexV2InvalidFanout(t *testing.T) {
31 buf := make([]byte, 0, indexV2Width+indexFanoutWidth-indexFanoutEntryWidth)
32 buf = append(buf, 0xff, 0x74, 0x4f, 0x63)
33 buf = append(buf, 0x0, 0x0, 0x0, 0x2)
34 buf = append(buf, make([]byte, indexFanoutWidth-1)...)
36 idx, err := DecodeIndex(bytes.NewReader(buf))
38 assert.Equal(t, ErrShortFanout, err)
42 func TestDecodeIndexV1(t *testing.T) {
43 idx, err := DecodeIndex(bytes.NewReader(make([]byte, indexFanoutWidth)))
45 assert.NoError(t, err)
46 assert.EqualValues(t, 0, idx.Count())
49 func TestDecodeIndexV1InvalidFanout(t *testing.T) {
50 idx, err := DecodeIndex(bytes.NewReader(make([]byte, indexFanoutWidth-1)))
52 assert.Equal(t, ErrShortFanout, err)
56 func TestDecodeIndexUnsupportedVersion(t *testing.T) {
57 buf := make([]byte, 0, 4+4)
58 buf = append(buf, 0xff, 0x74, 0x4f, 0x63)
59 buf = append(buf, 0x0, 0x0, 0x0, 0x3)
61 idx, err := DecodeIndex(bytes.NewReader(buf))
63 assert.EqualError(t, err, "gitobj/pack: unsupported version: 3")
67 func TestDecodeIndexEmptyContents(t *testing.T) {
68 idx, err := DecodeIndex(bytes.NewReader(make([]byte, 0)))
70 assert.Equal(t, io.EOF, err)