diff --git a/zstd/seqdec_test.go b/zstd/seqdec_test.go index c0d8fe9ed2..a0e7addc2c 100644 --- a/zstd/seqdec_test.go +++ b/zstd/seqdec_test.go @@ -4,6 +4,7 @@ import ( "bytes" "encoding/csv" "fmt" + "io" "io/ioutil" "os" "reflect" @@ -167,6 +168,35 @@ func readDecoders(tb testing.TB, buf *bytes.Buffer, ref testSequence) sequenceDe return s } +func Test_seqdec_decode_regression(t *testing.T) { + zr := testCreateZipReader("testdata/decode-regression.zip", t) + + for _, tt := range zr.File { + t.Run(tt.Name, func(t *testing.T) { + f, err := tt.Open() + if err != nil { + t.Error(err) + return + } + defer f.Close() + + // Note: make sure we create stream reader + dec, err := NewReader(f, WithDecoderConcurrency(4)) + if err != nil { + t.Error(err) + return + } + + var buf []byte + _, err = io.ReadFull(dec, buf) + if err != nil { + t.Error(err) + return + } + }) + } +} + func Test_seqdec_decoder(t *testing.T) { const writeWant = false var buf bytes.Buffer diff --git a/zstd/testdata/decode-regression.zip b/zstd/testdata/decode-regression.zip new file mode 100644 index 0000000000..9ea27c8ded Binary files /dev/null and b/zstd/testdata/decode-regression.zip differ