diff options
Diffstat (limited to 'xdelta3/go/src/xdelta/rstream.go')
-rw-r--r-- | xdelta3/go/src/xdelta/rstream.go | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/xdelta3/go/src/xdelta/rstream.go b/xdelta3/go/src/xdelta/rstream.go index 3e7265f..3f520d7 100644 --- a/xdelta3/go/src/xdelta/rstream.go +++ b/xdelta3/go/src/xdelta/rstream.go | |||
@@ -11,25 +11,30 @@ const ( | |||
11 | ) | 11 | ) |
12 | 12 | ||
13 | func WriteRstreams(t *TestGroup, seed, offset, len int64, | 13 | func WriteRstreams(t *TestGroup, seed, offset, len int64, |
14 | first, second io.WriteCloser) { | 14 | src, tgt io.WriteCloser) { |
15 | go writeOne(t, seed, 0, len, first) | 15 | t.Go("src", func (g Goroutine) { |
16 | go writeOne(t, seed, offset, len, second) | 16 | go writeOne(g, seed, 0, len, src) |
17 | }) | ||
18 | t.Go("tgt", func (g Goroutine) { | ||
19 | go writeOne(g, seed, offset, len, tgt) | ||
20 | }) | ||
17 | } | 21 | } |
18 | 22 | ||
19 | func writeOne(t *TestGroup, seed, offset, len int64, stream io.WriteCloser) error { | 23 | func writeOne(g Goroutine, seed, offset, len int64, stream io.WriteCloser) { |
20 | t.WaitGroup.Add(1) | ||
21 | if offset != 0 { | 24 | if offset != 0 { |
22 | // Fill with other random data until the offset | 25 | // Fill with other random data until the offset |
23 | if err := writeRand(rand.New(rand.NewSource(^seed)), offset, stream); err != nil { | 26 | if err := writeRand(rand.New(rand.NewSource(^seed)), offset, stream); err != nil { |
24 | return err | 27 | g.Panic(err) |
25 | } | 28 | } |
26 | } | 29 | } |
27 | if err := writeRand(rand.New(rand.NewSource(seed)), | 30 | if err := writeRand(rand.New(rand.NewSource(seed)), |
28 | len - offset, stream); err != nil { | 31 | len - offset, stream); err != nil { |
29 | return err | 32 | g.Panic(err) |
33 | } | ||
34 | if err := stream.Close(); err != nil { | ||
35 | g.Panic(err) | ||
30 | } | 36 | } |
31 | t.WaitGroup.Done() | 37 | g.OK() |
32 | return stream.Close() | ||
33 | } | 38 | } |
34 | 39 | ||
35 | func writeRand(r *rand.Rand, len int64, s io.Writer) error { | 40 | func writeRand(r *rand.Rand, len int64, s io.Writer) error { |