github.com/mckael/restic@v0.8.3/cmd/restic/local_layout_test.go (about)

     1  package main
     2  
     3  import (
     4  	"path/filepath"
     5  	"testing"
     6  
     7  	rtest "github.com/restic/restic/internal/test"
     8  )
     9  
    10  func TestRestoreLocalLayout(t *testing.T) {
    11  	env, cleanup := withTestEnvironment(t)
    12  	defer cleanup()
    13  
    14  	var tests = []struct {
    15  		filename string
    16  		layout   string
    17  	}{
    18  		{"repo-layout-default.tar.gz", ""},
    19  		{"repo-layout-s3legacy.tar.gz", ""},
    20  		{"repo-layout-default.tar.gz", "default"},
    21  		{"repo-layout-s3legacy.tar.gz", "s3legacy"},
    22  	}
    23  
    24  	for _, test := range tests {
    25  		datafile := filepath.Join("..", "..", "internal", "backend", "testdata", test.filename)
    26  
    27  		rtest.SetupTarTestFixture(t, env.base, datafile)
    28  
    29  		env.gopts.extended["local.layout"] = test.layout
    30  
    31  		// check the repo
    32  		testRunCheck(t, env.gopts)
    33  
    34  		// restore latest snapshot
    35  		target := filepath.Join(env.base, "restore")
    36  		testRunRestoreLatest(t, env.gopts, target, nil, "")
    37  
    38  		rtest.RemoveAll(t, filepath.Join(env.base, "repo"))
    39  		rtest.RemoveAll(t, target)
    40  	}
    41  }