You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

multi_hasher_test.go 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // Copyright 2022 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package packages
  4. import (
  5. "encoding/hex"
  6. "testing"
  7. "github.com/stretchr/testify/assert"
  8. )
  9. const (
  10. expectedMD5 = "e3bef03c5f3b7f6b3ab3e3053ed71e9c"
  11. expectedSHA1 = "060b3b99f88e96085b4a68e095bc9e3d1d91e1bc"
  12. expectedSHA256 = "6ccce4863b70f258d691f59609d31b4502e1ba5199942d3bc5d35d17a4ce771d"
  13. expectedSHA512 = "7f70e439ba8c52025c1f06cdf6ae443c4b8ed2e90059cdb9bbbf8adf80846f185a24acca9245b128b226d61753b0d7ed46580a69c8999eeff3bc13a4d0bd816c"
  14. )
  15. func TestMultiHasherSums(t *testing.T) {
  16. t.Run("Sums", func(t *testing.T) {
  17. h := NewMultiHasher()
  18. h.Write([]byte("gitea"))
  19. hashMD5, hashSHA1, hashSHA256, hashSHA512 := h.Sums()
  20. assert.Equal(t, expectedMD5, hex.EncodeToString(hashMD5))
  21. assert.Equal(t, expectedSHA1, hex.EncodeToString(hashSHA1))
  22. assert.Equal(t, expectedSHA256, hex.EncodeToString(hashSHA256))
  23. assert.Equal(t, expectedSHA512, hex.EncodeToString(hashSHA512))
  24. })
  25. t.Run("State", func(t *testing.T) {
  26. h := NewMultiHasher()
  27. h.Write([]byte("git"))
  28. state, err := h.MarshalBinary()
  29. assert.NoError(t, err)
  30. h2 := NewMultiHasher()
  31. err = h2.UnmarshalBinary(state)
  32. assert.NoError(t, err)
  33. h2.Write([]byte("ea"))
  34. hashMD5, hashSHA1, hashSHA256, hashSHA512 := h2.Sums()
  35. assert.Equal(t, expectedMD5, hex.EncodeToString(hashMD5))
  36. assert.Equal(t, expectedSHA1, hex.EncodeToString(hashSHA1))
  37. assert.Equal(t, expectedSHA256, hex.EncodeToString(hashSHA256))
  38. assert.Equal(t, expectedSHA512, hex.EncodeToString(hashSHA512))
  39. })
  40. }