mirror of
https://github.com/octoleo/restic.git
synced 2024-11-27 07:16:40 +00:00
fuse: Add test for same timestamps
This commit is contained in:
parent
649f789190
commit
68b462d057
@ -84,13 +84,7 @@ func listSnapshots(t testing.TB, dir string) []string {
|
|||||||
return names
|
return names
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMount(t *testing.T) {
|
func checkSnapshots(t testing.TB, global GlobalOptions, repo *repository.Repository, mountpoint, repodir string, snapshotIDs restic.IDs) {
|
||||||
if !RunFuseTest {
|
|
||||||
t.Skip("Skipping fuse tests")
|
|
||||||
}
|
|
||||||
|
|
||||||
withTestEnvironment(t, func(env *testEnvironment, global GlobalOptions) {
|
|
||||||
checkSnapshots := func(repo *repository.Repository, mountpoint string, snapshotIDs restic.IDs) {
|
|
||||||
t.Logf("checking for %d snapshots: %v", len(snapshotIDs), snapshotIDs)
|
t.Logf("checking for %d snapshots: %v", len(snapshotIDs), snapshotIDs)
|
||||||
go mount(t, global, mountpoint)
|
go mount(t, global, mountpoint)
|
||||||
waitForMount(t, mountpoint)
|
waitForMount(t, mountpoint)
|
||||||
@ -100,7 +94,7 @@ func TestMount(t *testing.T) {
|
|||||||
t.Fatal(`virtual directory "snapshots" doesn't exist`)
|
t.Fatal(`virtual directory "snapshots" doesn't exist`)
|
||||||
}
|
}
|
||||||
|
|
||||||
ids := listSnapshots(t, env.repo)
|
ids := listSnapshots(t, repodir)
|
||||||
t.Logf("found %v snapshots in repo: %v", len(ids), ids)
|
t.Logf("found %v snapshots in repo: %v", len(ids), ids)
|
||||||
|
|
||||||
namesInSnapshots := listSnapshots(t, mountpoint)
|
namesInSnapshots := listSnapshots(t, mountpoint)
|
||||||
@ -144,6 +138,13 @@ func TestMount(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestMount(t *testing.T) {
|
||||||
|
if !RunFuseTest {
|
||||||
|
t.Skip("Skipping fuse tests")
|
||||||
|
}
|
||||||
|
|
||||||
|
withTestEnvironment(t, func(env *testEnvironment, global GlobalOptions) {
|
||||||
|
|
||||||
cmdInit(t, global)
|
cmdInit(t, global)
|
||||||
repo, err := global.OpenRepository()
|
repo, err := global.OpenRepository()
|
||||||
OK(t, err)
|
OK(t, err)
|
||||||
@ -154,7 +155,7 @@ func TestMount(t *testing.T) {
|
|||||||
// We remove the mountpoint now to check that cmdMount creates it
|
// We remove the mountpoint now to check that cmdMount creates it
|
||||||
RemoveAll(t, mountpoint)
|
RemoveAll(t, mountpoint)
|
||||||
|
|
||||||
checkSnapshots(repo, mountpoint, []restic.ID{})
|
checkSnapshots(t, global, repo, mountpoint, env.repo, []restic.ID{})
|
||||||
|
|
||||||
SetupTarTestFixture(t, env.testdata, filepath.Join("testdata", "backup-data.tar.gz"))
|
SetupTarTestFixture(t, env.testdata, filepath.Join("testdata", "backup-data.tar.gz"))
|
||||||
|
|
||||||
@ -164,7 +165,7 @@ func TestMount(t *testing.T) {
|
|||||||
Assert(t, len(snapshotIDs) == 1,
|
Assert(t, len(snapshotIDs) == 1,
|
||||||
"expected one snapshot, got %v", snapshotIDs)
|
"expected one snapshot, got %v", snapshotIDs)
|
||||||
|
|
||||||
checkSnapshots(repo, mountpoint, snapshotIDs)
|
checkSnapshots(t, global, repo, mountpoint, env.repo, snapshotIDs)
|
||||||
|
|
||||||
// second backup, implicit incremental
|
// second backup, implicit incremental
|
||||||
cmdBackup(t, global, []string{env.testdata}, nil)
|
cmdBackup(t, global, []string{env.testdata}, nil)
|
||||||
@ -172,7 +173,7 @@ func TestMount(t *testing.T) {
|
|||||||
Assert(t, len(snapshotIDs) == 2,
|
Assert(t, len(snapshotIDs) == 2,
|
||||||
"expected two snapshots, got %v", snapshotIDs)
|
"expected two snapshots, got %v", snapshotIDs)
|
||||||
|
|
||||||
checkSnapshots(repo, mountpoint, snapshotIDs)
|
checkSnapshots(t, global, repo, mountpoint, env.repo, snapshotIDs)
|
||||||
|
|
||||||
// third backup, explicit incremental
|
// third backup, explicit incremental
|
||||||
cmdBackup(t, global, []string{env.testdata}, &snapshotIDs[0])
|
cmdBackup(t, global, []string{env.testdata}, &snapshotIDs[0])
|
||||||
@ -180,6 +181,30 @@ func TestMount(t *testing.T) {
|
|||||||
Assert(t, len(snapshotIDs) == 3,
|
Assert(t, len(snapshotIDs) == 3,
|
||||||
"expected three snapshots, got %v", snapshotIDs)
|
"expected three snapshots, got %v", snapshotIDs)
|
||||||
|
|
||||||
checkSnapshots(repo, mountpoint, snapshotIDs)
|
checkSnapshots(t, global, repo, mountpoint, env.repo, snapshotIDs)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestMountSameTimestamps(t *testing.T) {
|
||||||
|
if !RunFuseTest {
|
||||||
|
t.Skip("Skipping fuse tests")
|
||||||
|
}
|
||||||
|
|
||||||
|
withTestEnvironment(t, func(env *testEnvironment, global GlobalOptions) {
|
||||||
|
SetupTarTestFixture(t, env.base, filepath.Join("testdata", "repo-same-timestamps.tar.gz"))
|
||||||
|
|
||||||
|
repo, err := global.OpenRepository()
|
||||||
|
OK(t, err)
|
||||||
|
|
||||||
|
mountpoint, err := ioutil.TempDir(TestTempDir, "restic-test-mount-")
|
||||||
|
OK(t, err)
|
||||||
|
|
||||||
|
ids := []restic.ID{
|
||||||
|
restic.TestParseID("280303689e5027328889a06d718b729e96a1ce6ae9ef8290bff550459ae611ee"),
|
||||||
|
restic.TestParseID("75ad6cdc0868e082f2596d5ab8705e9f7d87316f5bf5690385eeff8dbe49d9f5"),
|
||||||
|
restic.TestParseID("5fd0d8b2ef0fa5d23e58f1e460188abb0f525c0f0c4af8365a1280c807a80a1b"),
|
||||||
|
}
|
||||||
|
|
||||||
|
checkSnapshots(t, global, repo, mountpoint, env.repo, ids)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
BIN
src/cmds/restic/testdata/repo-same-timestamps.tar.gz
vendored
Normal file
BIN
src/cmds/restic/testdata/repo-same-timestamps.tar.gz
vendored
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user