diff options
author | Joshua MacDonald <josh.macdonald@gmail.com> | 2015-02-01 21:20:03 -0800 |
---|---|---|
committer | Joshua MacDonald <josh.macdonald@gmail.com> | 2015-02-01 21:20:03 -0800 |
commit | 1e7f716f0854ad67df9a77341a829c84e4e6b1e5 (patch) | |
tree | 3f64e096859c7b2fa47f5bbaf56f7adbee9a57cc /xdelta3/go/src/xdelta | |
parent | b55fcf3dc4c775ef35dce116ab23d35a5f9ff326 (diff) |
regtest.go exhibits bad compression >2GB boundary
Diffstat (limited to 'xdelta3/go/src/xdelta')
-rw-r--r-- | xdelta3/go/src/xdelta/rstream.go | 20 | ||||
-rw-r--r-- | xdelta3/go/src/xdelta/test.go | 9 |
2 files changed, 16 insertions, 13 deletions
diff --git a/xdelta3/go/src/xdelta/rstream.go b/xdelta3/go/src/xdelta/rstream.go index 1666934..1d56031 100644 --- a/xdelta3/go/src/xdelta/rstream.go +++ b/xdelta3/go/src/xdelta/rstream.go | |||
@@ -16,20 +16,21 @@ func WriteRstreams(seed, offset, len int64, | |||
16 | go writeOne(seed, offset, len, second) | 16 | go writeOne(seed, offset, len, second) |
17 | } | 17 | } |
18 | 18 | ||
19 | func writeOne(seed, offset, len int64, stream io.WriteCloser) { | 19 | func writeOne(seed, offset, len int64, stream io.WriteCloser) error { |
20 | if offset != 0 { | 20 | if offset != 0 { |
21 | // Fill with other random data until the offset | 21 | // Fill with other random data until the offset |
22 | writeRand(rand.New(rand.NewSource(^seed)), | 22 | if err := writeRand(rand.New(rand.NewSource(^seed)), offset, stream); err != nil { |
23 | offset, stream) | 23 | return err |
24 | } | ||
24 | } | 25 | } |
25 | writeRand(rand.New(rand.NewSource(seed)), | 26 | if err := writeRand(rand.New(rand.NewSource(seed)), |
26 | len - offset, stream) | 27 | len - offset, stream); err != nil { |
27 | if err := stream.Close(); err != nil { | 28 | return err |
28 | panic(err) | ||
29 | } | 29 | } |
30 | return stream.Close() | ||
30 | } | 31 | } |
31 | 32 | ||
32 | func writeRand(r *rand.Rand, len int64, s io.Writer) { | 33 | func writeRand(r *rand.Rand, len int64, s io.Writer) error { |
33 | blk := make([]byte, blocksize) | 34 | blk := make([]byte, blocksize) |
34 | for len > 0 { | 35 | for len > 0 { |
35 | fillRand(r, blk) | 36 | fillRand(r, blk) |
@@ -38,10 +39,11 @@ func writeRand(r *rand.Rand, len int64, s io.Writer) { | |||
38 | c = int(len) | 39 | c = int(len) |
39 | } | 40 | } |
40 | if _, err := s.Write(blk[0:c]); err != nil { | 41 | if _, err := s.Write(blk[0:c]); err != nil { |
41 | panic(err) | 42 | return err |
42 | } | 43 | } |
43 | len -= int64(c) | 44 | len -= int64(c) |
44 | } | 45 | } |
46 | return nil | ||
45 | } | 47 | } |
46 | 48 | ||
47 | func fillRand(r *rand.Rand, blk []byte) { | 49 | func fillRand(r *rand.Rand, blk []byte) { |
diff --git a/xdelta3/go/src/xdelta/test.go b/xdelta3/go/src/xdelta/test.go index 292f133..3143dfa 100644 --- a/xdelta3/go/src/xdelta/test.go +++ b/xdelta3/go/src/xdelta/test.go | |||
@@ -83,15 +83,16 @@ func (r *Runner) Exec(p *Program, srcfifo bool, flags []string) (*Run, error) { | |||
83 | return run, nil | 83 | return run, nil |
84 | } | 84 | } |
85 | 85 | ||
86 | func writeFifo(srcfile string, read io.Reader) { | 86 | func writeFifo(srcfile string, read io.Reader) error { |
87 | fifo, err := os.OpenFile(srcfile, os.O_WRONLY, 0600) | 87 | fifo, err := os.OpenFile(srcfile, os.O_WRONLY, 0600) |
88 | if err != nil { | 88 | if err != nil { |
89 | panic(err) | 89 | return err |
90 | } | 90 | } |
91 | if _, err := io.Copy(fifo, read); err != nil { | 91 | if _, err := io.Copy(fifo, read); err != nil { |
92 | panic(err) | 92 | return err |
93 | } | 93 | } |
94 | if err := fifo.Close(); err != nil { | 94 | if err := fifo.Close(); err != nil { |
95 | panic(err) | 95 | return err |
96 | } | 96 | } |
97 | return nil | ||
97 | } | 98 | } |