| 24 | |
| 25 | #ifdef HAVE_LIBZ |
| 26 | TEST(GzipTest, CompressDecompressString) |
| 27 | { |
| 28 | // Test bad compression levels, outside of [-1, Z_BEST_COMPRESSION]. |
| 29 | ASSERT_ERROR(gzip::compress("", -2)); |
| 30 | ASSERT_ERROR(gzip::compress("", Z_BEST_COMPRESSION + 1)); |
| 31 | |
| 32 | string s = |
| 33 | "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do " |
| 34 | "eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad " |
| 35 | "minim veniam, quis nostrud exercitation ullamco laboris nisi ut " |
| 36 | "aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit " |
| 37 | "in voluptate velit esse cillum dolore eu fugiat nulla pariatur. " |
| 38 | "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui " |
| 39 | "officia deserunt mollit anim id est laborum."; |
| 40 | |
| 41 | Try<string> compressed = gzip::compress(s); |
| 42 | ASSERT_SOME(compressed); |
| 43 | Try<string> decompressed = gzip::decompress(compressed.get()); |
| 44 | ASSERT_SOME(decompressed); |
| 45 | ASSERT_EQ(s, decompressed.get()); |
| 46 | |
| 47 | // Test with a 1MB random string! |
| 48 | s = ""; |
| 49 | while (s.length() < (1024 * 1024)) { |
| 50 | s.append(1, ' ' + (rand() % ('~' - ' '))); |
| 51 | } |
| 52 | compressed = gzip::compress(s); |
| 53 | ASSERT_SOME(compressed); |
| 54 | decompressed = gzip::decompress(compressed.get()); |
| 55 | ASSERT_SOME(decompressed); |
| 56 | ASSERT_EQ(s, decompressed.get()); |
| 57 | |
| 58 | s = ""; |
| 59 | compressed = gzip::compress(s); |
| 60 | ASSERT_SOME(compressed); |
| 61 | decompressed = gzip::decompress(compressed.get()); |
| 62 | ASSERT_SOME(decompressed); |
| 63 | ASSERT_EQ(s, decompressed.get()); |
| 64 | } |
| 65 | |
| 66 | |
| 67 | TEST(GzipTest, Decompressor) |
nothing calls this directly
no test coverage detected