41 lines
936 B
Go
41 lines
936 B
Go
package main
|
|
|
|
import (
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
rtest "github.com/restic/restic/internal/test"
|
|
)
|
|
|
|
func TestRestoreLocalLayout(t *testing.T) {
|
|
env, cleanup := withTestEnvironment(t)
|
|
defer cleanup()
|
|
|
|
var tests = []struct {
|
|
filename string
|
|
layout string
|
|
}{
|
|
{"repo-layout-default.tar.gz", ""},
|
|
{"repo-layout-s3legacy.tar.gz", ""},
|
|
{"repo-layout-default.tar.gz", "default"},
|
|
{"repo-layout-s3legacy.tar.gz", "s3legacy"},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
datafile := filepath.Join("..", "..", "internal", "backend", "testdata", test.filename)
|
|
|
|
rtest.SetupTarTestFixture(t, env.base, datafile)
|
|
|
|
env.gopts.extended["local.layout"] = test.layout
|
|
|
|
// check the repo
|
|
testRunCheck(t, env.gopts)
|
|
|
|
// restore latest snapshot
|
|
target := filepath.Join(env.base, "restore")
|
|
testRunRestoreLatest(t, env.gopts, target, nil, "")
|
|
|
|
rtest.RemoveAll(t, filepath.Join(env.base, "repo"))
|
|
rtest.RemoveAll(t, target)
|
|
}
|
|
}
|