From dcbf68e104928235eb90cd3d6f955036cc7c0126 Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Mon, 8 Aug 2016 18:27:55 +0000 Subject: [PATCH] lib/versioner: Hack to make test coverage stable from run to run GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3485 --- lib/versioner/staggered.go | 5 +++++ lib/versioner/staggered_test.go | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/lib/versioner/staggered.go b/lib/versioner/staggered.go index 6cb05a11..58dc8a87 100644 --- a/lib/versioner/staggered.go +++ b/lib/versioner/staggered.go @@ -35,6 +35,8 @@ type Staggered struct { mutex sync.Mutex } +var testCleanDone chan struct{} + func NewStaggered(folderID, folderPath string, params map[string]string) Versioner { maxAge, err := strconv.ParseInt(params["maxAge"], 10, 0) if err != nil { @@ -72,6 +74,9 @@ func NewStaggered(folderID, folderPath string, params map[string]string) Version go func() { s.clean() + if testCleanDone != nil { + close(testCleanDone) + } for _ = range time.Tick(time.Duration(cleanInterval) * time.Second) { s.clean() } diff --git a/lib/versioner/staggered_test.go b/lib/versioner/staggered_test.go index b3e722aa..f3c7d957 100644 --- a/lib/versioner/staggered_test.go +++ b/lib/versioner/staggered_test.go @@ -7,6 +7,7 @@ package versioner import ( + "os" "sort" "strconv" "testing" @@ -58,7 +59,13 @@ func TestStaggeredVersioningVersionCount(t *testing.T) { } sort.Strings(delete) + os.MkdirAll("testdata/.stversions", 0755) + defer os.RemoveAll("testdata") + + testCleanDone = make(chan struct{}) v := NewStaggered("", "testdata", map[string]string{"maxAge": strconv.Itoa(365 * 86400)}).(Staggered) + <-testCleanDone + rem := v.toRemove(files, now) if diff, equal := messagediff.PrettyDiff(delete, rem); !equal { t.Errorf("Incorrect deleted files; got %v, expected %v\n%v", rem, delete, diff)