From 1e7f716f0854ad67df9a77341a829c84e4e6b1e5 Mon Sep 17 00:00:00 2001 From: Joshua MacDonald Date: Sun, 1 Feb 2015 21:20:03 -0800 Subject: regtest.go exhibits bad compression >2GB boundary --- xdelta3/go/src/xdelta/rstream.go | 20 +++++++++++--------- xdelta3/go/src/xdelta/test.go | 9 +++++---- 2 files changed, 16 insertions(+), 13 deletions(-) (limited to 'xdelta3/go/src/xdelta') 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, go writeOne(seed, offset, len, second) } -func writeOne(seed, offset, len int64, stream io.WriteCloser) { +func writeOne(seed, offset, len int64, stream io.WriteCloser) error { if offset != 0 { // Fill with other random data until the offset - writeRand(rand.New(rand.NewSource(^seed)), - offset, stream) + if err := writeRand(rand.New(rand.NewSource(^seed)), offset, stream); err != nil { + return err + } } - writeRand(rand.New(rand.NewSource(seed)), - len - offset, stream) - if err := stream.Close(); err != nil { - panic(err) + if err := writeRand(rand.New(rand.NewSource(seed)), + len - offset, stream); err != nil { + return err } + return stream.Close() } -func writeRand(r *rand.Rand, len int64, s io.Writer) { +func writeRand(r *rand.Rand, len int64, s io.Writer) error { blk := make([]byte, blocksize) for len > 0 { fillRand(r, blk) @@ -38,10 +39,11 @@ func writeRand(r *rand.Rand, len int64, s io.Writer) { c = int(len) } if _, err := s.Write(blk[0:c]); err != nil { - panic(err) + return err } len -= int64(c) } + return nil } 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) { return run, nil } -func writeFifo(srcfile string, read io.Reader) { +func writeFifo(srcfile string, read io.Reader) error { fifo, err := os.OpenFile(srcfile, os.O_WRONLY, 0600) if err != nil { - panic(err) + return err } if _, err := io.Copy(fifo, read); err != nil { - panic(err) + return err } if err := fifo.Close(); err != nil { - panic(err) + return err } + return nil } -- cgit v1.2.3