etcd/pkg/crc/crc_test.go
Matthieu MOREL cad3fce1a0 fix: use testify instead of t.Fatal or t.Error in pkg package
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-02-02 16:30:18 +01:00

44 lines
1.4 KiB
Go

// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package crc
import (
"hash/crc32"
"reflect"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
// TestHash32 tests that Hash32 provided by this package can take an initial
// crc and behaves exactly the same as the standard one in the following calls.
func TestHash32(t *testing.T) {
stdhash := crc32.New(crc32.IEEETable)
_, err := stdhash.Write([]byte("test data"))
require.NoErrorf(t, err, "unexpected write error: %v", err)
// create a new hash with stdhash.Sum32() as initial crc
hash := New(stdhash.Sum32(), crc32.IEEETable)
assert.Equalf(t, hash.Size(), stdhash.Size(), "size")
assert.Equalf(t, hash.BlockSize(), stdhash.BlockSize(), "block size")
assert.Equalf(t, hash.Sum32(), stdhash.Sum32(), "Sum32")
wsum := stdhash.Sum(make([]byte, 32))
g := hash.Sum(make([]byte, 32))
assert.Truef(t, reflect.DeepEqual(g, wsum), "sum")
// write something
_, err = stdhash.Write([]byte("test data"))
require.NoErrorf(t, err, "unexpected write error: %v", err)
_, err = hash.Write([]byte("test data"))
require.NoErrorf(t, err, "unexpected write error: %v", err)
assert.Equalf(t, hash.Sum32(), stdhash.Sum32(), "Sum32 after write")
// reset
stdhash.Reset()
hash.Reset()
assert.Equalf(t, hash.Sum32(), stdhash.Sum32(), "Sum32 after reset")
}