Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
63c824220c |
@@ -586,11 +586,10 @@ func TestBackupCompletesOnlyAfterMetadataExport(t *testing.T) {
|
|||||||
ctx, t, cfg, inner, repos, db, fs, restoreDir, testFiles)
|
ctx, t, cfg, inner, repos, db, fs, restoreDir, testFiles)
|
||||||
}
|
}
|
||||||
|
|
||||||
// assertRetryConsistentAndRestorable checks the end state after a backup
|
// assertRetryConsistentAndRestorable checks the end state after the retry
|
||||||
// retried on the same index once an earlier run stopped at its metadata
|
// backup in TestBackupCompletesOnlyAfterMetadataExport: the interrupted
|
||||||
// export: the interrupted snapshot is pruned, exactly one completed
|
// snapshot is pruned, exactly one completed snapshot remains, its metadata
|
||||||
// snapshot remains, its metadata is at the destination, and it restores
|
// is at the destination, and it restores to the original tree.
|
||||||
// to the original tree.
|
|
||||||
func assertRetryConsistentAndRestorable(
|
func assertRetryConsistentAndRestorable(
|
||||||
ctx context.Context, t *testing.T, cfg *config.Config,
|
ctx context.Context, t *testing.T, cfg *config.Config,
|
||||||
inner storage.Storer, repos *database.Repositories, db *database.DB,
|
inner storage.Storer, repos *database.Repositories, db *database.DB,
|
||||||
|
|||||||
@@ -163,8 +163,19 @@ func TestPruneDuringBackupKeepsBlobsOfKilledRun(t *testing.T) {
|
|||||||
require.True(t, pruned, "the prune must run before the manifest upload")
|
require.True(t, pruned, "the prune must run before the manifest upload")
|
||||||
require.NoError(t, pruneErr)
|
require.NoError(t, pruneErr)
|
||||||
|
|
||||||
assertRetryConsistentAndRestorable(
|
local, err := repos.Snapshots.ListRecent(ctx, listRecentTestLimit)
|
||||||
ctx, t, cfg, inner, repos, db, fs, restoreDir, testFiles)
|
require.NoError(t, err)
|
||||||
|
require.Len(t, local, 1)
|
||||||
|
require.NoError(t, db.Close())
|
||||||
|
|
||||||
|
reader := newReaderVaultik(ctx, cfg, inner, nil, fs)
|
||||||
|
require.NoError(t, reader.Restore(&vaultik.RestoreOptions{
|
||||||
|
SnapshotID: local[0].ID.String(),
|
||||||
|
TargetDir: restoreDir,
|
||||||
|
Verify: true,
|
||||||
|
}), "a prune during the backup must not delete the blobs it rebuilt")
|
||||||
|
|
||||||
|
assertRestoredTree(t, fs, restoreDir, testFiles)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TestPruneKeepsUnreferencedBlobWithNoTime checks that a blob no
|
// TestPruneKeepsUnreferencedBlobWithNoTime checks that a blob no
|
||||||
|
|||||||
Reference in New Issue
Block a user