From 878a96e76157859e13f55fd986d346d88bdf60c2 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Thu, 18 Sep 2014 22:34:08 +0200 Subject: [PATCH] Fix missing byte --- chunker/chunker.go | 2 +- chunker/chunker_test.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/chunker/chunker.go b/chunker/chunker.go index b3950bf13..003db39fc 100644 --- a/chunker/chunker.go +++ b/chunker/chunker.go @@ -186,7 +186,7 @@ func (c *chunker) Next() (*Chunk, error) { c.digest ^= mod_table[index] if (c.count+i+1 >= MinSize && (c.digest&splitmask) == 0) || c.count+i+1 >= MaxSize { - c.data = append(c.data, c.buf[c.bpos:c.bpos+i]...) + c.data = append(c.data, c.buf[c.bpos:c.bpos+i+1]...) c.count += i + 1 c.pos += i + 1 c.bpos += i + 1 diff --git a/chunker/chunker_test.go b/chunker/chunker_test.go index 5ec4fbe1e..8c17a57d5 100644 --- a/chunker/chunker_test.go +++ b/chunker/chunker_test.go @@ -64,6 +64,11 @@ func test_with_data(t *testing.T, chunker chunker.Chunker, chunks []chunk) { i, chunk.Length, c.Length) } + if len(c.Data) != chunk.Length { + t.Fatalf("Data length for chunk %d does not match: expected %d, got %d", + i, chunk.Length, len(c.Data)) + } + if c.Cut != chunk.CutFP { t.Fatalf("Cut fingerprint for chunk %d does not match: expected %016x, got %016x", i, chunk.CutFP, c.Cut)