diff --git a/test/common_test.go b/test/common_test.go index 08835337..21023c7c 100644 --- a/test/common_test.go +++ b/test/common_test.go @@ -106,21 +106,27 @@ func (p *syncthingProcess) stop() error { } defer fd.Close() - raceCondition := []byte("DATA RACE") + raceConditionStart := []byte("WARNING: DATA RACE") + raceConditionSep := []byte("==================") sc := bufio.NewScanner(fd) + race := false for sc.Scan() { line := sc.Bytes() - if bytes.Contains(line, raceCondition) { - name := fmt.Sprintf("race-%d.out", time.Now().Unix()) - cp, _ := os.Create(name) - fd.Seek(0, os.SEEK_SET) - io.Copy(cp, fd) - cp.Close() - - return errors.New("Race condition detected in " + name) + if race { + fmt.Printf("%s\n", line) + if bytes.Contains(line, raceConditionSep) { + race = false + } + } else if bytes.Contains(line, raceConditionStart) { + fmt.Printf("%s\n", raceConditionSep) + fmt.Printf("%s\n", raceConditionStart) + race = true + if err == nil { + err = errors.New("Race condition detected") + } } } - return nil + return err } func (p *syncthingProcess) get(path string) (*http.Response, error) {