testsuite: Prevent writes to prms_id and bug_id.
gdb/testsuite/ChangeLog: * lib/gdb.exp (banned_variables): New variable/constant. (gdb_init): Add write trace on variables listed in banned_variables. (gdb_finish): Remove write traces on variables listed in banned_variables.
This commit is contained in:
parent
77c015860d
commit
47050449b9
2 changed files with 27 additions and 0 deletions
|
@ -1,3 +1,10 @@
|
|||
2010-05-17 Joel Brobecker <brobecker@adacore.com>
|
||||
|
||||
* lib/gdb.exp (banned_variables): New variable/constant.
|
||||
(gdb_init): Add write trace on variables listed in banned_variables.
|
||||
(gdb_finish): Remove write traces on variables listed in
|
||||
banned_variables.
|
||||
|
||||
2010-05-17 Joel Brobecker <brobecker@adacore.com>
|
||||
|
||||
* gdb.base/gdb11530.exp: Delete setting of prms_id and bug_id.
|
||||
|
|
|
@ -2480,6 +2480,11 @@ if ![info exists gdb_test_timeout] {
|
|||
set gdb_test_timeout $timeout
|
||||
}
|
||||
|
||||
# A list of global variables that GDB testcases should not use.
|
||||
# We try to prevent their use by monitoring write accesses and raising
|
||||
# an error when that happens.
|
||||
set banned_variables { bug_id prms_id }
|
||||
|
||||
proc gdb_init { args } {
|
||||
# Reset the timeout value to the default. This way, any testcase
|
||||
# that changes the timeout value without resetting it cannot affect
|
||||
|
@ -2488,6 +2493,13 @@ proc gdb_init { args } {
|
|||
global timeout
|
||||
set timeout $gdb_test_timeout
|
||||
|
||||
# Block writes to all banned variables...
|
||||
global banned_variables
|
||||
foreach banned_var $banned_variables {
|
||||
global "$banned_var"
|
||||
trace variable "$banned_var" w error
|
||||
}
|
||||
|
||||
return [eval default_gdb_init $args];
|
||||
}
|
||||
|
||||
|
@ -2501,6 +2513,14 @@ proc gdb_finish { } {
|
|||
eval remote_file target delete $cleanfiles
|
||||
set cleanfiles {}
|
||||
}
|
||||
|
||||
# Unblock write access to the banned variables. Dejagnu typically
|
||||
# resets some of them between testcases.
|
||||
global banned_variables
|
||||
foreach banned_var $banned_variables {
|
||||
global "$banned_var"
|
||||
trace remove variable "$banned_var" write error
|
||||
}
|
||||
}
|
||||
|
||||
global debug_format
|
||||
|
|
Loading…
Add table
Reference in a new issue