diff --git a/test/beast/zlib/deflate_stream.cpp b/test/beast/zlib/deflate_stream.cpp index 905093ba..fc6a48bc 100644 --- a/test/beast/zlib/deflate_stream.cpp +++ b/test/beast/zlib/deflate_stream.cpp @@ -341,6 +341,36 @@ public: }); } + void + testWriteAfterFinish() + { + z_params zp; + deflate_stream ds; + ds.reset(); + std::string out; + out.resize(1024); + string_view s = "Hello"; + zp.next_in = s.data(); + zp.avail_in = s.size(); + zp.next_out = &out.front(); + zp.avail_out = out.size(); + error_code ec; + ds.write(zp, Flush::sync, ec); + BEAST_EXPECT(!ec); + zp.next_in = nullptr; + zp.avail_in = 0; + ds.write(zp, Flush::finish, ec); + BEAST_EXPECT(ec == error::end_of_stream); + zp.next_in = s.data(); + zp.avail_in = s.size(); + zp.next_out = &out.front(); + zp.avail_out = out.size(); + ds.write(zp, Flush::sync, ec); + BEAST_EXPECT(ec == error::stream_error); + ds.write(zp, Flush::finish, ec); + BEAST_EXPECT(ec == error::need_buffers); + } + void run() override { @@ -350,6 +380,7 @@ public: testDeflate(); testInvalidSettings(); + testWriteAfterFinish(); } };