testing/tcl_commands: test target create, cget, configure
Introduce basic testing of error-handling in target configuration related commands. The tests can be run via `make check` when JTAG `dummy` adapter is enabled. Change-Id: Id0f382046dd70007d8e696d82d2396a7ccab7a33 Signed-off-by: Evgeniy Naydanov <evgeniy.naydanov@syntacore.com> Reviewed-on: https://review.openocd.org/c/openocd/+/8644 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
This commit is contained in:
committed by
Antonio Borneo
parent
f42540cc90
commit
1b2a2b8185
80
testing/tcl_commands/utils.tcl
Normal file
80
testing/tcl_commands/utils.tcl
Normal file
@@ -0,0 +1,80 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
namespace eval testing_helpers {
|
||||
|
||||
proc test_failure message {
|
||||
echo $message
|
||||
shutdown error
|
||||
}
|
||||
|
||||
proc check_for_error {expctd_code msg_ptrn script} {
|
||||
set code [catch {uplevel $script} msg]
|
||||
set expanded_script [uplevel subst \"$script\"]
|
||||
if {!$code} {
|
||||
test_failure \
|
||||
"'$expanded_script' finished successfully. \
|
||||
Was expecting an error."
|
||||
}
|
||||
if {$expctd_code ne "" && $code != $expctd_code} {
|
||||
test_failure \
|
||||
"'$expanded_script' returned unexpected error code $code. \
|
||||
Was expecting $expctd_code. Error message: '$msg'"
|
||||
}
|
||||
if {$msg_ptrn ne "" && ![regexp -- $msg_ptrn $msg]} {
|
||||
test_failure \
|
||||
"'$expanded_script' returned unexpected error message '$msg'. \
|
||||
Was expecting '$msg_ptrn'. Error code: $code"
|
||||
}
|
||||
}
|
||||
|
||||
proc check_error_matches {pattern script} {
|
||||
tailcall check_for_error {} $pattern $script
|
||||
}
|
||||
|
||||
proc check_syntax_err script {
|
||||
tailcall check_for_error -601 {} $script
|
||||
}
|
||||
|
||||
proc check_matches {pattern script} {
|
||||
set result [uplevel $script]
|
||||
if {[regexp $pattern $result]} {return}
|
||||
test_failure \
|
||||
"'$script' produced unexpected result '$result'. \
|
||||
Was expecting '$pattern'."
|
||||
}
|
||||
|
||||
namespace export check_error_matches check_syntax_err check_matches
|
||||
}
|
||||
|
||||
namespace eval configure_testing {
|
||||
|
||||
variable target_idx 0
|
||||
|
||||
proc unique_tgt_name {} {
|
||||
variable target_idx
|
||||
incr target_idx
|
||||
return test_target$target_idx
|
||||
}
|
||||
|
||||
proc target_create_first_args {} {
|
||||
return "target create [unique_tgt_name] testee"
|
||||
}
|
||||
|
||||
proc simple_configure_options {} {
|
||||
return {
|
||||
-work-area-virt 0
|
||||
-work-area-phys 0
|
||||
-work-area-size 1
|
||||
-work-area-backup 0
|
||||
-endian little
|
||||
-coreid 1
|
||||
-chain-position tap.cpu
|
||||
-dbgbase 0
|
||||
-rtos hwthread
|
||||
-gdb-port 0
|
||||
-gdb-max-connections 1
|
||||
}
|
||||
}
|
||||
|
||||
namespace export target_create_first_args simple_configure_options
|
||||
}
|
||||
Reference in New Issue
Block a user