diff options
| author | ljfa-ag <ljfa-ag@web.de> | 2015-09-20 19:31:14 +0200 |
|---|---|---|
| committer | ljfa-ag <ljfa-ag@web.de> | 2015-09-20 19:31:14 +0200 |
| commit | 70309e97831b2e3be48eee83356e5e9241b317b0 (patch) | |
| tree | 834c0a82e398ad74790bb875cb1988194ade1f98 | |
| parent | 84d2896da1c3f3ef0be80476585422d8b1230289 (diff) | |
| download | Project-Tick-70309e97831b2e3be48eee83356e5e9241b317b0.tar.gz Project-Tick-70309e97831b2e3be48eee83356e5e9241b317b0.zip | |
Add more tests for deflating
| -rw-r--r-- | test/zlibstream_test.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/test/zlibstream_test.h b/test/zlibstream_test.h index e0b22c1356..754f4e5d58 100644 --- a/test/zlibstream_test.h +++ b/test/zlibstream_test.h @@ -146,6 +146,64 @@ public: ozls << bigtest; TS_ASSERT(ozls.good()); } + TS_ASSERT(str.good()); + { + izlibstream izls(str); + TS_ASSERT_THROWS_NOTHING(izls >> &output); + TS_ASSERT(izls); + } + TS_ASSERT_EQUALS(output.str(), bigtest); + + str.clear(); str.str(""); + output.str(""); + //Medium sized buffer + //Write first half, then flush and write second half + { + ozlibstream ozls(str, 9, false, 512); + ozls.exceptions(std::ios::failbit | std::ios::badbit); + + std::string half1 = bigtest.substr(0, bigtest.size()/2); + std::string half2 = bigtest.substr(bigtest.size()/2); + TS_ASSERT_THROWS_NOTHING(ozls << half1 << std::flush << half2); + TS_ASSERT(ozls.good()); + } + TS_ASSERT(str.good()); + { + izlibstream izls(str); + izls >> &output; + TS_ASSERT(izls); + } + TS_ASSERT_EQUALS(output.str(), bigtest); + + str.clear(); str.str(""); + output.str(""); + //Large buffer + { + ozlibstream ozls(str, 1, false, 4000); + ozls.exceptions(std::ios::failbit | std::ios::badbit); + TS_ASSERT_THROWS_NOTHING(ozls << bigtest); + TS_ASSERT(ozls.good()); + } + TS_ASSERT(str.good()); + { + izlibstream izls(str); + izls >> &output; + TS_ASSERT(izls); + } + TS_ASSERT_EQUALS(output.str(), bigtest); + } + + void test_deflate_gzip() + { + std::stringstream str; + std::stringbuf output; + { + ozlibstream ozls(str, -1, true); + ozls.exceptions(std::ios::failbit | std::ios::badbit); + TS_ASSERT_THROWS_NOTHING(ozls << bigtest); + TS_ASSERT(ozls.good()); + } + TS_ASSERT(str.good()); { izlibstream izls(str); izls >> &output; |
