1
0
Fork 0
mirror of https://github.com/restic/restic.git synced 2025-03-16 00:00:05 +01:00
restic/backend/gcs/gcs_test.go
Christian Kemper 562c8b4264 Added support for Google Cloud Storage repositories using minio
Implemented Google Cloud Storage support using the existing minio libraries.
GCS repositories get specified using gs://bucketname/prefix syntax.

Cloned the existing S3 support and tests to use them for GCS as well.

Added tests for the various cases to config_test and location_test.

Remove trailing slashes in repository specification.
2016-02-10 23:50:19 -08:00

72 lines
1.3 KiB
Go

package gcs_test
import (
"errors"
"fmt"
"net/url"
"os"
"github.com/restic/restic/backend"
"github.com/restic/restic/backend/gcs"
"github.com/restic/restic/backend/test"
. "github.com/restic/restic/test"
)
//go:generate go run ../test/generate_backend_tests.go
func init() {
if TestS3Server == "" {
SkipMessage = "s3 test server not available"
return
}
url, err := url.Parse(TestS3Server)
if err != nil {
fmt.Fprintf(os.Stderr, "invalid url: %v\n", err)
return
}
cfg := gcs.Config{
Endpoint: url.Host,
Bucket: "restictestbucket",
KeyID: os.Getenv("S3_ACCESS_KEY_ID"),
Secret: os.Getenv("S3_SECRET_ACCESS_KEY"),
}
if url.Scheme == "http" {
cfg.UseHTTP = true
}
test.CreateFn = func() (backend.Backend, error) {
be, err := gcs.Open(cfg)
if err != nil {
return nil, err
}
exists, err := be.Test(backend.Config, "")
if err != nil {
return nil, err
}
if exists {
return nil, errors.New("config already exists")
}
return be, nil
}
test.OpenFn = func() (backend.Backend, error) {
return gcs.Open(cfg)
}
// test.CleanupFn = func() error {
// if tempBackendDir == "" {
// return nil
// }
// fmt.Printf("removing test backend at %v\n", tempBackendDir)
// err := os.RemoveAll(tempBackendDir)
// tempBackendDir = ""
// return err
// }
}