func checkSavedFile(t *testing.T, repo restic.Repository, treeID restic.ID, name string, rd io.Reader) { tree, err := repo.LoadTree(treeID) if err != nil { t.Fatalf("LoadTree() returned error %v", err) } if len(tree.Nodes) != 1 { t.Fatalf("wrong number of nodes for tree, want %v, got %v", 1, len(tree.Nodes)) } node := tree.Nodes[0] if node.Name != "fakefile" { t.Fatalf("wrong filename, want %v, got %v", "fakefile", node.Name) } if len(node.Content) == 0 { t.Fatalf("node.Content has length 0") } // check blobs for i, id := range node.Content { size, err := repo.LookupBlobSize(id, restic.DataBlob) if err != nil { t.Fatal(err) } buf := make([]byte, int(size)) n := loadBlob(t, repo, id, buf) if n != len(buf) { t.Errorf("wrong number of bytes read, want %d, got %d", len(buf), n) } buf2 := make([]byte, int(size)) _, err = io.ReadFull(rd, buf2) if err != nil { t.Fatal(err) } if !bytes.Equal(buf, buf2) { t.Fatalf("blob %d (%v) is wrong", i, id.Str()) } } }