diff options
author | obscuren <geffobscura@gmail.com> | 2014-11-03 07:29:34 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-11-03 07:29:34 +0800 |
commit | 5dcf59bdf4b1a63ca8733994a81c936becf59933 (patch) | |
tree | 6ba094a7ddd67466dd14cbd002b59b14dfe5164e /compression/rle | |
parent | 9f8bcf3abca8c6c32efc384f6c6eda1677b769c5 (diff) | |
download | go-tangerine-5dcf59bdf4b1a63ca8733994a81c936becf59933.tar go-tangerine-5dcf59bdf4b1a63ca8733994a81c936becf59933.tar.gz go-tangerine-5dcf59bdf4b1a63ca8733994a81c936becf59933.tar.bz2 go-tangerine-5dcf59bdf4b1a63ca8733994a81c936becf59933.tar.lz go-tangerine-5dcf59bdf4b1a63ca8733994a81c936becf59933.tar.xz go-tangerine-5dcf59bdf4b1a63ca8733994a81c936becf59933.tar.zst go-tangerine-5dcf59bdf4b1a63ca8733994a81c936becf59933.zip |
Forgot to put in regular bytes during decompression
Diffstat (limited to 'compression/rle')
-rw-r--r-- | compression/rle/read_write.go | 2 | ||||
-rw-r--r-- | compression/rle/read_write_test.go | 22 |
2 files changed, 24 insertions, 0 deletions
diff --git a/compression/rle/read_write.go b/compression/rle/read_write.go index e6f78e372..b4b73dab4 100644 --- a/compression/rle/read_write.go +++ b/compression/rle/read_write.go @@ -37,6 +37,8 @@ func Decompress(dat []byte) ([]byte, error) { } else { return nil, errors.New("error reading bytes. token encountered without proceeding bytes") } + } else { + buf.WriteByte(dat[i]) } } diff --git a/compression/rle/read_write_test.go b/compression/rle/read_write_test.go index 944822a47..76ceb6350 100644 --- a/compression/rle/read_write_test.go +++ b/compression/rle/read_write_test.go @@ -91,3 +91,25 @@ func TestCompressMulti(t *testing.T) { t.Error("expected", exp, "got", res) } } + +func TestCompressDecompress(t *testing.T) { + var in []byte + + for i := 0; i < 20; i++ { + in = append(in, []byte{0, 0, 0, 0, 0}...) + in = append(in, crypto.Sha3([]byte(""))...) + in = append(in, crypto.Sha3([]byte{0x80})...) + in = append(in, []byte{123, 2, 19, 89, 245, 254, 255, token, 98, 233}...) + in = append(in, token) + } + + c := Compress(in) + d, err := Decompress(c) + if err != nil { + t.Error(err) + } + + if bytes.Compare(d, in) != 0 { + t.Error("multi failed\n", d, "\n", in) + } +} |