diff options
| author | ljfa-ag <ljfa-ag@web.de> | 2015-09-15 13:25:36 +0200 |
|---|---|---|
| committer | ljfa-ag <ljfa-ag@web.de> | 2015-09-15 13:25:36 +0200 |
| commit | 7a8a1833dc766abc1626a1e590e3f39a7d503062 (patch) | |
| tree | 8fb7f54af2815e6e824360b2ce5dddb4a107c02e | |
| parent | 0f76512c7a8d4aaf3928c9c9bb4bc35dda1ac171 (diff) | |
| download | Project-Tick-7a8a1833dc766abc1626a1e590e3f39a7d503062.tar.gz Project-Tick-7a8a1833dc766abc1626a1e590e3f39a7d503062.zip | |
Add tests for corrupted input data
| -rw-r--r-- | test/testfiles/bigtest_corrupt.nbt | bin | 0 -> 561 bytes | |||
| -rw-r--r-- | test/testfiles/bigtest_eof.nbt | bin | 0 -> 426 bytes | |||
| -rw-r--r-- | test/zlibstream_test.h | 29 |
3 files changed, 25 insertions, 4 deletions
diff --git a/test/testfiles/bigtest_corrupt.nbt b/test/testfiles/bigtest_corrupt.nbt Binary files differnew file mode 100644 index 0000000000..71eba42a7b --- /dev/null +++ b/test/testfiles/bigtest_corrupt.nbt diff --git a/test/testfiles/bigtest_eof.nbt b/test/testfiles/bigtest_eof.nbt Binary files differnew file mode 100644 index 0000000000..eeedb9d26d --- /dev/null +++ b/test/testfiles/bigtest_eof.nbt diff --git a/test/zlibstream_test.h b/test/zlibstream_test.h index 7620246d74..f37dcdbd91 100644 --- a/test/zlibstream_test.h +++ b/test/zlibstream_test.h @@ -39,7 +39,7 @@ public: throw std::runtime_error("Could not read bigtest_uncompr file"); } - void test_izlibstream_gzip() + void test_inflate_gzip() { std::ifstream gzip_in("bigtest.nbt", std::ios::binary); TS_ASSERT(gzip_in); @@ -50,7 +50,6 @@ public: izlibstream igzs(gzip_in, 256); igzs.exceptions(std::ios::failbit); TS_ASSERT(igzs.good()); - TS_ASSERT(!igzs.eof()); TS_ASSERT_THROWS_NOTHING(igzs >> &data); TS_ASSERT(igzs); @@ -67,7 +66,6 @@ public: izlibstream igzs(gzip_in, 1000); igzs.exceptions(std::ios::failbit); TS_ASSERT(igzs.good()); - TS_ASSERT(!igzs.eof()); TS_ASSERT_THROWS_NOTHING(igzs >> &data); TS_ASSERT(igzs); @@ -83,7 +81,6 @@ public: izlibstream igzs(gzip_in, 4000); igzs.exceptions(std::ios::failbit); TS_ASSERT(igzs.good()); - TS_ASSERT(!igzs.eof()); TS_ASSERT_THROWS_NOTHING(igzs >> &data); TS_ASSERT(igzs); @@ -91,4 +88,28 @@ public: TS_ASSERT_EQUALS(data.str(), bigtest.str()); } } + + void test_inflate_corrupt() + { + std::ifstream gzip_in("bigtest_corrupt.nbt", std::ios::binary); + TS_ASSERT(gzip_in); + + std::stringbuf data; + { + izlibstream igzs(gzip_in); + igzs.exceptions(std::ios::failbit); + TS_ASSERT_THROWS(igzs >> &data, zlib_error); + } + + gzip_in.close(); + gzip_in.open("bigtest_eof.nbt", std::ios::binary); + TS_ASSERT(gzip_in); + + data.str(""); + { + izlibstream igzs(gzip_in); + igzs.exceptions(std::ios::failbit); + TS_ASSERT_THROWS(igzs >> &data, zlib_error); + } + } }; |
