X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/5bf77ec1bbbd91ee2f1d063d963850c600251ca7..4d53c7ea431ad5c20bfed54cd68d4518091574e8:/services/keepstore/volume_test.go diff --git a/services/keepstore/volume_test.go b/services/keepstore/volume_test.go index 3d6b95fd8b..b0cbabf800 100644 --- a/services/keepstore/volume_test.go +++ b/services/keepstore/volume_test.go @@ -3,6 +3,7 @@ package main import ( "errors" "fmt" + "io" "os" "strings" "sync" @@ -14,15 +15,15 @@ type MockVolume struct { Store map[string][]byte Timestamps map[string]time.Time // Bad volumes return an error for every operation. - Bad bool + Bad bool // Touchable volumes' Touch() method succeeds for a locator // that has been Put(). - Touchable bool + Touchable bool // Readonly volumes return an error for Put, Delete, and // Touch. - Readonly bool - called map[string]int - mutex sync.Mutex + Readonly bool + called map[string]int + mutex sync.Mutex } // CreateMockVolume returns a non-Bad, non-Readonly, Touchable mock @@ -107,16 +108,19 @@ func (v *MockVolume) Mtime(loc string) (time.Time, error) { return mtime, err } -func (v *MockVolume) Index(prefix string) string { +func (v *MockVolume) IndexTo(prefix string, w io.Writer) error { v.gotCall("Index") - var result string for loc, block := range v.Store { - if IsValidLocator(loc) && strings.HasPrefix(loc, prefix) { - result = result + fmt.Sprintf("%s+%d %d\n", - loc, len(block), 123456789) + if !IsValidLocator(loc) || !strings.HasPrefix(loc, prefix) { + continue + } + _, err := fmt.Fprintf(w, "%s+%d %d\n", + loc, len(block), 123456789) + if err != nil { + return err } } - return result + return nil } func (v *MockVolume) Delete(loc string) error {