diff options
author | Tom de Vries <tdevries@suse.de> | 2021-10-29 14:11:08 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2021-10-29 14:11:08 +0200 |
commit | b88e456f7e3e6d8c354da57d3e77a98575070ee8 (patch) | |
tree | ae039d8d59040b4948105511f21e612d143c3ee4 | |
parent | 91b7c7e522802371f07cf614e5e5b24c1911a6d8 (diff) | |
download | gdb-b88e456f7e3e6d8c354da57d3e77a98575070ee8.zip gdb-b88e456f7e3e6d8c354da57d3e77a98575070ee8.tar.gz gdb-b88e456f7e3e6d8c354da57d3e77a98575070ee8.tar.bz2 |
[gdb/build] Fix build with --disable-unit-tests
A build with --disable-unit-tests currently run into:
...
ld: maint.o: in function \
`maintenance_selftest_completer(cmd_list_element*, completion_tracker&,
char const*, char const*)':
src/gdb/maint.c:1183: undefined reference to \
`selftests::for_each_selftest(
gdb::function_view<
void (std::__cxx11::basic_string<char,std::char_traits<char>,
std::allocator<char> > const&)>)'
...
Fix this by guarding the call to selftests::for_each_selftest in
maintenance_selftest_completer with GDB_SELF_TEST, such that the "-verbose"
completion still works.
Rebuild on x86_64-linux and ran gdb.gdb/unittest.exp.
-rw-r--r-- | gdb/maint.c | 2 | ||||
-rw-r--r-- | gdb/testsuite/gdb.gdb/unittest.exp | 21 |
2 files changed, 19 insertions, 4 deletions
diff --git a/gdb/maint.c b/gdb/maint.c index 85fa18c..bcc71aa 100644 --- a/gdb/maint.c +++ b/gdb/maint.c @@ -1180,11 +1180,13 @@ maintenance_selftest_completer (cmd_list_element *cmd, (tracker, &text, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_ERROR, grp)) return; +#if GDB_SELF_TEST selftests::for_each_selftest ([&tracker, text] (const std::string &name) { if (startswith (name.c_str (), text)) tracker.add_completion (make_unique_xstrdup (name.c_str ())); }); +#endif } static void diff --git a/gdb/testsuite/gdb.gdb/unittest.exp b/gdb/testsuite/gdb.gdb/unittest.exp index 0ddd206..bcb4bbd 100644 --- a/gdb/testsuite/gdb.gdb/unittest.exp +++ b/gdb/testsuite/gdb.gdb/unittest.exp @@ -40,6 +40,7 @@ proc run_selftests { binfile } { clean_restart ${binfile} } + set enabled 1 set test "maintenance selftest" gdb_test_multiple $test $test { -re ".*Running selftest \[^\n\r\]+\." { @@ -57,23 +58,35 @@ proc run_selftests { binfile } { } -re "Selftests have been disabled for this build.\r\n$gdb_prompt $" { unsupported $test + set enabled 0 } } + + return $enabled } # Test completion of command "maintenance selftest". proc_with_prefix test_completion {} { + global self_tests_enabled + clean_restart - test_gdb_complete_tab_multiple "maintenance selftest string_v" "" \ - {string_vappendf string_view string_vprintf} - test_gdb_complete_tab_unique "maintenance selftest string_vie" "maintenance selftest string_view" " " + + if { $self_tests_enabled } { + test_gdb_complete_tab_multiple "maintenance selftest string_v" "" \ + {string_vappendf string_view string_vprintf} + test_gdb_complete_tab_unique "maintenance selftest string_vie" \ + "maintenance selftest string_view" " " + } else { + test_gdb_complete_tab_none "maintenance selftest string_v" + test_gdb_complete_tab_none "maintenance selftest string_vie" + } test_gdb_complete_tab_unique "maintenance selftest -ver" "maintenance selftest -verbose" " " test_gdb_complete_tab_none "maintenance selftest name_that_does_not_exist" } with_test_prefix "no executable loaded" { - run_selftests "" + set self_tests_enabled [run_selftests ""] } with_test_prefix "executable loaded" { |