commit 2bb5d8148b2c15e9573a7f041ef631bdf4429b4b Author: Nick Mathewson nickm@torproject.org Date: Wed May 15 08:27:02 2019 -0400
In coverage builds, avoid basic-block complexity in log_debug
Ordinarily we skip calling log_fn(LOG_DEBUG,...) if debug logging is completely disabled. However, in coverage builds, this means that we get spurious complaints about partially covered basic blocks, in a way that makes our coverage determinism harder to check. --- src/lib/log/log.h | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/src/lib/log/log.h b/src/lib/log/log.h index a381220af..4a3ea0ad5 100644 --- a/src/lib/log/log.h +++ b/src/lib/log/log.h @@ -194,6 +194,11 @@ void tor_log_get_logfile_names(struct smartlist_t *out);
extern int log_global_min_severity_;
+#ifdef TOR_COVERAGE +/* For coverage builds, we try to avoid our log_debug optimization, since it + * can have weird effects on internal macro coverage. */ +#define debug_logging_enabled() (1) +#else static inline bool debug_logging_enabled(void); /** * Return true iff debug logging is enabled for at least one domain. @@ -202,6 +207,7 @@ static inline bool debug_logging_enabled(void) { return PREDICT_UNLIKELY(log_global_min_severity_ == LOG_DEBUG); } +#endif
void log_fn_(int severity, log_domain_mask_t domain, const char *funcname, const char *format, ...)