aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/lib
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>2015-07-24 15:38:21 -0700
committerDoug Evans <dje@google.com>2015-07-24 15:38:21 -0700
commit63738bfdb96f654322794384993a6f5d8608aab9 (patch)
treed9b30758026e9f194828d32dec66c00f5a467743 /gdb/testsuite/lib
parent7b606f95c9bcfa1b569fe5d33f7d2a73d39322f4 (diff)
downloadgdb-63738bfdb96f654322794384993a6f5d8608aab9.zip
gdb-63738bfdb96f654322794384993a6f5d8608aab9.tar.gz
gdb-63738bfdb96f654322794384993a6f5d8608aab9.tar.bz2
PerfTest::assemble functions return results.
gdb/testsuite/ChangeLog: * lib/perftest.exp (PerfTest::compile): Unconditionally call body. (PerfTest::startup): New function. (PerfTest::run): Return result of calling body. (PerfTest::assemble): Rewrite. * gdb.perf/backtrace.exp (PerfTest::assemble): Update function result. * gdb.perf/disassemble.exp (PerfTest::assemble): Ditto. * gdb.perf/single-step.exp (PerfTest::assemble): Ditto. * gdb.perf/skip-prologue.exp (PerfTest::assemble): Ditto. * gdb.perf/solib.exp (PerfTest::assemble): Ditto.
Diffstat (limited to 'gdb/testsuite/lib')
-rw-r--r--gdb/testsuite/lib/perftest.exp56
1 files changed, 37 insertions, 19 deletions
diff --git a/gdb/testsuite/lib/perftest.exp b/gdb/testsuite/lib/perftest.exp
index 7c334ac..e5398e3 100644
--- a/gdb/testsuite/lib/perftest.exp
+++ b/gdb/testsuite/lib/perftest.exp
@@ -42,14 +42,13 @@ namespace eval PerfTest {
# actual compilation. Return zero if compilation is successful,
# otherwise return non-zero.
proc compile {body} {
- global GDB_PERFTEST_MODE
-
- if { [info exists GDB_PERFTEST_MODE]
- && [string compare $GDB_PERFTEST_MODE "run"] } {
- return [uplevel 2 $body]
- }
+ return [uplevel 2 $body]
+ }
- return 0
+ # Run the startup code. Return zero if startup is successful,
+ # otherwise return non-zero.
+ proc startup {body} {
+ return [uplevel 2 $body]
}
# Start up GDB.
@@ -57,7 +56,8 @@ namespace eval PerfTest {
uplevel 2 $body
}
- # Run the performance test.
+ # Run the performance test. Return zero if the run is successful,
+ # otherwise return non-zero.
proc run {body} {
global timeout
global GDB_PERFTEST_TIMEOUT
@@ -68,36 +68,56 @@ namespace eval PerfTest {
} else {
set timeout 3000
}
- uplevel 2 $body
+ set result [uplevel 2 $body]
set timeout $oldtimeout
+ return $result
}
# The top-level interface to PerfTest.
# COMPILE is the tcl code to generate and compile source files.
- # Return zero if compilation is successful, otherwise return
- # non-zero.
# STARTUP is the tcl code to start up GDB.
# RUN is the tcl code to drive GDB to do some operations.
+ # Each of COMPILE, STARTUP, and RUN return zero if successful, and
+ # non-zero if there's a failure.
+
proc assemble {compile startup run} {
global GDB_PERFTEST_MODE
- if { [eval compile {$compile}] } {
- untested "Could not compile source files."
+ if ![info exists GDB_PERFTEST_MODE] {
return
}
+ if { [string compare $GDB_PERFTEST_MODE "run"] != 0 } {
+ if { [eval compile {$compile}] } {
+ untested "Could not compile source files."
+ return
+ }
+ }
+
# Don't execute the run if GDB_PERFTEST_MODE=compile.
- if { [info exists GDB_PERFTEST_MODE]
- && [string compare $GDB_PERFTEST_MODE "compile"] == 0} {
+ if { [string compare $GDB_PERFTEST_MODE "compile"] == 0} {
+ return
+ }
+
+ verbose -log "PerfTest::assemble, startup ..."
+
+ if [eval startup {$startup}] {
+ fail "startup"
return
}
- eval $startup
+ verbose -log "PerfTest::assemble, done startup"
_setup_perftest
- eval run {$run}
+ verbose -log "PerfTest::assemble, run ..."
+
+ if [eval run {$run}] {
+ fail "run"
+ }
+
+ verbose -log "PerfTest::assemble, run complete."
_teardown_perftest
}
@@ -109,11 +129,9 @@ proc skip_perf_tests { } {
global GDB_PERFTEST_MODE
if [info exists GDB_PERFTEST_MODE] {
-
if { "$GDB_PERFTEST_MODE" != "compile"
&& "$GDB_PERFTEST_MODE" != "run"
&& "$GDB_PERFTEST_MODE" != "both" } {
- # GDB_PERFTEST_MODE=compile|run|both is allowed.
error "Unknown value of GDB_PERFTEST_MODE."
return 1
}