commit fcf836d239d3545ff02df63d47e1b23b000138e0 Author: Alexander Færøy ahf@torproject.org Date: Wed May 17 12:52:07 2017 +0000
Add coverage markers in Zstd + LZMA compression backends.
See: https://bugs.torproject.org/22286 --- src/common/compress_lzma.c | 14 ++++++++++++-- src/common/compress_zstd.c | 16 ++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/src/common/compress_lzma.c b/src/common/compress_lzma.c index b5393a6ba..30d5920ca 100644 --- a/src/common/compress_lzma.c +++ b/src/common/compress_lzma.c @@ -46,6 +46,7 @@ memory_level(compression_level_t level) static const char * lzma_error_str(lzma_ret error) { + // LCOV_EXCL_START switch (error) { case LZMA_OK: return "Operation completed successfully"; @@ -74,6 +75,7 @@ lzma_error_str(lzma_ret error) default: return "Unknown LZMA error"; } + // LCOV_EXCL_STOP } #endif // HAVE_LZMA.
@@ -144,9 +146,11 @@ tor_lzma_state_size_precalc(int compress, compression_level_t level) memory_usage = lzma_easy_decoder_memusage(memory_level(level));
if (memory_usage == UINT64_MAX) { + // LCOV_EXCL_START log_warn(LD_GENERAL, "Unsupported compression level passed to LZMA %s", compress ? "encoder" : "decoder"); goto err; + // LCOV_EXCL_STOP }
if (memory_usage + sizeof(tor_lzma_compress_state_t) > SIZE_MAX) @@ -157,7 +161,7 @@ tor_lzma_state_size_precalc(int compress, compression_level_t level) return (size_t)memory_usage;
err: - return 0; + return 0; // LCOV_EXCL_LINE } #endif // HAVE_LZMA.
@@ -189,17 +193,21 @@ tor_lzma_compress_new(int compress, retval = lzma_alone_encoder(&result->stream, &stream_options);
if (retval != LZMA_OK) { + // LCOV_EXCL_START log_warn(LD_GENERAL, "Error from LZMA encoder: %s (%u).", lzma_error_str(retval), retval); goto err; + // LCOV_EXCL_STOP } } else { retval = lzma_alone_decoder(&result->stream, MEMORY_LIMIT);
if (retval != LZMA_OK) { + // LCOV_EXCL_START log_warn(LD_GENERAL, "Error from LZMA decoder: %s (%u).", lzma_error_str(retval), retval); goto err; + // LCOV_EXCL_STOP } }
@@ -207,7 +215,7 @@ tor_lzma_compress_new(int compress, return result;
err: - tor_free(result); + tor_free(result); // LCOV_EXCL_LINE return NULL; #else // HAVE_LZMA. (void)compress; @@ -295,10 +303,12 @@ tor_lzma_compress_process(tor_lzma_compress_state_t *state, case LZMA_DATA_ERROR: case LZMA_PROG_ERROR: default: + // LCOV_EXCL_START log_warn(LD_GENERAL, "LZMA %s didn't finish: %s.", state->compress ? "compression" : "decompression", lzma_error_str(retval)); return TOR_COMPRESS_ERROR; + // LCOV_EXCL_STOP } #else // HAVE_LZMA. (void)state; diff --git a/src/common/compress_zstd.c b/src/common/compress_zstd.c index 99d05c37b..f54c4e1b3 100644 --- a/src/common/compress_zstd.c +++ b/src/common/compress_zstd.c @@ -194,31 +194,39 @@ tor_zstd_compress_new(int compress, result->u.compress_stream = ZSTD_createCStream();
if (result->u.compress_stream == NULL) { + // LCOV_EXCL_START log_warn(LD_GENERAL, "Error while creating Zstandard stream"); goto err; + // LCOV_EXCL_STOP }
retval = ZSTD_initCStream(result->u.compress_stream, preset);
if (ZSTD_isError(retval)) { + // LCOV_EXCL_START log_warn(LD_GENERAL, "Zstandard stream initialization error: %s", ZSTD_getErrorName(retval)); goto err; + // LCOV_EXCL_STOP } } else { result->u.decompress_stream = ZSTD_createDStream();
if (result->u.decompress_stream == NULL) { + // LCOV_EXCL_START log_warn(LD_GENERAL, "Error while creating Zstandard stream"); goto err; + // LCOV_EXCL_STOP }
retval = ZSTD_initDStream(result->u.decompress_stream);
if (ZSTD_isError(retval)) { + // LCOV_EXCL_START log_warn(LD_GENERAL, "Zstandard stream initialization error: %s", ZSTD_getErrorName(retval)); goto err; + // LCOV_EXCL_STOP } }
@@ -226,6 +234,7 @@ tor_zstd_compress_new(int compress, return result;
err: + // LCOV_EXCL_START if (compress) { ZSTD_freeCStream(result->u.compress_stream); } else { @@ -234,6 +243,7 @@ tor_zstd_compress_new(int compress,
tor_free(result); return NULL; + // LCOV_EXCL_STOP #else // HAVE_ZSTD. (void)compress; (void)method; @@ -294,10 +304,12 @@ tor_zstd_compress_process(tor_zstd_compress_state_t *state, }
if (ZSTD_isError(retval)) { + // LCOV_EXCL_START log_warn(LD_GENERAL, "Zstandard %s didn't finish: %s.", state->compress ? "compression" : "decompression", ZSTD_getErrorName(retval)); return TOR_COMPRESS_ERROR; + // LCOV_EXCL_STOP }
if (state->compress && !finish) { @@ -307,9 +319,11 @@ tor_zstd_compress_process(tor_zstd_compress_state_t *state, *out_len = output.size - output.pos;
if (ZSTD_isError(retval)) { + // LCOV_EXCL_START log_warn(LD_GENERAL, "Zstandard compression unable to flush: %s.", ZSTD_getErrorName(retval)); return TOR_COMPRESS_ERROR; + // LCOV_EXCL_STOP }
if (retval > 0) @@ -326,10 +340,12 @@ tor_zstd_compress_process(tor_zstd_compress_state_t *state, *out_len = output.size - output.pos;
if (ZSTD_isError(retval)) { + // LCOV_EXCL_START log_warn(LD_GENERAL, "Zstandard compression unable to write " "epilogue: %s.", ZSTD_getErrorName(retval)); return TOR_COMPRESS_ERROR; + // LCOV_EXCL_STOP }
// endStream returns the number of bytes that is needed to write the
tor-commits@lists.torproject.org