public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Tom Tromey <tom@tromey.com>
To: gdb-patches@sourceware.org
Subject: [PATCH 00/46] Rewrite "require" test procedure and use it more often
Date: Fri, 16 Dec 2022 17:07:32 -0700	[thread overview]
Message-ID: <20221217000818.3729389-1-tom@tromey.com> (raw)

A recent patch by Enze Li made me revisit the "require" procedure.
For his patch, see:

https://sourceware.org/pipermail/gdb-patches/2022-December/194586.html

This series rewrites "require" to be a bit more 'static' and then
changes a lot of the test suite to use it when possible.  I looked at
a large number of tests, but not every single one, so it's possible
some more work here could be done.

The new 'require' just invokes simple predicates and decides what to
do based on them.  It will issue an "unsupported" message if the
requirements are not satisfied.  See patch #3.

Currently the requirements should only be invoked when gdb is not
running.  At least, that's what I've done, I don't think there's a
real barrier to doing this, other than the fact that the resulting
code might be overly subtle.

More changes here could be done, for example allowing uses like:

    require {is_remote host}

or the like.  I haven't tried this.

The main benefit of this entire approach is that it removes
boilerplate and decisions about whether to use verbose, unsupport,
untested, or even no output at all.

Regression tested on x86-64 Fedora 36, though TBH that's hardly
sufficient.

Let me know what you think.

Tom



             reply	other threads:[~2022-12-17  0:08 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-17  0:07 Tom Tromey [this message]
2022-12-17  0:07 ` [PATCH 01/46] Don't use ensure_gdb_index with require Tom Tromey
2022-12-17  0:07 ` [PATCH 02/46] Change 'require' to accept a list of predicates Tom Tromey
2022-12-17  0:07 ` [PATCH 03/46] Use unsupported in 'require' Tom Tromey
2022-12-23 12:39   ` Aktemur, Tankut Baris
2023-01-06  1:14     ` Tom Tromey
2022-12-17  0:07 ` [PATCH 04/46] Use require supports_reverse Tom Tromey
2022-12-17  0:07 ` [PATCH 05/46] Use require supports_process_record Tom Tromey
2022-12-17  0:07 ` [PATCH 06/46] Use require dwarf2_support Tom Tromey
2022-12-17  0:07 ` [PATCH 07/46] Use require is_x86_like_target Tom Tromey
2022-12-17  0:07 ` [PATCH 08/46] Use require skip_cplus_tests Tom Tromey
2022-12-17  0:07 ` [PATCH 09/46] Use require skip_shlib_tests Tom Tromey
2022-12-17  0:07 ` [PATCH 10/46] Use require skip_dlmopen_tests Tom Tromey
2022-12-17  0:07 ` [PATCH 11/46] Use require skip_stl_tests Tom Tromey
2022-12-17  0:07 ` [PATCH 12/46] Use require skip_rust_tests Tom Tromey
2022-12-17  0:07 ` [PATCH 13/46] Use require skip_fortran_tests Tom Tromey
2022-12-17  0:07 ` [PATCH 14/46] Use require skip_ada_tests Tom Tromey
2022-12-17  0:07 ` [PATCH 15/46] Use require skip_go_tests Tom Tromey
2022-12-17  0:07 ` [PATCH 16/46] Use require skip_d_tests Tom Tromey
2022-12-17  0:07 ` [PATCH 17/46] Use require skip_ctf_tests Tom Tromey
2022-12-17  0:07 ` [PATCH 18/46] Use require skip_hw_watchpoint_tests Tom Tromey
2022-12-17  0:07 ` [PATCH 19/46] Use require skip_ifunc_tests Tom Tromey
2022-12-17  0:07 ` [PATCH 20/46] Use require skip_aarch64_sve_tests Tom Tromey
2022-12-19 10:50   ` Luis Machado
2022-12-17  0:07 ` [PATCH 21/46] Use require skip_btrace_tests Tom Tromey
2022-12-17  1:15   ` Enze Li
2022-12-18  0:48     ` Tom Tromey
2022-12-19  5:13       ` Enze Li
2022-12-19 14:44         ` Tom Tromey
2022-12-17  0:07 ` [PATCH 22/46] " Tom Tromey
2022-12-17  9:22   ` Metzger, Markus T
2022-12-18 17:46     ` Tom Tromey
2022-12-17  0:07 ` [PATCH 23/46] Use require skip_avx_* Tom Tromey
2022-12-17  0:07 ` [PATCH 24/46] Use require support_displaced_stepping Tom Tromey
2022-12-17  0:07 ` [PATCH 25/46] Use require is_aarch64_target Tom Tromey
2022-12-19 10:46   ` Luis Machado
2022-12-17  0:07 ` [PATCH 26/46] Use require is_aarch32_target Tom Tromey
2022-12-19 10:46   ` Luis Machado
2022-12-17  0:07 ` [PATCH 27/46] Use require is_amd64_regs_target Tom Tromey
2022-12-17  0:08 ` [PATCH 28/46] Use require is_elf_target Tom Tromey
2022-12-17  0:08 ` [PATCH 29/46] Use require can_single_step_to_signal_handler Tom Tromey
2022-12-17  0:08 ` [PATCH 30/46] Use require supports_get_siginfo_type Tom Tromey
2022-12-17  0:08 ` [PATCH 31/46] Use require support_go_compile Tom Tromey
2022-12-17  0:08 ` [PATCH 32/46] Use require use_gdb_stub Tom Tromey
2022-12-17  0:08 ` [PATCH 33/46] Use require can_spawn_for_attach Tom Tromey
2022-12-17  0:08 ` [PATCH 34/46] Use require isnative Tom Tromey
2022-12-17  0:08 ` [PATCH 35/46] Use require skip_gdbserver_tests Tom Tromey
2022-12-17  0:08 ` [PATCH 36/46] Use require skip_shlib_tests Tom Tromey
2022-12-17  0:08 ` [PATCH 37/46] Use require is_c_compiler_gcc Tom Tromey
2022-12-17  0:08 ` [PATCH 38/46] Use require gdb_debug_enabled Tom Tromey
2022-12-17  0:08 ` [PATCH 39/46] Use require gdb_skip_xml_test Tom Tromey
2022-12-17  0:08 ` [PATCH 40/46] Use require gdb_trace_common_supports_arch Tom Tromey
2022-12-17  0:08 ` [PATCH 41/46] Use require skip_perf_tests Tom Tromey
2022-12-17  0:08 ` [PATCH 42/46] Use require skip_opencl_tests Tom Tromey
2022-12-17  0:08 ` [PATCH 43/46] Use require target_can_use_run_cmd Tom Tromey
2022-12-17  0:08 ` [PATCH 44/46] Use require using_fission Tom Tromey
2022-12-17  0:08 ` [PATCH 45/46] Use require skip_debuginfod_tests Tom Tromey
2022-12-17  0:08 ` [PATCH 46/46] Use require gnat_runtime_has_debug_info Tom Tromey
2022-12-19 10:49 ` [PATCH 00/46] Rewrite "require" test procedure and use it more often Luis Machado
2023-01-06  2:45   ` Tom Tromey
2023-01-05  1:29 ` Kevin Buettner
2023-01-06  2:47   ` Tom Tromey
2023-01-07  0:07     ` Kevin Buettner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221217000818.3729389-1-tom@tromey.com \
    --to=tom@tromey.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).