[tor-commits] [tor/master] In coverage builds, avoid basic-block complexity in log_debug

dgoulet at torproject.org dgoulet at torproject.org
Tue May 28 19:08:45 UTC 2019


commit 2bb5d8148b2c15e9573a7f041ef631bdf4429b4b
Author: Nick Mathewson <nickm at 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, ...)





More information about the tor-commits mailing list