diff options
author | Sergio Durigan Junior <sergiodj@redhat.com> | 2018-09-17 15:58:55 -0400 |
---|---|---|
committer | Sergio Durigan Junior <sergiodj@redhat.com> | 2018-10-10 16:23:56 -0400 |
commit | 8ecfd7bd4acd69213c06fac6de9af38299123547 (patch) | |
tree | 2c3055edaaac0053f0403713cbbbbe5e6a01c4b3 /gdb/selftest.m4 | |
parent | 33b031ce7a9b8b1b7c729518af965b7cb70a1cd6 (diff) | |
download | gdb-8ecfd7bd4acd69213c06fac6de9af38299123547.zip gdb-8ecfd7bd4acd69213c06fac6de9af38299123547.tar.gz gdb-8ecfd7bd4acd69213c06fac6de9af38299123547.tar.bz2 |
Add parameter to allow enabling/disabling selftests via configure
This is a follow-up of:
https://sourceware.org/ml/gdb-patches/2018-08/msg00347.html
Instead of going throttle and always enabling our selftests (even in
non-development builds), this patch is a bit more conservative and
introduces a configure option ("--enable-unit-tests") that allows the
user to choose whether she wants unit tests in the build or not. Note
that the current behaviour is retained: if no option is provided, GDB
will have selftests included in a development build, and will *not*
have selftests included in a non-development build.
The rationale for having this option is still the same: due to the
many racy testcases and random failures we see when running the GDB
testsuite, it is unfortunately not possible to perform a full test
when one is building a downstream package. As the Fedora GDB
maintainer and one of the Debian GDB uploaders, I feel like this
situation could be improved by, at least, executing our selftests
after the package has been built.
This patch introduces no regressions to our build.
OK?
gdb/ChangeLog:
2018-10-10 Sergio Durigan Junior <sergiodj@redhat.com>
Simon Marchi <simark@simark.ca>
* README (`configure' options): Add documentation for new
"--enable-unit-tests" option.
* acinclude.m4: Include "selftest.m4".
* configure: Regenerate.
* configure.ac: Use "GDB_AC_SELFTEST".
* maint.c (maintenance_selftest): Update message informing
that selftests have been disabled.
(maintenance_info_selftests): Likewise.
* selftest.m4: New file.
gdb/gdbserver/ChangeLog:
2018-10-10 Sergio Durigan Junior <sergiodj@redhat.com>
Simon Marchi <simark@simark.ca>
* acinclude.m4: Include "../selftest.m4".
* configure: Regenerate.
* configure.ac: Use "GDB_AC_SELFTEST".
* configure.srv: Use "$enable_unittests" instead of
"$development" when checking whether unit tests have been
enabled.
* server.c (captured_main): Update message informing that
selftests have been disabled.
gdb/testsuite/ChangeLog:
2018-10-10 Sergio Durigan Junior <sergiodj@redhat.com>
* gdb.gdb/unittest.exp: Update expected message informing that
selftests have been disabled.
* gdb.server/unittest.exp: Likewise.
squash! Add parameter to allow enabling/disabling selftests via configure
Diffstat (limited to 'gdb/selftest.m4')
-rw-r--r-- | gdb/selftest.m4 | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/gdb/selftest.m4 b/gdb/selftest.m4 new file mode 100644 index 0000000..acf4050 --- /dev/null +++ b/gdb/selftest.m4 @@ -0,0 +1,45 @@ +dnl Copyright (C) 2018 Free Software Foundation, Inc. +dnl +dnl This file is part of GDB. +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 3 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program. If not, see <http://www.gnu.org/licenses/>. + +dnl GDB_AC_SELFTEST(ACTION-IF-ENABLED) +dnl +dnl Enable the unit/self tests if needed. If they are enabled, AC_DEFINE +dnl the GDB_SELF_TEST macro, and execute ACTION-IF-ENABLED. + +AC_DEFUN([GDB_AC_SELFTEST],[ +# Check whether we will enable the inclusion of unit tests when +# compiling GDB. +# +# The default value of this option changes depending whether we're on +# development mode (in which case it's "true") or not (in which case +# it's "false"). +AC_ARG_ENABLE(unit-tests, +AS_HELP_STRING([--enable-unit-tests], +[Enable the inclusion of unit tests when compiling GDB]), +[case "${enableval}" in + yes) enable_unittests=true ;; + no) enable_unittests=false ;; + *) AC_MSG_ERROR( +[bad value ${enableval} for --{enable,disable}-unit-tests option]) ;; +esac], [enable_unittests=$development]) + +if $enable_unittests; then + AC_DEFINE(GDB_SELF_TEST, 1, + [Define if self-testing features should be enabled]) + $1 +fi +]) |