forked from TrueCloudLab/restic
57 lines
1.8 KiB
Go
57 lines
1.8 KiB
Go
package test
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
var (
|
|
TestPassword = getStringVar("RESTIC_TEST_PASSWORD", "geheim")
|
|
TestCleanupTempDirs = getBoolVar("RESTIC_TEST_CLEANUP", true)
|
|
TestTempDir = getStringVar("RESTIC_TEST_TMPDIR", "")
|
|
RunIntegrationTest = getBoolVar("RESTIC_TEST_INTEGRATION", true)
|
|
RunFuseTest = getBoolVar("RESTIC_TEST_FUSE", true)
|
|
TestSFTPPath = getStringVar("RESTIC_TEST_SFTPPATH", "/usr/lib/ssh:/usr/lib/openssh:/usr/libexec")
|
|
TestWalkerPath = getStringVar("RESTIC_TEST_PATH", ".")
|
|
BenchArchiveDirectory = getStringVar("RESTIC_BENCH_DIR", ".")
|
|
TestS3Server = getStringVar("RESTIC_TEST_S3_SERVER", "")
|
|
TestRESTServer = getStringVar("RESTIC_TEST_REST_SERVER", "")
|
|
TestIntegrationDisallowSkip = getStringVar("RESTIC_TEST_DISALLOW_SKIP", "")
|
|
)
|
|
|
|
func getStringVar(name, defaultValue string) string {
|
|
if e := os.Getenv(name); e != "" {
|
|
return e
|
|
}
|
|
|
|
return defaultValue
|
|
}
|
|
|
|
func getBoolVar(name string, defaultValue bool) bool {
|
|
if e := os.Getenv(name); e != "" {
|
|
switch e {
|
|
case "1", "true":
|
|
return true
|
|
case "0", "false":
|
|
return false
|
|
default:
|
|
fmt.Fprintf(os.Stderr, "invalid value for variable %q, using default\n", name)
|
|
}
|
|
}
|
|
|
|
return defaultValue
|
|
}
|
|
|
|
// SkipDisallowed fails the test if it needs to run. The environment
|
|
// variable RESTIC_TEST_DISALLOW_SKIP contains a comma-separated list of test
|
|
// names that must be run. If name is in this list, the test is marked as
|
|
// failed.
|
|
func SkipDisallowed(t testing.TB, name string) {
|
|
for _, s := range strings.Split(TestIntegrationDisallowSkip, ",") {
|
|
if s == name {
|
|
t.Fatalf("test %v is in list of tests that need to run ($RESTIC_TEST_DISALLOW_SKIP)", name)
|
|
}
|
|
}
|
|
}
|