[Spice-devel] [PATCH spice-common 1/2] Add --enable-extra-checks option

Frediano Ziglio fziglio at redhat.com
Tue Mar 20 11:07:31 UTC 2018


> > On 19 Mar 2018, at 14:46, Frediano Ziglio <fziglio at redhat.com> wrote:
> > 
> > Allow to enable code to do additional or expensive checks.
> 
> “Allow to enable…” -> “Add configuration option enabling expensive checks”
> 

We decided extra after researching on different projects.
I think extra is better, not only expensive but also paranoid tests
I would say that you don't want on final product.

> > The option should be used by higher level libraries.
> > By default the option is disabled.
> > 
> > Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> > ---
> > common/log.h     |  6 ++++++
> > configure.ac     |  1 +
> > m4/spice-deps.m4 | 14 ++++++++++++++
> > 3 files changed, 21 insertions(+)
> > 
> > diff --git a/common/log.h b/common/log.h
> > index 06d48d2..e0fd34b 100644
> > --- a/common/log.h
> > +++ b/common/log.h
> > @@ -93,6 +93,12 @@ void spice_log(GLogLevelFlags log_level,
> >     }                                                   \
> > } G_STMT_END
> > 
> > +#if ENABLE_EXTRA_CHECKS
> > +enum { spice_extra_checks = 1 };
> 
> I would suggest renaming “extra_checks” to “expensive_checks” if that’s
> really the intent.

No, is extra.

> And then, I would avoid bracketing inexpensive checks (like simple asserts)
> with it, because otherwise it introduces confusion.
> 

I don't see why an if is confusing. They are "extra", not "expensive".

> Alternatively, if we think that asserts are expensive, then all spice_assert
> checks should be disabled by this. But I’d rather not.
> 
> (I already suggested a spice_hot_assert for assertions in hot code as a
> better way to express the intent than an if around spice_assert).
> 

I don't agree on a rule like "is expensive disable the assert", depends
on the probability of happening and the problem that can raise not doing
it. I prefer a core than a remote code execution, but here we enter on
the opinions.

> > +#else
> > +enum { spice_extra_checks = 0 };
> > +#endif
> > +
> > SPICE_END_DECLS
> > 
> > #endif /* H_SPICE_LOG */
> > diff --git a/configure.ac b/configure.ac
> > index 3542161..3da85de 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -27,6 +27,7 @@ fi
> > AM_PROG_CC_C_O
> > 
> > SPICE_CHECK_SYSDEPS
> > +SPICE_EXTRA_CHECKS
> > 
> > AC_ARG_ENABLE([alignment-checks],
> >   AS_HELP_STRING([--enable-alignment-checks],
> > diff --git a/m4/spice-deps.m4 b/m4/spice-deps.m4
> > index 68e3091..a6f4b7b 100644
> > --- a/m4/spice-deps.m4
> > +++ b/m4/spice-deps.m4
> > @@ -23,6 +23,20 @@ AC_DEFUN([SPICE_PRINT_MESSAGES],[
> > ])
> > 
> > 
> > +# SPICE_EXTRA_CHECKS()
> > +# --------------------
> > +# Check for --enable-extra-checks option
> > +# --------------------
> > +AC_DEFUN([SPICE_EXTRA_CHECKS],[
> > +AC_ARG_ENABLE([extra-checks],
> > +               AS_HELP_STRING([--enable-extra-checks=@<:@yes/no@:>@],
> > +                              [Enable expensive checks
> > @<:@default=no@:>@]))
> > +AM_CONDITIONAL(ENABLE_EXTRA_CHECKS, test "x$enable_extra_checks" = "xyes")
> > +AS_IF([test "x$enable_extra_checks" = "xyes"],
> > +      [AC_DEFINE([ENABLE_EXTRA_CHECKS], 1, [Enable extra checks on
> > code])])
> > +])
> > +
> > +
> > # SPICE_CHECK_SYSDEPS()
> > # ---------------------
> > # Checks for header files and library functions needed by spice-common.

Here comments would be better using "dnl" style but I used shell comments
for coherence.

Frediano


More information about the Spice-devel mailing list