Test and document Restorer.VerifyFiles

This commit is contained in:
greatroar 2020-02-20 11:56:33 +01:00 committed by Michael Eischer
parent ef5672a902
commit 973fa921cb
2 changed files with 12 additions and 1 deletions

View file

@ -310,7 +310,10 @@ func (res *Restorer) Snapshot() *restic.Snapshot {
return res.sn
}
// VerifyFiles reads all snapshot files and verifies their contents
// VerifyFiles checks whether all regular files in the snapshot res.sn
// have been successfully written to dst. It stops when it encounters an
// error. It returns that error and the number of files it has checked,
// including the file(s) that caused errors.
func (res *Restorer) VerifyFiles(ctx context.Context, dst string) (int, error) {
// TODO multithreaded?

View file

@ -367,6 +367,11 @@ func TestRestorer(t *testing.T) {
t.Fatal(err)
}
if len(test.ErrorsMust)+len(test.ErrorsMay) == 0 {
_, err = res.VerifyFiles(ctx, tempdir)
rtest.OK(t, err)
}
for location, expectedErrors := range test.ErrorsMust {
actualErrors, ok := errors[location]
if !ok {
@ -465,6 +470,9 @@ func TestRestorerRelative(t *testing.T) {
if err != nil {
t.Fatal(err)
}
nverified, err := res.VerifyFiles(ctx, "restore")
rtest.OK(t, err)
rtest.Equals(t, len(test.Files), nverified)
for filename, err := range errors {
t.Errorf("unexpected error for %v found: %v", filename, err)