backend: allow wrapping backend tests to run in make quicktest

This commit is contained in:
Nick Craig-Wood 2022-06-29 11:51:46 +01:00
parent c556e98f49
commit 866c873daa
9 changed files with 32 additions and 5 deletions

View File

@ -53,6 +53,7 @@ func TestIntegration(t *testing.T) {
{Name: name, Key: "type", Value: "chunker"}, {Name: name, Key: "type", Value: "chunker"},
{Name: name, Key: "remote", Value: tempDir}, {Name: name, Key: "remote", Value: tempDir},
} }
opt.QuickTestOK = true
} }
fstests.Run(t, &opt) fstests.Run(t, &opt)
} }

View File

@ -35,6 +35,7 @@ func TestLocal(t *testing.T) {
{Name: name, Key: "type", Value: "combine"}, {Name: name, Key: "type", Value: "combine"},
{Name: name, Key: "upstreams", Value: upstreams}, {Name: name, Key: "upstreams", Value: upstreams},
}, },
QuickTestOK: true,
}) })
} }
@ -50,6 +51,7 @@ func TestMemory(t *testing.T) {
{Name: name, Key: "type", Value: "combine"}, {Name: name, Key: "type", Value: "combine"},
{Name: name, Key: "upstreams", Value: upstreams}, {Name: name, Key: "upstreams", Value: upstreams},
}, },
QuickTestOK: true,
}) })
} }

View File

@ -61,5 +61,6 @@ func TestRemoteGzip(t *testing.T) {
{Name: name, Key: "remote", Value: tempdir}, {Name: name, Key: "remote", Value: tempdir},
{Name: name, Key: "compression_mode", Value: "gzip"}, {Name: name, Key: "compression_mode", Value: "gzip"},
}, },
QuickTestOK: true,
}) })
} }

View File

@ -4,6 +4,7 @@ package crypt_test
import ( import (
"os" "os"
"path/filepath" "path/filepath"
"runtime"
"testing" "testing"
"github.com/rclone/rclone/backend/crypt" "github.com/rclone/rclone/backend/crypt"
@ -46,6 +47,7 @@ func TestStandardBase32(t *testing.T) {
}, },
UnimplementableFsMethods: []string{"OpenWriterAt"}, UnimplementableFsMethods: []string{"OpenWriterAt"},
UnimplementableObjectMethods: []string{"MimeType"}, UnimplementableObjectMethods: []string{"MimeType"},
QuickTestOK: true,
}) })
} }
@ -67,6 +69,7 @@ func TestStandardBase64(t *testing.T) {
}, },
UnimplementableFsMethods: []string{"OpenWriterAt"}, UnimplementableFsMethods: []string{"OpenWriterAt"},
UnimplementableObjectMethods: []string{"MimeType"}, UnimplementableObjectMethods: []string{"MimeType"},
QuickTestOK: true,
}) })
} }
@ -88,6 +91,7 @@ func TestStandardBase32768(t *testing.T) {
}, },
UnimplementableFsMethods: []string{"OpenWriterAt"}, UnimplementableFsMethods: []string{"OpenWriterAt"},
UnimplementableObjectMethods: []string{"MimeType"}, UnimplementableObjectMethods: []string{"MimeType"},
QuickTestOK: true,
}) })
} }
@ -109,6 +113,7 @@ func TestOff(t *testing.T) {
}, },
UnimplementableFsMethods: []string{"OpenWriterAt"}, UnimplementableFsMethods: []string{"OpenWriterAt"},
UnimplementableObjectMethods: []string{"MimeType"}, UnimplementableObjectMethods: []string{"MimeType"},
QuickTestOK: true,
}) })
} }
@ -117,6 +122,9 @@ func TestObfuscate(t *testing.T) {
if *fstest.RemoteName != "" { if *fstest.RemoteName != "" {
t.Skip("Skipping as -remote set") t.Skip("Skipping as -remote set")
} }
if runtime.GOOS == "darwin" {
t.Skip("Skipping on macOS as obfuscating control characters makes filenames macOS can't cope with")
}
tempdir := filepath.Join(os.TempDir(), "rclone-crypt-test-obfuscate") tempdir := filepath.Join(os.TempDir(), "rclone-crypt-test-obfuscate")
name := "TestCrypt3" name := "TestCrypt3"
fstests.Run(t, &fstests.Opt{ fstests.Run(t, &fstests.Opt{
@ -131,6 +139,7 @@ func TestObfuscate(t *testing.T) {
SkipBadWindowsCharacters: true, SkipBadWindowsCharacters: true,
UnimplementableFsMethods: []string{"OpenWriterAt"}, UnimplementableFsMethods: []string{"OpenWriterAt"},
UnimplementableObjectMethods: []string{"MimeType"}, UnimplementableObjectMethods: []string{"MimeType"},
QuickTestOK: true,
}) })
} }
@ -139,6 +148,9 @@ func TestNoDataObfuscate(t *testing.T) {
if *fstest.RemoteName != "" { if *fstest.RemoteName != "" {
t.Skip("Skipping as -remote set") t.Skip("Skipping as -remote set")
} }
if runtime.GOOS == "darwin" {
t.Skip("Skipping on macOS as obfuscating control characters makes filenames macOS can't cope with")
}
tempdir := filepath.Join(os.TempDir(), "rclone-crypt-test-obfuscate") tempdir := filepath.Join(os.TempDir(), "rclone-crypt-test-obfuscate")
name := "TestCrypt4" name := "TestCrypt4"
fstests.Run(t, &fstests.Opt{ fstests.Run(t, &fstests.Opt{
@ -154,5 +166,6 @@ func TestNoDataObfuscate(t *testing.T) {
SkipBadWindowsCharacters: true, SkipBadWindowsCharacters: true,
UnimplementableFsMethods: []string{"OpenWriterAt"}, UnimplementableFsMethods: []string{"OpenWriterAt"},
UnimplementableObjectMethods: []string{"MimeType"}, UnimplementableObjectMethods: []string{"MimeType"},
QuickTestOK: true,
}) })
} }

View File

@ -33,6 +33,7 @@ func TestIntegration(t *testing.T) {
{Name: "TestHasher", Key: "remote", Value: tempDir}, {Name: "TestHasher", Key: "remote", Value: tempDir},
} }
opt.RemoteName = "TestHasher:" opt.RemoteName = "TestHasher:"
opt.QuickTestOK = true
} }
fstests.Run(t, &opt) fstests.Run(t, &opt)
} }

View File

@ -11,7 +11,8 @@ import (
// TestIntegration runs integration tests against the remote // TestIntegration runs integration tests against the remote
func TestIntegration(t *testing.T) { func TestIntegration(t *testing.T) {
fstests.Run(t, &fstests.Opt{ fstests.Run(t, &fstests.Opt{
RemoteName: "", RemoteName: "",
NilObject: (*local.Object)(nil), NilObject: (*local.Object)(nil),
QuickTestOK: true,
}) })
} }

View File

@ -10,7 +10,8 @@ import (
// TestIntegration runs integration tests against the remote // TestIntegration runs integration tests against the remote
func TestIntegration(t *testing.T) { func TestIntegration(t *testing.T) {
fstests.Run(t, &fstests.Opt{ fstests.Run(t, &fstests.Opt{
RemoteName: ":memory:", RemoteName: ":memory:",
NilObject: (*Object)(nil), NilObject: (*Object)(nil),
QuickTestOK: true,
}) })
} }

View File

@ -41,6 +41,7 @@ func TestStandard(t *testing.T) {
}, },
UnimplementableFsMethods: []string{"OpenWriterAt", "DuplicateFiles"}, UnimplementableFsMethods: []string{"OpenWriterAt", "DuplicateFiles"},
UnimplementableObjectMethods: []string{"MimeType"}, UnimplementableObjectMethods: []string{"MimeType"},
QuickTestOK: true,
}) })
} }
@ -62,6 +63,7 @@ func TestRO(t *testing.T) {
}, },
UnimplementableFsMethods: []string{"OpenWriterAt", "DuplicateFiles"}, UnimplementableFsMethods: []string{"OpenWriterAt", "DuplicateFiles"},
UnimplementableObjectMethods: []string{"MimeType"}, UnimplementableObjectMethods: []string{"MimeType"},
QuickTestOK: true,
}) })
} }
@ -83,6 +85,7 @@ func TestNC(t *testing.T) {
}, },
UnimplementableFsMethods: []string{"OpenWriterAt", "DuplicateFiles"}, UnimplementableFsMethods: []string{"OpenWriterAt", "DuplicateFiles"},
UnimplementableObjectMethods: []string{"MimeType"}, UnimplementableObjectMethods: []string{"MimeType"},
QuickTestOK: true,
}) })
} }
@ -104,6 +107,7 @@ func TestPolicy1(t *testing.T) {
}, },
UnimplementableFsMethods: []string{"OpenWriterAt", "DuplicateFiles"}, UnimplementableFsMethods: []string{"OpenWriterAt", "DuplicateFiles"},
UnimplementableObjectMethods: []string{"MimeType"}, UnimplementableObjectMethods: []string{"MimeType"},
QuickTestOK: true,
}) })
} }
@ -125,6 +129,7 @@ func TestPolicy2(t *testing.T) {
}, },
UnimplementableFsMethods: []string{"OpenWriterAt", "DuplicateFiles"}, UnimplementableFsMethods: []string{"OpenWriterAt", "DuplicateFiles"},
UnimplementableObjectMethods: []string{"MimeType"}, UnimplementableObjectMethods: []string{"MimeType"},
QuickTestOK: true,
}) })
} }
@ -146,5 +151,6 @@ func TestPolicy3(t *testing.T) {
}, },
UnimplementableFsMethods: []string{"OpenWriterAt", "DuplicateFiles"}, UnimplementableFsMethods: []string{"OpenWriterAt", "DuplicateFiles"},
UnimplementableObjectMethods: []string{"MimeType"}, UnimplementableObjectMethods: []string{"MimeType"},
QuickTestOK: true,
}) })
} }

View File

@ -327,6 +327,7 @@ type Opt struct {
SkipFsCheckWrap bool // if set skip FsCheckWrap SkipFsCheckWrap bool // if set skip FsCheckWrap
SkipObjectCheckWrap bool // if set skip ObjectCheckWrap SkipObjectCheckWrap bool // if set skip ObjectCheckWrap
SkipInvalidUTF8 bool // if set skip invalid UTF-8 checks SkipInvalidUTF8 bool // if set skip invalid UTF-8 checks
QuickTestOK bool // if set, run this test with make quicktest
} }
// returns true if x is found in ss // returns true if x is found in ss
@ -392,7 +393,7 @@ func Run(t *testing.T, opt *Opt) {
unwrappableFsMethods = []string{"Command"} // these Fs methods don't need to be wrapped ever unwrappableFsMethods = []string{"Command"} // these Fs methods don't need to be wrapped ever
) )
if strings.HasSuffix(os.Getenv("RCLONE_CONFIG"), "/notfound") && *fstest.RemoteName == "" { if strings.HasSuffix(os.Getenv("RCLONE_CONFIG"), "/notfound") && *fstest.RemoteName == "" && !opt.QuickTestOK {
t.Skip("quicktest only") t.Skip("quicktest only")
} }