diff --git a/src/crypto/md5/md5_test.go b/src/crypto/md5/md5_test.go index acd456af2151782686a90f6acb20b4a736cde8a3..851e7fb10d42f59530d8a5dd9d6933d71dff908a 100644 --- a/src/crypto/md5/md5_test.go +++ b/src/crypto/md5/md5_test.go @@ -211,6 +211,20 @@ func TestLargeHashes(t *testing.T) { } } +func TestAllocations(t *testing.T) { + in := []byte("hello, world!") + out := make([]byte, 0, Size) + h := New() + n := int(testing.AllocsPerRun(10, func() { + h.Reset() + h.Write(in) + out = h.Sum(out[:0]) + })) + if n > 0 { + t.Errorf("allocs = %d, want 0", n) + } +} + var bench = New() var buf = make([]byte, 1024*1024*8+1) var sum = make([]byte, bench.Size()) diff --git a/src/crypto/md5/md5block_generic.go b/src/crypto/md5/md5block_generic.go index ea4fbcd0b41012630b43ca7e584ccfb2c0efd02a..23ed75304f96eb38efc9c2b87391705faff2dea7 100644 --- a/src/crypto/md5/md5block_generic.go +++ b/src/crypto/md5/md5block_generic.go @@ -9,4 +9,6 @@ package md5 const haveAsm = false -var block = blockGeneric +func block(dig *digest, p []byte) { + blockGeneric(dig, p) +} diff --git a/src/crypto/sha1/sha1_test.go b/src/crypto/sha1/sha1_test.go index c3e6010af121928d28227bb4d1095c5437fa14e4..ab43c7792d4949800532408cd407fe33ce4c31e1 100644 --- a/src/crypto/sha1/sha1_test.go +++ b/src/crypto/sha1/sha1_test.go @@ -210,6 +210,20 @@ func TestLargeHashes(t *testing.T) { } } +func TestAllocations(t *testing.T) { + in := []byte("hello, world!") + out := make([]byte, 0, Size) + h := New() + n := int(testing.AllocsPerRun(10, func() { + h.Reset() + h.Write(in) + out = h.Sum(out[:0]) + })) + if n > 0 { + t.Errorf("allocs = %d, want 0", n) + } +} + var bench = New() var buf = make([]byte, 8192) diff --git a/src/crypto/sha1/sha1block_generic.go b/src/crypto/sha1/sha1block_generic.go index feaba5a23abab38cb230443280f0fbfdf45b6f20..105aa31832238ac912ace2387ae5fc69c02983cd 100644 --- a/src/crypto/sha1/sha1block_generic.go +++ b/src/crypto/sha1/sha1block_generic.go @@ -7,4 +7,6 @@ package sha1 -var block = blockGeneric +func block(dig *digest, p []byte) { + blockGeneric(dig, p) +} diff --git a/src/crypto/sha256/sha256_test.go b/src/crypto/sha256/sha256_test.go index a2794b015dbc44375cb502afc08fe53d38111b8a..702aa0b371abb6d65b57c235479f7bcedcc14277 100644 --- a/src/crypto/sha256/sha256_test.go +++ b/src/crypto/sha256/sha256_test.go @@ -289,6 +289,20 @@ func TestLargeHashes(t *testing.T) { } } +func TestAllocations(t *testing.T) { + in := []byte("hello, world!") + out := make([]byte, 0, Size) + h := New() + n := int(testing.AllocsPerRun(10, func() { + h.Reset() + h.Write(in) + out = h.Sum(out[:0]) + })) + if n > 0 { + t.Errorf("allocs = %d, want 0", n) + } +} + var bench = New() var buf = make([]byte, 8192) diff --git a/src/crypto/sha256/sha256block_generic.go b/src/crypto/sha256/sha256block_generic.go index 620c048b93c0672c3957e0a9374a2ceb4b82b220..0f2bf8b2315fad7aa5fff4208a1f89f2a84edd49 100644 --- a/src/crypto/sha256/sha256block_generic.go +++ b/src/crypto/sha256/sha256block_generic.go @@ -7,4 +7,6 @@ package sha256 -var block = blockGeneric +func block(dig *digest, p []byte) { + blockGeneric(dig, p) +} diff --git a/src/crypto/sha512/sha512_test.go b/src/crypto/sha512/sha512_test.go index 0e1528fc69f6018162473f9223557a7cfbee9d3a..aea772c7da5e60a4df3d2e85fee0025b87497c86 100644 --- a/src/crypto/sha512/sha512_test.go +++ b/src/crypto/sha512/sha512_test.go @@ -888,6 +888,20 @@ func TestLargeHashes(t *testing.T) { } } +func TestAllocations(t *testing.T) { + in := []byte("hello, world!") + out := make([]byte, 0, Size) + h := New() + n := int(testing.AllocsPerRun(10, func() { + h.Reset() + h.Write(in) + out = h.Sum(out[:0]) + })) + if n > 0 { + t.Errorf("allocs = %d, want 0", n) + } +} + var bench = New() var buf = make([]byte, 8192)