mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-03 04:12:10 +08:00
[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.
This commit is contained in:
parent
91b7c7e522
commit
b88e456f7e
@ -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
|
||||
|
@ -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" {
|
||||
|
Loading…
Reference in New Issue
Block a user