[gdb/testsuite] Don't abort testrun for invalid command in test-case
Say we add a call to foobar at the end of a test-case, and run the test-suite. We'll run into a dejagnu error: ... ERROR: (DejaGnu) proc "foobar" does not exist. ... and the test-suite run is aborted. It's reasonable that the test-case is aborted, but it's not reasonable that the testsuite run is aborted. Problems in one test-case should not leak into other test-cases, and they generally don't. The exception is the "invalid command name" problem due to an override of ::unknown in dejagnu's framework.exp. Fix this by reverting dejagnu's ::unknown override for the duration of each test-case, using the gdb_init/gdb_finish hooks. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2020-06-12 Tom de Vries <tdevries@suse.de> PR testsuite/26110 * lib/gdb.exp (gdb_init): Revert dejagnu's override of ::unknown. (gdb_finish): Reinstall dejagnu's override of ::unknown.
This commit is contained in:
parent
453c733fcf
commit
26783bce15
|
@ -1,3 +1,9 @@
|
||||||
|
2020-06-12 Tom de Vries <tdevries@suse.de>
|
||||||
|
|
||||||
|
PR testsuite/26110
|
||||||
|
* lib/gdb.exp (gdb_init): Revert dejagnu's override of ::unknown.
|
||||||
|
(gdb_finish): Reinstall dejagnu's override of ::unknown.
|
||||||
|
|
||||||
2020-06-11 Tom Tromey <tom@tromey.com>
|
2020-06-11 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
PR gdb/18318:
|
PR gdb/18318:
|
||||||
|
|
|
@ -5193,7 +5193,19 @@ proc gdb_init { test_file_name } {
|
||||||
global gdb_instances
|
global gdb_instances
|
||||||
set gdb_instances 0
|
set gdb_instances 0
|
||||||
|
|
||||||
return [default_gdb_init $test_file_name]
|
set res [default_gdb_init $test_file_name]
|
||||||
|
|
||||||
|
# Dejagnu overrides proc unknown. The dejagnu version may trigger in a
|
||||||
|
# test-case but abort the entire test run. To fix this, we install a
|
||||||
|
# local version here, which reverts dejagnu's override, and restore
|
||||||
|
# dejagnu's version in gdb_finish.
|
||||||
|
rename ::unknown ::dejagnu_unknown
|
||||||
|
proc unknown { args } {
|
||||||
|
# Dejagnu saves the original version in ::tcl_unknown, use it.
|
||||||
|
return [uplevel 1 ::tcl_unknown $args]
|
||||||
|
}
|
||||||
|
|
||||||
|
return $res
|
||||||
}
|
}
|
||||||
|
|
||||||
proc gdb_finish { } {
|
proc gdb_finish { } {
|
||||||
|
@ -5201,6 +5213,10 @@ proc gdb_finish { } {
|
||||||
global gdb_prompt
|
global gdb_prompt
|
||||||
global cleanfiles
|
global cleanfiles
|
||||||
|
|
||||||
|
# Restore dejagnu's version of proc unknown.
|
||||||
|
rename ::unknown ""
|
||||||
|
rename ::dejagnu_unknown ::unknown
|
||||||
|
|
||||||
# Exit first, so that the files are no longer in use.
|
# Exit first, so that the files are no longer in use.
|
||||||
gdb_exit
|
gdb_exit
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue