diff options
author | Doug Evans <dje@google.com> | 2015-07-24 15:38:21 -0700 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2015-07-24 15:38:21 -0700 |
commit | 63738bfdb96f654322794384993a6f5d8608aab9 (patch) | |
tree | d9b30758026e9f194828d32dec66c00f5a467743 /gdb/testsuite/lib | |
parent | 7b606f95c9bcfa1b569fe5d33f7d2a73d39322f4 (diff) | |
download | gdb-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.exp | 56 |
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 } |