Pārlūkot izejas kodu

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.
Nick Mathewson 5 gadi atpakaļ
vecāks
revīzija
2bb5d8148b
1 mainītis faili ar 6 papildinājumiem un 0 dzēšanām
  1. 6 0
      src/lib/log/log.h

+ 6 - 0
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, ...)