2
2
mirror of https://github.com/octoleo/restic.git synced 2024-05-28 22:50:48 +00:00

Move test for #405: Test Archiver instead of Repo

This commit is contained in:
Alexander Neumann 2016-02-01 23:48:36 +01:00
parent f5f6e9cf37
commit 382c766983

View File

@ -1,4 +1,4 @@
package repository package restic_test
import ( import (
"bytes" "bytes"
@ -10,13 +10,15 @@ import (
"testing" "testing"
"time" "time"
"github.com/restic/restic"
"github.com/restic/restic/backend" "github.com/restic/restic/backend"
"github.com/restic/restic/pack" "github.com/restic/restic/pack"
"github.com/restic/restic/repository"
) )
const parallelSaves = 20 const parallelSaves = 50
const saveIndexTime = 100 * time.Millisecond const testSaveIndexTime = 100 * time.Millisecond
const testTimeout = 1 * time.Second const testTimeout = 2 * time.Second
var DupID backend.ID var DupID backend.ID
@ -70,18 +72,20 @@ func forgetfulBackend() backend.Backend {
return be return be
} }
func testMasterIndex(t *testing.T) { func testArchiverDuplication(t *testing.T) {
_, err := io.ReadFull(rand.Reader, DupID[:]) _, err := io.ReadFull(rand.Reader, DupID[:])
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
repo := New(forgetfulBackend()) repo := repository.New(forgetfulBackend())
err = repo.Init("foo") err = repo.Init("foo")
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
arch := restic.NewArchiver(repo)
wg := &sync.WaitGroup{} wg := &sync.WaitGroup{}
done := make(chan struct{}) done := make(chan struct{})
for i := 0; i < parallelSaves; i++ { for i := 0; i < parallelSaves; i++ {
@ -103,7 +107,7 @@ func testMasterIndex(t *testing.T) {
buf := make([]byte, 50) buf := make([]byte, 50)
err := repo.SaveFrom(pack.Data, &id, uint(len(buf)), bytes.NewReader(buf)) err := arch.Save(pack.Data, id, uint(len(buf)), bytes.NewReader(buf))
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -111,10 +115,10 @@ func testMasterIndex(t *testing.T) {
}() }()
} }
saveIndexes := func() { saveIndex := func() {
defer wg.Done() defer wg.Done()
ticker := time.NewTicker(saveIndexTime) ticker := time.NewTicker(testSaveIndexTime)
defer ticker.Stop() defer ticker.Stop()
for { for {
@ -131,7 +135,7 @@ func testMasterIndex(t *testing.T) {
} }
wg.Add(1) wg.Add(1)
go saveIndexes() go saveIndex()
<-time.After(testTimeout) <-time.After(testTimeout)
close(done) close(done)
@ -139,8 +143,8 @@ func testMasterIndex(t *testing.T) {
wg.Wait() wg.Wait()
} }
func TestMasterIndex(t *testing.T) { func TestArchiverDuplication(t *testing.T) {
for i := 0; i < 5; i++ { for i := 0; i < 5; i++ {
testMasterIndex(t) testArchiverDuplication(t)
} }
} }