From 9dc0bf6378063780bb88abfae3f60cac9ece48a0 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Wed, 3 Dec 2014 23:20:45 +0100 Subject: [PATCH] Fix reusing chunker --- chunker/chunker.go | 1 + chunker/chunker_test.go | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/chunker/chunker.go b/chunker/chunker.go index 6fe5ab32c..a69855df7 100644 --- a/chunker/chunker.go +++ b/chunker/chunker.go @@ -90,6 +90,7 @@ func (c *Chunker) reset() { for i := 0; i < WindowSize; i++ { c.window[i] = 0 } + c.closed = false c.digest = 0 c.wpos = 0 c.pos = 0 diff --git a/chunker/chunker_test.go b/chunker/chunker_test.go index a62075c1f..a7a50b96f 100644 --- a/chunker/chunker_test.go +++ b/chunker/chunker_test.go @@ -126,6 +126,16 @@ func TestChunker(t *testing.T) { ch.Free() } +func TestChunkerReuse(t *testing.T) { + // test multiple uses of the same chunker + for i := 0; i < 4; i++ { + buf := get_random(23, 32*1024*1024) + ch := chunker.New(bytes.NewReader(buf)) + test_with_data(t, ch, chunks1) + ch.Free() + } +} + func BenchmarkChunker(b *testing.B) { size := 10 * 1024 * 1024 buf := get_random(23, size)