in testhelpers.go [101:137]
func hashDirectories(t *testing.T, src, dest string) {
var srcHash = sha1.New()
var dstHash = sha1.New()
t.Logf("===== Walking %s =====\n", src)
if err := filepath.Walk(src, func(path string, info os.FileInfo, err error) error {
if err != nil || path == src {
return nil
}
t.Log(fmt.Sprint(info.Name(), " => ", info.Size()))
io.WriteString(srcHash, fmt.Sprint(info.Name(), info.Size()))
return nil
}); err != nil {
t.Fatal(err)
}
t.Logf("===== Walking %s =====\n", dest)
if err := filepath.Walk(dest, func(path string, info os.FileInfo, err error) error {
if err != nil || path == dest {
return nil
}
t.Log(fmt.Sprint(info.Name(), " => ", info.Size()))
io.WriteString(dstHash, fmt.Sprint(info.Name(), info.Size()))
return nil
}); err != nil {
t.Fatal(err)
}
t.Log("===========================")
var srcSum, dstSum = srcHash.Sum(nil), dstHash.Sum(nil)
if !bytes.Equal(srcSum, dstSum) {
t.Errorf("Contents of %s are not the same as %s", src, dest)
t.Errorf("src folder hash: %x", srcSum)
t.Errorf("dst folder hash: %x", dstSum)
}
}