From 01c200d2ef923f26101ac9af53d16d74e01c8950 Mon Sep 17 00:00:00 2001 From: Damian Jarek Date: Mon, 9 Sep 2019 02:53:56 +0200 Subject: [PATCH] Add test checking for writes into a stream in finished state Signed-off-by: Damian Jarek --- test/beast/zlib/deflate_stream.cpp | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) 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(); } };