forked from Imagelibrary/binutils-gdb
This commit brings all the changes made by running gdb/copyright.py as per GDB's Start of New Year Procedure. For the avoidance of doubt, all changes in this commits were performed by the script.
103 lines
3.0 KiB
Plaintext
103 lines
3.0 KiB
Plaintext
# Copyright 2016-2022 Free Software Foundation, Inc.
|
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
# Do not run if gdb debug is enabled as maintenance output will be
|
|
# redirected to the log files.
|
|
if [gdb_debug_enabled] {
|
|
untested "debug is enabled"
|
|
return 0
|
|
}
|
|
|
|
load_lib completion-support.exp
|
|
|
|
set do_xml_test [expr ![gdb_skip_xml_test]]
|
|
|
|
standard_testfile
|
|
|
|
if {[build_executable "failed to prepare" $testfile $srcfile debug]} {
|
|
return -1
|
|
}
|
|
|
|
proc run_selftests { binfile } {
|
|
global decimal gdb_prompt
|
|
|
|
if { $binfile == "" } {
|
|
gdb_exit
|
|
gdb_start
|
|
} else {
|
|
clean_restart ${binfile}
|
|
}
|
|
|
|
set enabled 1
|
|
set test "maintenance selftest"
|
|
gdb_test_multiple $test $test {
|
|
-re ".*Running selftest \[^\n\r\]+\." {
|
|
# The selftests can take some time to complete. To prevent
|
|
# timeout spot the 'Running ...' lines going past, so long as
|
|
# these are produced quickly enough then the overall test will
|
|
# not timeout.
|
|
exp_continue
|
|
}
|
|
-re "Ran ($decimal) unit tests, ($decimal) failed\r\n$gdb_prompt $" {
|
|
set num_ran $expect_out(1,string)
|
|
set num_failed $expect_out(2,string)
|
|
gdb_assert "$num_ran > 0" "$test, ran some tests"
|
|
gdb_assert "$num_failed == 0" "$test, failed none"
|
|
}
|
|
-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
|
|
|
|
if { $self_tests_enabled } {
|
|
test_gdb_complete_tab_multiple "maintenance selftest copy" "_" \
|
|
{copy_bitwise copy_integer_to_size}
|
|
test_gdb_complete_tab_unique "maintenance selftest copy_bit" \
|
|
"maintenance selftest copy_bitwise" " "
|
|
} else {
|
|
test_gdb_complete_tab_none "maintenance selftest copy_"
|
|
test_gdb_complete_tab_none "maintenance selftest copy_bit"
|
|
}
|
|
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" {
|
|
set self_tests_enabled [run_selftests ""]
|
|
}
|
|
|
|
with_test_prefix "executable loaded" {
|
|
run_selftests ${binfile}
|
|
}
|
|
|
|
test_completion
|
|
|
|
if { ![is_remote host] && $do_xml_test } {
|
|
gdb_test "maintenance check xml-descriptions ${srcdir}/../features" \
|
|
"Tested $decimal XML files, 0 failed" \
|
|
"maintenance check xml-descriptions \${srcdir}/../features"
|
|
}
|