mirror of
https://github.com/rclone/rclone
synced 2025-01-03 03:46:24 +01:00
Test all available hashes for each remote
This commit is contained in:
parent
de3cf5e8d7
commit
ccba859812
@ -42,7 +42,7 @@ func TestFsPrecision(t *testing.T) { fstests.TestFsPrecision(t) }
|
|||||||
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
||||||
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
||||||
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
||||||
func TestObjectMd5sum(t *testing.T) { fstests.TestObjectMd5sum(t) }
|
func TestObjectHashes(t *testing.T) { fstests.TestObjectHashes(t) }
|
||||||
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
||||||
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
||||||
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
||||||
|
@ -42,7 +42,7 @@ func TestFsPrecision(t *testing.T) { fstests.TestFsPrecision(t) }
|
|||||||
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
||||||
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
||||||
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
||||||
func TestObjectMd5sum(t *testing.T) { fstests.TestObjectMd5sum(t) }
|
func TestObjectHashes(t *testing.T) { fstests.TestObjectHashes(t) }
|
||||||
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
||||||
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
||||||
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
||||||
|
@ -42,7 +42,7 @@ func TestFsPrecision(t *testing.T) { fstests.TestFsPrecision(t) }
|
|||||||
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
||||||
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
||||||
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
||||||
func TestObjectMd5sum(t *testing.T) { fstests.TestObjectMd5sum(t) }
|
func TestObjectHashes(t *testing.T) { fstests.TestObjectHashes(t) }
|
||||||
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
||||||
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
||||||
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
||||||
|
@ -42,7 +42,7 @@ func TestFsPrecision(t *testing.T) { fstests.TestFsPrecision(t) }
|
|||||||
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
||||||
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
||||||
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
||||||
func TestObjectMd5sum(t *testing.T) { fstests.TestObjectMd5sum(t) }
|
func TestObjectHashes(t *testing.T) { fstests.TestObjectHashes(t) }
|
||||||
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
||||||
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
||||||
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
||||||
|
@ -25,7 +25,7 @@ func init() {
|
|||||||
// Item represents an item for checking
|
// Item represents an item for checking
|
||||||
type Item struct {
|
type Item struct {
|
||||||
Path string
|
Path string
|
||||||
Md5sum string
|
Hashes map[fs.HashType]string
|
||||||
ModTime time.Time
|
ModTime time.Time
|
||||||
Size int64
|
Size int64
|
||||||
WinPath string
|
WinPath string
|
||||||
@ -49,8 +49,8 @@ func (i *Item) CheckModTime(t *testing.T, obj fs.Object, modTime time.Time, prec
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check checks all the attributes of the object are correct
|
// CheckHashes checks all the hashes the object supports are correct
|
||||||
func (i *Item) Check(t *testing.T, obj fs.Object, precision time.Duration) {
|
func (i *Item) CheckHashes(t *testing.T, obj fs.Object) {
|
||||||
if obj == nil {
|
if obj == nil {
|
||||||
t.Fatalf("Object is nil")
|
t.Fatalf("Object is nil")
|
||||||
}
|
}
|
||||||
@ -61,12 +61,15 @@ func (i *Item) Check(t *testing.T, obj fs.Object, precision time.Duration) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("%s: Failed to read hash %v for %q: %v", obj.Fs().String(), hash, obj.Remote(), err)
|
t.Fatalf("%s: Failed to read hash %v for %q: %v", obj.Fs().String(), hash, obj.Remote(), err)
|
||||||
}
|
}
|
||||||
if hash == fs.HashMD5 {
|
if !fs.HashEquals(i.Hashes[hash], sum) {
|
||||||
if !fs.HashEquals(i.Md5sum, sum) {
|
t.Errorf("%s/%s: %v hash incorrect - expecting %q got %q", obj.Fs().String(), obj.Remote(), hash, i.Hashes[hash], sum)
|
||||||
t.Errorf("%s/%s: md5 hash incorrect - expecting %q got %q", obj.Fs().String(), obj.Remote(), i.Md5sum, sum)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check checks all the attributes of the object are correct
|
||||||
|
func (i *Item) Check(t *testing.T, obj fs.Object, precision time.Duration) {
|
||||||
|
i.CheckHashes(t, obj)
|
||||||
if i.Size != obj.Size() {
|
if i.Size != obj.Size() {
|
||||||
t.Errorf("%s/%s: Size incorrect - expecting %d got %d", obj.Fs().String(), obj.Remote(), i.Size, obj.Size())
|
t.Errorf("%s/%s: Size incorrect - expecting %d got %d", obj.Fs().String(), obj.Remote(), i.Size, obj.Size())
|
||||||
}
|
}
|
||||||
|
@ -7,8 +7,6 @@ package fstests
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"crypto/md5"
|
|
||||||
"encoding/hex"
|
|
||||||
"flag"
|
"flag"
|
||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
@ -157,7 +155,7 @@ func findObject(t *testing.T, Name string) fs.Object {
|
|||||||
|
|
||||||
func testPut(t *testing.T, file *fstest.Item) {
|
func testPut(t *testing.T, file *fstest.Item) {
|
||||||
buf := bytes.NewBufferString(fstest.RandomString(100))
|
buf := bytes.NewBufferString(fstest.RandomString(100))
|
||||||
hash := md5.New()
|
hash := fs.NewMultiHasher()
|
||||||
in := io.TeeReader(buf, hash)
|
in := io.TeeReader(buf, hash)
|
||||||
|
|
||||||
file.Size = int64(buf.Len())
|
file.Size = int64(buf.Len())
|
||||||
@ -165,7 +163,7 @@ func testPut(t *testing.T, file *fstest.Item) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal("Put error", err)
|
t.Fatal("Put error", err)
|
||||||
}
|
}
|
||||||
file.Md5sum = hex.EncodeToString(hash.Sum(nil))
|
file.Hashes = hash.Sums()
|
||||||
file.Check(t, obj, remote.Precision())
|
file.Check(t, obj, remote.Precision())
|
||||||
// Re-read the object and check again
|
// Re-read the object and check again
|
||||||
obj = findObject(t, file.Path)
|
obj = findObject(t, file.Path)
|
||||||
@ -307,7 +305,7 @@ func TestFsCopy(t *testing.T) {
|
|||||||
// check file exists in new listing
|
// check file exists in new listing
|
||||||
fstest.CheckListing(t, remote, []fstest.Item{file1, file2, file1Copy})
|
fstest.CheckListing(t, remote, []fstest.Item{file1, file2, file1Copy})
|
||||||
|
|
||||||
// Check dst lightly - list above has checked ModTime/Md5sum
|
// Check dst lightly - list above has checked ModTime/Hashes
|
||||||
if dst.Remote() != file1Copy.Path {
|
if dst.Remote() != file1Copy.Path {
|
||||||
t.Errorf("object path: want %q got %q", file1Copy.Path, dst.Remote())
|
t.Errorf("object path: want %q got %q", file1Copy.Path, dst.Remote())
|
||||||
}
|
}
|
||||||
@ -343,7 +341,7 @@ func TestFsMove(t *testing.T) {
|
|||||||
// check file exists in new listing
|
// check file exists in new listing
|
||||||
fstest.CheckListing(t, remote, []fstest.Item{file2, file1Move})
|
fstest.CheckListing(t, remote, []fstest.Item{file2, file1Move})
|
||||||
|
|
||||||
// Check dst lightly - list above has checked ModTime/Md5sum
|
// Check dst lightly - list above has checked ModTime/Hashes
|
||||||
if dst.Remote() != file1Move.Path {
|
if dst.Remote() != file1Move.Path {
|
||||||
t.Errorf("object path: want %q got %q", file1Move.Path, dst.Remote())
|
t.Errorf("object path: want %q got %q", file1Move.Path, dst.Remote())
|
||||||
}
|
}
|
||||||
@ -474,17 +472,11 @@ func TestObjectRemote(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TestObjectMd5sum tests the MD5SUM of the object is correct
|
// TestObjectHashes checks all the hashes the object supports
|
||||||
func TestObjectMd5sum(t *testing.T) {
|
func TestObjectHashes(t *testing.T) {
|
||||||
skipIfNotOk(t)
|
skipIfNotOk(t)
|
||||||
obj := findObject(t, file1.Path)
|
obj := findObject(t, file1.Path)
|
||||||
Md5sum, err := obj.Hash(fs.HashMD5)
|
file1.CheckHashes(t, obj)
|
||||||
if err != nil && err != fs.ErrHashUnsupported {
|
|
||||||
t.Errorf("Error in Md5sum: %v", err)
|
|
||||||
}
|
|
||||||
if !fs.HashEquals(Md5sum, file1.Md5sum) {
|
|
||||||
t.Errorf("Md5sum is wrong %v != %v", Md5sum, file1.Md5sum)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TestObjectModTime tests the ModTime of the object is correct
|
// TestObjectModTime tests the ModTime of the object is correct
|
||||||
@ -523,8 +515,8 @@ func TestObjectOpen(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Open() return error: %v", err)
|
t.Fatalf("Open() return error: %v", err)
|
||||||
}
|
}
|
||||||
hash := md5.New()
|
hasher := fs.NewMultiHasher()
|
||||||
n, err := io.Copy(hash, in)
|
n, err := io.Copy(hasher, in)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("io.Copy() return error: %v", err)
|
t.Fatalf("io.Copy() return error: %v", err)
|
||||||
}
|
}
|
||||||
@ -535,17 +527,21 @@ func TestObjectOpen(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("in.Close() return error: %v", err)
|
t.Fatalf("in.Close() return error: %v", err)
|
||||||
}
|
}
|
||||||
Md5sum := hex.EncodeToString(hash.Sum(nil))
|
// Check content of file by comparing the calculated hashes
|
||||||
if !fs.HashEquals(Md5sum, file1.Md5sum) {
|
for hashType, got := range hasher.Sums() {
|
||||||
t.Errorf("Md5sum is wrong %v != %v", Md5sum, file1.Md5sum)
|
want := file1.Hashes[hashType]
|
||||||
|
if want != got {
|
||||||
|
t.Errorf("%v is wrong %v != %v", hashType, want, got)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TestObjectUpdate tests that Update works
|
// TestObjectUpdate tests that Update works
|
||||||
func TestObjectUpdate(t *testing.T) {
|
func TestObjectUpdate(t *testing.T) {
|
||||||
skipIfNotOk(t)
|
skipIfNotOk(t)
|
||||||
buf := bytes.NewBufferString(fstest.RandomString(200))
|
buf := bytes.NewBufferString(fstest.RandomString(200))
|
||||||
hash := md5.New()
|
hash := fs.NewMultiHasher()
|
||||||
in := io.TeeReader(buf, hash)
|
in := io.TeeReader(buf, hash)
|
||||||
|
|
||||||
file1.Size = int64(buf.Len())
|
file1.Size = int64(buf.Len())
|
||||||
@ -554,7 +550,7 @@ func TestObjectUpdate(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal("Update error", err)
|
t.Fatal("Update error", err)
|
||||||
}
|
}
|
||||||
file1.Md5sum = hex.EncodeToString(hash.Sum(nil))
|
file1.Hashes = hash.Sums()
|
||||||
file1.Check(t, obj, remote.Precision())
|
file1.Check(t, obj, remote.Precision())
|
||||||
// Re-read the object and check again
|
// Re-read the object and check again
|
||||||
obj = findObject(t, file1.Path)
|
obj = findObject(t, file1.Path)
|
||||||
|
@ -42,7 +42,7 @@ func TestFsPrecision(t *testing.T) { fstests.TestFsPrecision(t) }
|
|||||||
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
||||||
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
||||||
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
||||||
func TestObjectMd5sum(t *testing.T) { fstests.TestObjectMd5sum(t) }
|
func TestObjectHashes(t *testing.T) { fstests.TestObjectHashes(t) }
|
||||||
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
||||||
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
||||||
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
||||||
|
@ -42,7 +42,7 @@ func TestFsPrecision(t *testing.T) { fstests.TestFsPrecision(t) }
|
|||||||
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
||||||
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
||||||
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
||||||
func TestObjectMd5sum(t *testing.T) { fstests.TestObjectMd5sum(t) }
|
func TestObjectHashes(t *testing.T) { fstests.TestObjectHashes(t) }
|
||||||
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
||||||
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
||||||
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
||||||
|
@ -42,7 +42,7 @@ func TestFsPrecision(t *testing.T) { fstests.TestFsPrecision(t) }
|
|||||||
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
||||||
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
||||||
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
||||||
func TestObjectMd5sum(t *testing.T) { fstests.TestObjectMd5sum(t) }
|
func TestObjectHashes(t *testing.T) { fstests.TestObjectHashes(t) }
|
||||||
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
||||||
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
||||||
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
||||||
|
@ -42,7 +42,7 @@ func TestFsPrecision(t *testing.T) { fstests.TestFsPrecision(t) }
|
|||||||
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
||||||
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
||||||
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
||||||
func TestObjectMd5sum(t *testing.T) { fstests.TestObjectMd5sum(t) }
|
func TestObjectHashes(t *testing.T) { fstests.TestObjectHashes(t) }
|
||||||
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
||||||
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
||||||
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
||||||
|
@ -42,7 +42,7 @@ func TestFsPrecision(t *testing.T) { fstests.TestFsPrecision(t) }
|
|||||||
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
||||||
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
||||||
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
||||||
func TestObjectMd5sum(t *testing.T) { fstests.TestObjectMd5sum(t) }
|
func TestObjectHashes(t *testing.T) { fstests.TestObjectHashes(t) }
|
||||||
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
||||||
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
||||||
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
||||||
|
@ -42,7 +42,7 @@ func TestFsPrecision(t *testing.T) { fstests.TestFsPrecision(t) }
|
|||||||
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
||||||
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
||||||
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
||||||
func TestObjectMd5sum(t *testing.T) { fstests.TestObjectMd5sum(t) }
|
func TestObjectHashes(t *testing.T) { fstests.TestObjectHashes(t) }
|
||||||
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
||||||
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
||||||
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
||||||
|
@ -42,7 +42,7 @@ func TestFsPrecision(t *testing.T) { fstests.TestFsPrecision(t) }
|
|||||||
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
func TestObjectString(t *testing.T) { fstests.TestObjectString(t) }
|
||||||
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
func TestObjectFs(t *testing.T) { fstests.TestObjectFs(t) }
|
||||||
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
func TestObjectRemote(t *testing.T) { fstests.TestObjectRemote(t) }
|
||||||
func TestObjectMd5sum(t *testing.T) { fstests.TestObjectMd5sum(t) }
|
func TestObjectHashes(t *testing.T) { fstests.TestObjectHashes(t) }
|
||||||
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
func TestObjectModTime(t *testing.T) { fstests.TestObjectModTime(t) }
|
||||||
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
func TestObjectSetModTime(t *testing.T) { fstests.TestObjectSetModTime(t) }
|
||||||
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
func TestObjectSize(t *testing.T) { fstests.TestObjectSize(t) }
|
||||||
|
Loading…
Reference in New Issue
Block a user