summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorljfa-ag <ljfa-ag@web.de>2015-09-20 19:31:14 +0200
committerljfa-ag <ljfa-ag@web.de>2015-09-20 19:31:14 +0200
commit70309e97831b2e3be48eee83356e5e9241b317b0 (patch)
tree834c0a82e398ad74790bb875cb1988194ade1f98 /test
parent84d2896da1c3f3ef0be80476585422d8b1230289 (diff)
downloadProject-Tick-70309e97831b2e3be48eee83356e5e9241b317b0.tar.gz
Project-Tick-70309e97831b2e3be48eee83356e5e9241b317b0.zip
Add more tests for deflating
Diffstat (limited to 'test')
-rw-r--r--test/zlibstream_test.h58
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;