safing-jess/hashtools/tools_test.go
2020-01-13 00:15:58 +01:00

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))
}
}
}