33 lines
873 B
Go
33 lines
873 B
Go
package hashtools
|
|
|
|
import "testing"
|
|
|
|
func TestAll(t *testing.T) {
|
|
|
|
testData := []byte("The quick brown fox jumps over the lazy dog. ")
|
|
|
|
all := AsList()
|
|
for _, hashTool := range all {
|
|
|
|
// take detour in getting hash.Hash for testing
|
|
hash, err := New(hashTool.Name)
|
|
if err != nil {
|
|
t.Fatalf("failed to get HashTool %s", hashTool.Name)
|
|
}
|
|
|
|
if hash.BlockSize() != hashTool.BlockSize {
|
|
t.Errorf("hashTool %s is broken or reports invalid block size. Expected %d, got %d.", hashTool.Name, hashTool.BlockSize, hash.BlockSize())
|
|
}
|
|
|
|
_, err = hash.Write(testData)
|
|
if err != nil {
|
|
t.Errorf("hashTool %s failed to write: %s", hashTool.Name, err)
|
|
}
|
|
|
|
sum := hash.Sum(nil)
|
|
if len(sum) != hashTool.DigestSize {
|
|
t.Errorf("hashTool %s is broken or reports invalid digest size. Expected %d, got %d.", hashTool.Name, hashTool.DigestSize, len(sum))
|
|
}
|
|
|
|
}
|
|
}
|