diff options
author | Doug Evans <dje@google.com> | 2015-07-24 15:28:46 -0700 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2015-07-24 15:28:46 -0700 |
commit | 35baa57fcfb50f7db24f7850ec9e34f4bc25b45c (patch) | |
tree | 39952a084573a578b8cacc79edf5b18b3cb98e0d /gdb/testsuite/lib | |
parent | 6ebea266fd0a7a56c90db3ab6237ff9f6c919747 (diff) | |
download | gdb-35baa57fcfb50f7db24f7850ec9e34f4bc25b45c.zip gdb-35baa57fcfb50f7db24f7850ec9e34f4bc25b45c.tar.gz gdb-35baa57fcfb50f7db24f7850ec9e34f4bc25b45c.tar.bz2 |
Add parallel build support for perf tests.
gdb/testsuite/ChangeLog:
* Makefile.in (check/%.exp): Pass directory for GDB_PARALLEL.
(workers/%.worker, build-perf): New rule.
(GDB_PERFTEST_MODE): New variable.
(check-perf): Use it.
(clean): Clean up gdb.perf parallel build subdirs.
* lib/build-piece.exp: New file.
* lib/cache.exp (gdb_do_cache): Include $GDB_PARALLEL in path name.
* lib/gdb.exp (standard_output_file): Include $GDB_PARALLEL in path
name.
(standard_temp_file): Ditto.
(GDB_PARALLEL handling): Make outputs,temp,cache directories as subdirs
of $GDB_PARALLEL.
Diffstat (limited to 'gdb/testsuite/lib')
-rw-r--r-- | gdb/testsuite/lib/build-piece.exp | 39 | ||||
-rw-r--r-- | gdb/testsuite/lib/cache.exp | 2 | ||||
-rw-r--r-- | gdb/testsuite/lib/gdb.exp | 9 |
3 files changed, 46 insertions, 4 deletions
diff --git a/gdb/testsuite/lib/build-piece.exp b/gdb/testsuite/lib/build-piece.exp new file mode 100644 index 0000000..a81530c --- /dev/null +++ b/gdb/testsuite/lib/build-piece.exp @@ -0,0 +1,39 @@ +# Copyright (C) 2014 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Utility to bootstrap building a piece of a performance test in a +# parallel build. +# See testsuite/Makefile.in:workers/%.worker. +# WORKER is set by the makefile and is +# "{program_name}/{program_name}-{worker_nr}". + +regexp "^\(.+\)/\(.+\)-\(\[0-9\]+\)$" $WORKER entire_match PROGRAM_NAME pname2 WORKER_NR + +if { ![info exists entire_match] || $entire_match != $WORKER } { + error "Bad value for WORKER: $WORKER" +} +if { $PROGRAM_NAME != $pname2 } { + error "Bad value for WORKER: $WORKER" +} + +# $subdir is set to "lib", because that is where this file lives, +# which is not what tests expect. +set subdir "gdb.perf" + +# $gdb_test_file_name is set to this file, build-piece, which is not what +# tests expect. +set gdb_test_file_name $PROGRAM_NAME + +source $srcdir/$subdir/${gdb_test_file_name}.exp diff --git a/gdb/testsuite/lib/cache.exp b/gdb/testsuite/lib/cache.exp index 8df04b9..9565b39 100644 --- a/gdb/testsuite/lib/cache.exp +++ b/gdb/testsuite/lib/cache.exp @@ -35,7 +35,7 @@ proc gdb_do_cache {name} { } if {[info exists GDB_PARALLEL]} { - set cache_filename [file join $objdir cache $cache_name] + set cache_filename [file join $objdir $GDB_PARALLEL cache $cache_name] if {[file exists $cache_filename]} { set fd [open $cache_filename] set gdb_data_cache($cache_name) [read -nonewline $fd] diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index ffc63a5..fa0ab09 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -3961,7 +3961,7 @@ proc standard_output_file {basename} { global objdir subdir gdb_test_file_name GDB_PARALLEL if {[info exists GDB_PARALLEL]} { - set dir [file join $objdir outputs $subdir $gdb_test_file_name] + set dir [file join $objdir $GDB_PARALLEL outputs $subdir $gdb_test_file_name] file mkdir $dir return [file join $dir $basename] } else { @@ -3975,7 +3975,7 @@ proc standard_temp_file {basename} { global objdir GDB_PARALLEL if {[info exists GDB_PARALLEL]} { - return [file join $objdir temp $basename] + return [file join $objdir $GDB_PARALLEL temp $basename] } else { return $basename } @@ -5091,7 +5091,10 @@ if {[info exists GDB_PARALLEL]} { if {[is_remote host]} { unset GDB_PARALLEL } else { - file mkdir outputs temp cache + file mkdir \ + [file join $GDB_PARALLEL outputs] \ + [file join $GDB_PARALLEL temp] \ + [file join $GDB_PARALLEL cache] } } |