diff options
author | Máximo Cuadros <mcuadros@gmail.com> | 2018-09-18 12:18:00 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-18 12:18:00 +0200 |
commit | f69f5304328165153e452382f44aa2b41df36d0f (patch) | |
tree | 58a7fb3508e0f7dd637a1e4f62984bfcaa7cb84b /plumbing/cache/buffer_test.go | |
parent | 2fb32d2a8601213b6db109d3e9028c6b64af1874 (diff) | |
parent | edfc16e3ea6b0ce2533bacb5f370d042042b4784 (diff) | |
download | go-git-f69f5304328165153e452382f44aa2b41df36d0f.tar.gz |
Merge pull request #958 from kuba--/fix-cachesize
Fix potential LRU cache size issue.
Diffstat (limited to 'plumbing/cache/buffer_test.go')
-rw-r--r-- | plumbing/cache/buffer_test.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/plumbing/cache/buffer_test.go b/plumbing/cache/buffer_test.go index 262138a..3e3adc2 100644 --- a/plumbing/cache/buffer_test.go +++ b/plumbing/cache/buffer_test.go @@ -1,6 +1,7 @@ package cache import ( + "bytes" "sync" . "gopkg.in/check.v1" @@ -38,6 +39,28 @@ func (s *BufferSuite) TestPutSameBuffer(c *C) { } } +func (s *ObjectSuite) TestPutSameBufferWithDifferentSize(c *C) { + aBuffer := []byte("a") + bBuffer := []byte("bbb") + cBuffer := []byte("ccccc") + dBuffer := []byte("ddddddd") + + cache := NewBufferLRU(7 * Byte) + cache.Put(1, aBuffer) + cache.Put(1, bBuffer) + cache.Put(1, cBuffer) + cache.Put(1, dBuffer) + + c.Assert(cache.MaxSize, Equals, 7*Byte) + c.Assert(cache.actualSize, Equals, 7*Byte) + c.Assert(cache.ll.Len(), Equals, 1) + + buf, ok := cache.Get(1) + c.Assert(bytes.Equal(buf, dBuffer), Equals, true) + c.Assert(FileSize(len(buf)), Equals, 7*Byte) + c.Assert(ok, Equals, true) +} + func (s *BufferSuite) TestPutBigBuffer(c *C) { for _, o := range s.c { o.Put(1, s.bBuffer) |