aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.perf
AgeCommit message (Collapse)AuthorFilesLines
36 hoursUpdate copyright dates to include 2025Tom Tromey55-55/+55
This updates the copyright headers to include 2025. I did this by running gdb/copyright.py and then manually modifying a few files as noted by the script. Approved-By: Eli Zaretskii <eliz@gnu.org>
2024-04-02Run isortTom Tromey9-28/+17
This patch is the result of running 'isort .' in the gdb directory. Approved-By: Simon Marchi <simon.marchi@efficios.com>
2024-01-12Update copyright year range in header of all files managed by GDBAndrew Burgess55-55/+55
This commit is the result of the following actions: - Running gdb/copyright.py to update all of the copyright headers to include 2024, - Manually updating a few files the copyright.py script told me to update, these files had copyright headers embedded within the file, - Regenerating gdbsupport/Makefile.in to refresh it's copyright date, - Using grep to find other files that still mentioned 2023. If these files were updated last year from 2022 to 2023 then I've updated them this year to 2024. I'm sure I've probably missed some dates. Feel free to fix them up as you spot them.
2023-06-05[gdb] Fix more typosTom de Vries1-1/+1
Fix some more typos: - distinquish -> distinguish - actualy -> actually - singe -> single - frash -> frame - chid -> child - dissassembler -> disassembler - uninitalized -> uninitialized - precontidion -> precondition - regsiters -> registers - marge -> merge - sate -> state - garanteed -> guaranteed - explictly -> explicitly - prefices (nonstandard plural) -> prefixes - bondary -> boundary - formated -> formatted - ithe -> the - arrav -> array - coresponding -> corresponding - owend -> owned - fials -> fails - diasm -> disasm - ture -> true - tpye -> type There's one code change, the name of macro SIG_CODE_BONDARY_FAULT changed to SIG_CODE_BOUNDARY_FAULT. Tested on x86_64-linux.
2023-02-27gdb: reformat Python files with black 23.1.0Simon Marchi1-1/+0
Change-Id: Ie8ec8870a16d71c5858f5d08958309d23c318302 Reviewed-By: Tom Tromey <tom@tromey.com> Reviewed-By: Andrew Burgess <aburgess@redhat.com>
2023-01-26Use clean_restart in gdb.perfTom Tromey1-4/+1
Change gdb.perf to use clean_restart more consistently.
2023-01-13Rename to allow_perf_testsTom Tromey21-21/+21
This changes skip_perf_tests to invert the sense, and renames it to allow_perf_tests.
2023-01-13Use require !skip_perf_testsTom Tromey21-63/+21
This changes some tests to use "require !skip_perf_tests".
2023-01-01Update copyright year range in header of all files managed by GDBJoel Brobecker55-55/+55
This commit is the result of running the gdb/copyright.py script, which automated the update of the copyright year range for all source files managed by the GDB project to be updated to include year 2023.
2022-01-01Automatic Copyright Year update after running gdb/copyright.pyJoel Brobecker55-55/+55
This commit brings all the changes made by running gdb/copyright.py as per GDB's Start of New Year Procedure. For the avoidance of doubt, all changes in this commits were performed by the script.
2021-09-30gdb/testsuite: make runto_main not pass no-message to runtoSimon Marchi6-6/+0
As follow-up to this discussion: https://sourceware.org/pipermail/gdb-patches/2020-August/171385.html ... make runto_main not pass no-message to runto. This means that if we fail to run to main, for some reason, we'll emit a FAIL. This is the behavior we want the majority of (if not all) the time. Without this, we rely on tests logging a failure if runto_main fails, otherwise. They do so in a very inconsisteny mannet, sometimes using "fail", "unsupported" or "untested". The messages also vary widly. This patch removes all these messages as well. Also, remove a few "fail" where we call runto (and not runto_main). by default (without an explicit no-message argument), runto prints a failure already. In two places, gdb.multi/multi-re-run.exp and gdb.python/py-pp-registration.exp, remove "message" passed to runto. This removes a few PASSes that we don't care about (but FAILs will still be printed if we fail to run to where we want to). This aligns their behavior with the rest of the testsuite. Change-Id: Ib763c98c5f4fb6898886b635210d7c34bd4b9023
2021-09-24Fix 'FAIL: gdb.perf/disassemble.exp: python Disassemble().run()'Pedro Alves1-3/+4
We currently have one FAIL while running "make check-perf": PerfTest::assemble, run ... python Disassemble().run() Traceback (most recent call last): File "<string>", line 1, in <module> File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/perftest.py", line 64, in run self.warm_up() File "<string>", line 25, in warm_up gdb.error: No symbol "ada_evaluate_subexp" in current context. Error while executing Python code. (gdb) FAIL: gdb.perf/disassemble.exp: python Disassemble().run() ... The gdb.perf/disassemble.exp testcase debugs GDB with itself, runs to main, and then disassembles a few GDB functions. The problem is that most(!) functions it is trying to disassemble are now gone... This commit fixes the issue by simply picking some other functions to disassemble. It would perhaps be better to come up with some test program to disassemble, one that would stay the same throughout the years, instead of disassembling GDB itself. I don't know why that wasn't done to begin with. I'll have to leave that for another rainy day, though. gdb/testsuite/ yyyy-mm-dd Pedro Alves <pedro@palves.net> * gdb.perf/disassemble.py (Disassemble::warm_up): Disassemble evaluate_subexp_do_call instead of ada_evaluate_subexp. (Disassemble::warm_up): Disassemble "captured_main", "run_inferior_call" and "update_global_location_list" instead of "evaluate_subexp_standard" and "c_parse_internal". Change-Id: I89d1cca89ce2e495dea5096e439685739cc0d3df
2021-09-24Fix all DUPLICATE problems in testsuite/gdb.perf/Pedro Alves1-3/+6
Currently running "make check-perf" shows: ... # of duplicate test names 6008 ... All those duplicate test names come from gdb.perf/skip-command.exp. This commit fixes them, using with_test_prefix. gdb/testsuite/ yyyy-mm-dd Pedro Alves <pedro@palves.net> * gdb.perf/skip-command.exp (run_skip_bench): Wrap each for iteration in with_test_prefix. Change-Id: I38501cf70bc6b60306ee7228996ee7bcd858dc1b
2021-07-06Update gdb performance testsuite to be compatible with Python 3.8Pedro Alves2-16/+40
Running "make check-perf" on a system with Python 3.8 (e.g., Ubuntu 20.04) runs into this Python problem: Traceback (most recent call last): File "<string>", line 1, in <module> File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/perftest.py", line 65, in run self.execute_test() File "<string>", line 35, in execute_test File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/measure.py", line 45, in measure m.start(id) File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/measure.py", line 102, in start self.start_time = time.clock() AttributeError: module 'time' has no attribute 'clock' Error while executing Python code. (gdb) FAIL: gdb.perf/single-step.exp: python SingleStep(1000).run() ... many times over. The problem is that the testsuite is using time.clock(), deprecated in Python 3.3 and finaly removed in Python 3.8. The guidelines say to use time.perf_counter() or time.process_time() instead depending on requirements. Looking at the current description of those functions, at: https://docs.python.org/3.10/library/time.html we have: time.perf_counter() -> float Return the value (in fractional seconds) of a performance counter, i.e. a clock with the highest available resolution to measure a short duration. It does include time elapsed during sleep and is system-wide. (...) time.process_time() -> float Return the value (in fractional seconds) of the sum of the system and user CPU time of the current process. It does not include time elapsed during sleep. It is process-wide by definition. (...) I'm thinking that it's just best to record both instead of picking one. So this patch replaces the MeasurementCpuTime measurement class with two new classes -- MeasurementPerfCounter and MeasurementProcessTime. Correspondingly, this changes the reports in testsuite/perftest.log -- we have two new "perf_counter" and "process_time" measurements and the "cpu_time" measurement is gone. I don't suppose breaking backward compatibility here is a big problem. I suspect no one is really tracking long term performance using the perf testsuite today. And if they are, it shouldn't be hard to adjust. For backward compatility, with Python < 3.3, both perf_counter and process_time use the old time.clock. gdb/testsuite/ChangeLog: yyyy-mm-dd Qingchuan Shi <qingchuan.shi@amd.com> Pedro Alves <pedro@palves.net> * gdb.perf/lib/perftest/perftest.py: Import sys. (time.perf_counter, time.process_time): Map to time.clock on Python < 3.3. (MeasurementCpuTime): Delete, replaced by... (MeasurementPerfCounter, MeasurementProcessTime): .. these two new classes. * gdb.perf/lib/perftest/perftest.py: Import MeasurementPerfCounter and MeasurementProcessTime instead of MeasurementCpuTime. (TestCaseWithBasicMeasurements): Use MeasurementPerfCounter and MeasurementProcessTime instead of MeasurementCpuTime. Co-authored-by: Qingchuan Shi <qingchuan.shi@amd.com> Change-Id: Ia850c05d5ce57d2dada70ba5b0061f566444aa2b
2021-07-06gdb.perf/: FAIL on Python errors, avoid "ERROR: internal buffer is full"Pedro Alves7-17/+7
Currently, if you run make check-perf on a system with Python 3.8, tests seen to PASS, but they actually test a lot less than intended, due to: PerfTest::assemble, run ... python BackTrace(64).run() Traceback (most recent call last): File "<string>", line 1, in <module> File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/perftest.py", line 65, in run self.execute_test() File "<string>", line 49, in execute_test File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/measure.py", line 45, in measure m.start(id) File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/measure.py", line 102, in start self.start_time = time.clock() AttributeError: module 'time' has no attribute 'clock' Error while executing Python code. (gdb) PASS: gdb.perf/backtrace.exp: python BackTrace(64).run() And then, after fixing the above Python compatibility issues (which will be a separate patch), I get 86 instances of overflowing expect's buffer, like: ERROR: internal buffer is full. UNRESOLVED: gdb.perf/single-step.exp: python SingleStep(1000).run() This patch fixes both problems by adding & using a gdb_test_python_run routine that: - checks for Python errors - consumes output line by line gdb/testsuite/ChangeLog: yyyy-mm-dd Pedro Alves <pedro@palves.net> * gdb.perf/backtrace.exp: Use gdb_test_python_run. * gdb.perf/disassemble.exp: Use gdb_test_python_run. * gdb.perf/single-step.exp: Use gdb_test_python_run. * gdb.perf/skip-command.exp: Use gdb_test_python_run. * gdb.perf/skip-prologue.exp: Use gdb_test_python_run. * gdb.perf/solib.exp: Use gdb_test_python_run. * gdb.perf/template-breakpoints.exp: Use gdb_test_python_run. * lib/perftest.exp (gdb_test_python_run): New. Change-Id: I007af36f164b3f4cda41033616eaaa4e268dfd2f
2021-05-07gdb: re-format Python files using black 21.4b0Simon Marchi18-64/+90
Re-format all Python files using black [1] version 21.4b0. The goal is that from now on, we keep all Python files formatted using black. And that we never have to discuss formatting during review (for these files at least) ever again. One change is needed in gdb.python/py-prettyprint.exp, because it matches the string representation of an exception, which shows source code. So the change in formatting must be replicated in the expected regexp. To document our usage of black I plan on adding this to the "GDB Python Coding Standards" wiki page [2]: --8<-- All Python source files under the `gdb/` directory must be formatted using black version 21.4b0. This specific version can be installed using: $ pip3 install 'black == 21.4b0' All you need to do to re-format files is run `black <file/directory>`, and black will re-format any Python file it finds in there. It runs quite fast, so the simplest is to do: $ black gdb/ from the top-level. If you notice that black produces changes unrelated to your patch, it's probably because someone forgot to run it before you. In this case, don't include unrelated hunks in your patch. Push an obvious patch fixing the formatting and rebase your work on top of that. -->8-- Once this is merged, I plan on setting a up an `ignoreRevsFile` config so that git-blame ignores this commit, as described here: https://github.com/psf/black#migrating-your-code-style-without-ruining-git-blame I also plan on working on a git commit hook (checked in the repo) to automatically check the formatting of the Python files on commit. [1] https://pypi.org/project/black/ [2] https://sourceware.org/gdb/wiki/Internals%20GDB-Python-Coding-Standards gdb/ChangeLog: * Re-format all Python files using black. gdb/testsuite/ChangeLog: * Re-format all Python files using black. * gdb.python/py-prettyprint.exp (run_lang_tests): Adjust. Change-Id: I28588a22c2406afd6bc2703774ddfff47cd61919
2021-01-01Update copyright year range in all GDB filesJoel Brobecker55-55/+55
This commits the result of running gdb/copyright.py as per our Start of New Year procedure... gdb/ChangeLog Update copyright year range in copyright header of all GDB files.
2020-12-13gdb: introduce new 'maint flush ' prefix commandAndrew Burgess3-3/+3
We currently have two flushing commands 'flushregs' and 'maint flush-symbol-cache'. I'm planning to add at least one more so I thought it might be nice if we bundled these together into one place. And so I created the 'maint flush ' command prefix. Currently there are two commands: (gdb) maint flush symbol-cache (gdb) maint flush register-cache Unfortunately, even though both of the existing flush commands are maintenance commands, I don't know how keen we about deleting existing commands for fear of breaking things in the wild. So, both of the existing flush commands 'maint flush-symbol-cache' and 'flushregs' are still around as deprecated aliases to the new commands. I've updated the testsuite to use the new command syntax, and updated the documentation too. gdb/ChangeLog: * NEWS: Mention new commands, and that the old commands are now deprecated. * cli/cli-cmds.c (maintenanceflushlist): Define. * cli/cli-cmds.h (maintenanceflushlist): Declare. * maint.c (_initialize_maint_cmds): Initialise maintenanceflushlist. * regcache.c: Add 'cli/cli-cmds.h' include. (reg_flush_command): Add header comment. (_initialize_regcache): Create new 'maint flush register-cache' command, make 'flushregs' an alias. * symtab.c: Add 'cli/cli-cmds.h' include. (_initialize_symtab): Create new 'maint flush symbol-cache' command, make old command an alias. gdb/doc/ChangeLog: * gdb.texinfo (Symbols): Document 'maint flush symbol-cache'. (Maintenance Commands): Document 'maint flush register-cache'. gdb/testsuite/ChangeLog: * gdb.base/c-linkage-name.exp: Update to use new 'maint flush ...' commands. * gdb.base/killed-outside.exp: Likewise. * gdb.opt/inline-bt.exp: Likewise. * gdb.perf/gmonster-null-lookup.py: Likewise. * gdb.perf/gmonster-print-cerr.py: Likewise. * gdb.perf/gmonster-ptype-string.py: Likewise. * gdb.python/py-unwind.exp: Likewise.
2020-01-01Update copyright year range in all GDB files.Joel Brobecker55-55/+55
gdb/ChangeLog: Update copyright year range in all GDB files.
2019-01-01Update copyright year range in all GDB files.Joel Brobecker55-55/+55
This commit applies all changes made after running the gdb/copyright.py script. Note that one file was flagged by the script, due to an invalid copyright header (gdb/unittests/basic_string_view/element_access/char/empty.cc). As the file was copied from GCC's libstdc++-v3 testsuite, this commit leaves this file untouched for the time being; a patch to fix the header was sent to gcc-patches first. gdb/ChangeLog: Update copyright year range in all GDB files.
2018-03-20Replace the linear search in find_pc_sect_line with a binary search.Stephen Roberts3-0/+195
This patch addresses slowness when setting breakpoints, especially in heavily templatized code. Profiling showed that find_pc_sect_line in symtab.c was the performance bottleneck. The original logic performed a linear search over ordered data. This patch uses a binary search, as suggested by comments around the function. There are no behavioural changes, but gdb is now faster at setting breakpoints in template code. Tested using on make check on an x86 target. The optimisation speeds up the included template-breakpoints.py performance test by a factor of 7 on my machine. ChangeLog: 2018-03-20 Stephen Roberts <stephen.roberts@arm.com> * gdb/symtab.c (find_pc_sect_line): now uses binary search. gdb/testsuite/ * gdb.perf/template-breakpoints.cc: New file. * gdb.perf/template-breakpoints.exp: New file. * gdb.perf/template-breakpoints.py: New file.
2018-01-02Update copyright year range in all GDB filesJoel Brobecker52-52/+52
gdb/ChangeLog: Update copyright year range in all GDB files
2017-01-01update copyright year range in GDB filesJoel Brobecker52-52/+52
This applies the second part of GDB's End of Year Procedure, which updates the copyright year range in all of GDB's files. gdb/ChangeLog: Update copyright year range in all GDB files.
2016-12-09Compile gdb.perf/skip-prologue.c with and without debug infoYao Qi1-1/+8
gdb.perf/skip-prologue.exp is intended to measure the performance of skipping prologue with prologue analysis by setting breakpoints. However, if program is compiled with debug info, GDB is smart to skip prologue by line table from debug info, so prologue analysis is not exercised at all. This patch adds a parameter COMPILE to specify compiling with debug information, otherwise, it is compiled without debug information. gdb/testsuite: 2016-12-09 Yao Qi <yao.qi@linaro.org> * gdb.perf/skip-prologue.exp: Add parameter COMPILE.
2016-12-01Fix test names starting with uppercase output by basic functionsLuis Machado5-5/+5
The following patch is based on the previous patch i sent and handles cases of test names that start with an uppercase letter. Test names should start with lowercase unless it starts with the name of a technology, architecture, ISA etc. This first patch addresses cases of test names output explicitly via xfail, kfail, kpass, fail, pass, unsupported, untested and also names set with the pattern "set test" and "set testname". gdb/testsuite/ChangeLog: 2016-12-01 Luis Machado <lgustavo@codesourcery.com> Fix test names starting with uppercase throughout all the files below. * gdb.ada/array_return.exp * gdb.ada/catch_ex.exp * gdb.ada/info_exc.exp * gdb.ada/mi_catch_ex.exp * gdb.ada/mi_dyn_arr.exp * gdb.ada/mi_ex_cond.exp * gdb.ada/mi_exc_info.exp * gdb.ada/mi_interface.exp * gdb.ada/mi_task_arg.exp * gdb.ada/mi_task_info.exp * gdb.ada/mi_var_array.exp * gdb.arch/alpha-step.exp * gdb.arch/amd64-disp-step.exp * gdb.arch/arm-disp-step.exp * gdb.arch/disp-step-insn-reloc.exp * gdb.arch/e500-prologue.exp * gdb.arch/ftrace-insn-reloc.exp * gdb.arch/gdb1558.exp * gdb.arch/i386-bp_permanent.exp * gdb.arch/i386-disp-step.exp * gdb.arch/i386-float.exp * gdb.arch/i386-gnu-cfi.exp * gdb.arch/ia64-breakpoint-shadow.exp * gdb.arch/mips16-thunks.exp * gdb.arch/pa-nullify.exp * gdb.arch/powerpc-aix-prologue.exp * gdb.arch/powerpc-power.exp * gdb.arch/ppc-dfp.exp * gdb.arch/s390-tdbregs.exp * gdb.arch/spu-info.exp * gdb.arch/spu-ls.exp * gdb.arch/thumb-bx-pc.exp * gdb.base/advance.exp * gdb.base/annota-input-while-running.exp * gdb.base/arrayidx.exp * gdb.base/asmlabel.exp * gdb.base/async.exp * gdb.base/attach-wait-input.exp * gdb.base/auto-connect-native-target.exp * gdb.base/batch-preserve-term-settings.exp * gdb.base/bfp-test.exp * gdb.base/bigcore.exp * gdb.base/bp-permanent.exp * gdb.base/break-always.exp * gdb.base/break-fun-addr.exp * gdb.base/break-idempotent.exp * gdb.base/break-main-file-remove-fail.exp * gdb.base/break-probes.exp * gdb.base/break-unload-file.exp * gdb.base/break.exp * gdb.base/call-ar-st.exp * gdb.base/call-rt-st.exp * gdb.base/call-sc.exp * gdb.base/call-signal-resume.exp * gdb.base/call-strs.exp * gdb.base/callexit.exp * gdb.base/callfuncs.exp * gdb.base/catch-gdb-caused-signals.exp * gdb.base/catch-signal-siginfo-cond.exp * gdb.base/catch-syscall.exp * gdb.base/compare-sections.exp * gdb.base/cond-eval-mode.exp * gdb.base/condbreak-call-false.exp * gdb.base/consecutive-step-over.exp * gdb.base/cursal.exp * gdb.base/disabled-location.exp * gdb.base/disasm-end-cu.exp * gdb.base/display.exp * gdb.base/double-prompt-target-event-error.exp * gdb.base/dprintf-bp-same-addr.exp * gdb.base/dprintf-detach.exp * gdb.base/dprintf-next.exp * gdb.base/dprintf-non-stop.exp * gdb.base/dprintf-pending.exp * gdb.base/dso2dso.exp * gdb.base/ending-run.exp * gdb.base/enum_cond.exp * gdb.base/examine-backward.exp * gdb.base/exe-lock.exp * gdb.base/exec-invalid-sysroot.exp * gdb.base/execl-update-breakpoints.exp * gdb.base/execution-termios.exp * gdb.base/fileio.exp * gdb.base/fixsection.exp * gdb.base/foll-exec-mode.exp * gdb.base/foll-exec.exp * gdb.base/fork-running-state.exp * gdb.base/frame-args.exp * gdb.base/fullpath-expand.exp * gdb.base/func-ptr.exp * gdb.base/gcore-relro-pie.exp * gdb.base/gdb1090.exp * gdb.base/gdb1555.exp * gdb.base/global-var-nested-by-dso.exp * gdb.base/gnu-ifunc.exp * gdb.base/hbreak-in-shr-unsupported.exp * gdb.base/hbreak-unmapped.exp * gdb.base/hook-stop.exp * gdb.base/infcall-input.exp * gdb.base/info-fun.exp * gdb.base/info-shared.exp * gdb.base/interrupt-noterm.exp * gdb.base/jit-so.exp * gdb.base/jit.exp * gdb.base/line-symtabs.exp * gdb.base/list.exp * gdb.base/longjmp.exp * gdb.base/macscp.exp * gdb.base/max-value-size.exp * gdb.base/nodebug.exp * gdb.base/nofield.exp * gdb.base/overlays.exp * gdb.base/paginate-after-ctrl-c-running.exp * gdb.base/paginate-bg-execution.exp * gdb.base/paginate-inferior-exit.exp * gdb.base/pending.exp * gdb.base/pr11022.exp * gdb.base/printcmds.exp * gdb.base/ptr-typedef.exp * gdb.base/ptype.exp * gdb.base/randomize.exp * gdb.base/range-stepping.exp * gdb.base/realname-expand.exp * gdb.base/relativedebug.exp * gdb.base/remote.exp * gdb.base/savedregs.exp * gdb.base/sepdebug.exp * gdb.base/set-noassign.exp * gdb.base/shlib-call.exp * gdb.base/shreloc.exp * gdb.base/sigaltstack.exp * gdb.base/sigbpt.exp * gdb.base/siginfo-addr.exp * gdb.base/siginfo-obj.exp * gdb.base/siginfo-thread.exp * gdb.base/signest.exp * gdb.base/signull.exp * gdb.base/sigrepeat.exp * gdb.base/skip.exp * gdb.base/so-impl-ld.exp * gdb.base/solib-corrupted.exp * gdb.base/solib-disc.exp * gdb.base/solib-display.exp * gdb.base/solib-overlap.exp * gdb.base/solib-search.exp * gdb.base/solib-symbol.exp * gdb.base/source-execution.exp * gdb.base/sss-bp-on-user-bp-2.exp * gdb.base/sss-bp-on-user-bp.exp * gdb.base/stack-checking.exp * gdb.base/stale-infcall.exp * gdb.base/step-break.exp * gdb.base/step-line.exp * gdb.base/step-over-exit.exp * gdb.base/step-test.exp * gdb.base/structs.exp * gdb.base/sym-file.exp * gdb.base/symtab-search-order.exp * gdb.base/term.exp * gdb.base/type-opaque.exp * gdb.base/unload.exp * gdb.base/until-nodebug.exp * gdb.base/until.exp * gdb.base/unwindonsignal.exp * gdb.base/watch-cond.exp * gdb.base/watch-non-mem.exp * gdb.base/watch_thread_num.exp * gdb.base/watchpoint-reuse-slot.exp * gdb.base/watchpoint-solib.exp * gdb.base/watchpoint.exp * gdb.btrace/dlopen.exp * gdb.cell/arch.exp * gdb.cell/break.exp * gdb.cell/bt.exp * gdb.cell/core.exp * gdb.cell/data.exp * gdb.cell/dwarfaddr.exp * gdb.cell/ea-cache.exp * gdb.cell/ea-standalone.exp * gdb.cell/ea-test.exp * gdb.cell/f-regs.exp * gdb.cell/fork.exp * gdb.cell/gcore.exp * gdb.cell/mem-access.exp * gdb.cell/ptype.exp * gdb.cell/registers.exp * gdb.cell/sizeof.exp * gdb.cell/solib-symbol.exp * gdb.cell/solib.exp * gdb.compile/compile-tls.exp * gdb.cp/exception.exp * gdb.cp/gdb2495.exp * gdb.cp/local.exp * gdb.cp/mb-inline.exp * gdb.cp/mb-templates.exp * gdb.cp/pr10687.exp * gdb.cp/pr9167.exp * gdb.cp/scope-err.exp * gdb.cp/templates.exp * gdb.cp/virtfunc.exp * gdb.dwarf2/dw2-dir-file-name.exp * gdb.dwarf2/dw2-single-line-discriminators.exp * gdb.fortran/complex.exp * gdb.fortran/library-module.exp * gdb.guile/guile.exp * gdb.guile/scm-cmd.exp * gdb.guile/scm-frame-inline.exp * gdb.guile/scm-objfile.exp * gdb.guile/scm-pretty-print.exp * gdb.guile/scm-symbol.exp * gdb.guile/scm-type.exp * gdb.guile/scm-value.exp * gdb.linespec/keywords.exp * gdb.linespec/ls-errs.exp * gdb.linespec/macro-relative.exp * gdb.linespec/thread.exp * gdb.mi/mi-breakpoint-changed.exp * gdb.mi/mi-dprintf-pending.exp * gdb.mi/mi-fullname-deleted.exp * gdb.mi/mi-logging.exp * gdb.mi/mi-pending.exp * gdb.mi/mi-solib.exp * gdb.mi/new-ui-mi-sync.exp * gdb.mi/user-selected-context-sync.exp * gdb.multi/dummy-frame-restore.exp * gdb.multi/multi-arch-exec.exp * gdb.multi/remove-inferiors.exp * gdb.multi/watchpoint-multi-exit.exp * gdb.opt/solib-intra-step.exp * gdb.perf/backtrace.exp * gdb.perf/single-step.exp * gdb.perf/skip-command.exp * gdb.perf/skip-prologue.exp * gdb.perf/solib.exp * gdb.python/lib-types.exp * gdb.python/py-as-string.exp * gdb.python/py-bad-printers.exp * gdb.python/py-block.exp * gdb.python/py-breakpoint.exp * gdb.python/py-cmd.exp * gdb.python/py-events.exp * gdb.python/py-evthreads.exp * gdb.python/py-finish-breakpoint.exp * gdb.python/py-finish-breakpoint2.exp * gdb.python/py-frame-inline.exp * gdb.python/py-frame.exp * gdb.python/py-inferior.exp * gdb.python/py-infthread.exp * gdb.python/py-mi.exp * gdb.python/py-objfile.exp * gdb.python/py-pp-maint.exp * gdb.python/py-pp-registration.exp * gdb.python/py-prettyprint.exp * gdb.python/py-recurse-unwind.exp * gdb.python/py-shared.exp * gdb.python/py-symbol.exp * gdb.python/py-symtab.exp * gdb.python/py-template.exp * gdb.python/py-type.exp * gdb.python/py-unwind-maint.exp * gdb.python/py-unwind.exp * gdb.python/py-value.exp * gdb.python/python.exp * gdb.reverse/finish-reverse-bkpt.exp * gdb.reverse/insn-reverse.exp * gdb.reverse/next-reverse-bkpt-over-sr.exp * gdb.reverse/solib-precsave.exp * gdb.reverse/solib-reverse.exp * gdb.stabs/gdb11479.exp * gdb.stabs/weird.exp * gdb.threads/fork-child-threads.exp * gdb.threads/fork-plus-threads.exp * gdb.threads/fork-thread-pending.exp * gdb.threads/forking-threads-plus-breakpoint.exp * gdb.threads/hand-call-in-threads.exp * gdb.threads/interrupted-hand-call.exp * gdb.threads/linux-dp.exp * gdb.threads/local-watch-wrong-thread.exp * gdb.threads/next-while-other-thread-longjmps.exp * gdb.threads/non-ldr-exit.exp * gdb.threads/pending-step.exp * gdb.threads/print-threads.exp * gdb.threads/process-dies-while-detaching.exp * gdb.threads/process-dies-while-handling-bp.exp * gdb.threads/pthreads.exp * gdb.threads/queue-signal.exp * gdb.threads/reconnect-signal.exp * gdb.threads/signal-command-handle-nopass.exp * gdb.threads/signal-command-multiple-signals-pending.exp * gdb.threads/signal-delivered-right-thread.exp * gdb.threads/signal-sigtrap.exp * gdb.threads/sigthread.exp * gdb.threads/staticthreads.exp * gdb.threads/stepi-random-signal.exp * gdb.threads/thread-unwindonsignal.exp * gdb.threads/thread_check.exp * gdb.threads/thread_events.exp * gdb.threads/tid-reuse.exp * gdb.threads/tls-nodebug.exp * gdb.threads/tls-shared.exp * gdb.threads/tls-so_extern.exp * gdb.threads/tls.exp * gdb.threads/wp-replication.exp * gdb.trace/actions-changed.exp * gdb.trace/actions.exp * gdb.trace/backtrace.exp * gdb.trace/change-loc.exp * gdb.trace/collection.exp * gdb.trace/deltrace.exp * gdb.trace/disconnected-tracing.exp * gdb.trace/entry-values.exp * gdb.trace/ftrace-lock.exp * gdb.trace/ftrace.exp * gdb.trace/infotrace.exp * gdb.trace/mi-trace-frame-collected.exp * gdb.trace/mi-trace-unavailable.exp * gdb.trace/mi-traceframe-changed.exp * gdb.trace/mi-tracepoint-changed.exp * gdb.trace/mi-tsv-changed.exp * gdb.trace/no-attach-trace.exp * gdb.trace/packetlen.exp * gdb.trace/passc-dyn.exp * gdb.trace/passcount.exp * gdb.trace/pending.exp * gdb.trace/pr16508.exp * gdb.trace/qtro.exp * gdb.trace/range-stepping.exp * gdb.trace/read-memory.exp * gdb.trace/report.exp * gdb.trace/save-trace.exp * gdb.trace/signal.exp * gdb.trace/stap-trace.exp * gdb.trace/status-stop.exp * gdb.trace/strace.exp * gdb.trace/tfile.exp * gdb.trace/tfind.exp * gdb.trace/trace-break.exp * gdb.trace/trace-condition.exp * gdb.trace/trace-enable-disable.exp * gdb.trace/trace-mt.exp * gdb.trace/tracecmd.exp * gdb.trace/tracefile-pseudo-reg.exp * gdb.trace/tspeed.exp * gdb.trace/tstatus.exp * gdb.trace/tsv.exp * gdb.trace/unavailable.exp * gdb.trace/while-dyn.exp * gdb.trace/while-stepping.exp * lib/gdb-guile.exp * lib/gdb.exp * lib/mi-support.exp * lib/pascal.exp * lib/perftest.exp * lib/prelink-support.exp * lib/selftest-support.exp
2016-02-23Extend "skip" command to support -file, -gfile, -function, -rfunction.Doug Evans3-0/+218
gdb/ChangeLog: Extend "skip" command to support -file, -gfile, -function, -rfunction. * NEWS: Document new features. * skip.c: #include "fnmatch.h", "gdb_regex.h". (skiplist_entry) <file>: Renamed from filename. <function>: Renamed from function_name. <file_is_glob, function_is_regexp>: New members. <compiled_function_regexp, compiled_function_regexp_is_valid>: New members. (make_skip_entry): New function. (free_skiplist_entry, free_skiplist_entry_cleanup): New functions. (make_free_skiplist_entry_cleanup): New function. (skip_file_command): Update. (skip_function, skip_function_command): Update. (compile_skip_regexp): New functions. (skip_command): Add support for new options. (skip_info): Update. (skip_file_p, skip_gfile_p): New functions. (skip_function_p, skip_rfunction_p): New functions. (function_name_is_marked_for_skip): Update and simplify. (_initialize_step_skip): Update. * symtab.c: #include "fnmatch.h". (compare_glob_filenames_for_search): New function. * symtab.h (compare_glob_filenames_for_search): Declare. * utils.c (count_path_elements): New function. (strip_leading_path_elements): New function. * utils.h (count_path_elements): Declare. (strip_leading_path_elements): Declare. gdb/doc/ChangeLog: * gdb.texinfo (Skipping Over Functions and Files): Document new options to "skip" command. Update docs of output of "info skip". gdb/testsuite/ChangeLog: * gdb.base/skip.c (test_skip): New function. (end_test_skip_file_and_function): New function. (test_skip_file_and_function): New function. * gdb.base/skip1.c (test_skip): New function. (skip1_test_skip_file_and_function): New function. * gdb.base/skip.exp: Add tests for new skip options. * gdb.base/skip-solib.exp: Update expected output. * gdb.perf/skip-command.cc: New file. * gdb.perf/skip-command.exp: New file. * gdb.perf/skip-command.py: New file.
2016-02-08Always organize test artifacts in a directory hierarchySimon Marchi1-15/+0
When running tests in parallel, each test puts its generated files in a different directory, under "outputs". I think it would be nice if it was always the case, as it would isolate the test cases a bit more. An artifact created by a test wouldn't get overwritten by another test. Also, it makes it easier to clean up. A lot of executables are left all over the place because their names do not appear in gdb.*/Makefile. If everything is in "outputs", then we just have to delete that directory (which we already do). At the same time it makes the gdb.foo directories and their Makefiles useless in the build directory, since they are pretty much only used for cleaning. What do you think? gdb/testsuite/ChangeLog: * Makefile.in (ALL_SUBDIRS): Remove. (clean mostlyclean): Do not recurse in ALL_SUBDIRS. (distclean maintainer-clean realclean): Likewise. * configure.ac (AC_OUTPUT): Remove gdb.*/Makefile. * configure: Regenerate. * gdb.ada/Makefile.in: Delete. * gdb.arch/Makefile.in: Likewise. * gdb.asm/Makefile.in: Likewise. * gdb.base/Makefile.in: Likewise. * gdb.btrace/Makefile.in: Likewise. * gdb.cell/Makefile.in: Likewise. * gdb.compile/Makefile.in: Likewise. * gdb.cp/Makefile.in: Likewise. * gdb.disasm/Makefile.in: Likewise. * gdb.dlang/Makefile.in: Likewise. * gdb.dwarf2/Makefile.in: Likewise. * gdb.fortran/Makefile.in: Likewise. * gdb.gdb/Makefile.in: Likewise. * gdb.go/Makefile.in: Likewise. * gdb.guile/Makefile.in: Likewise. * gdb.java/Makefile.in: Likewise. * gdb.linespec/Makefile.in: Likewise. * gdb.mi/Makefile.in: Likewise. * gdb.modula2/Makefile.in: Likewise. * gdb.multi/Makefile.in: Likewise. * gdb.objc/Makefile.in: Likewise. * gdb.opencl/Makefile.in: Likewise. * gdb.opt/Makefile.in: Likewise. * gdb.pascal/Makefile.in: Likewise. * gdb.perf/Makefile.in: Likewise. * gdb.python/Makefile.in: Likewise. * gdb.reverse/Makefile.in: Likewise. * gdb.server/Makefile.in: Likewise. * gdb.stabs/Makefile.in: Likewise. * gdb.threads/Makefile.in: Likewise. * gdb.trace/Makefile.in: Likewise. * gdb.xml/Makefile.in: Likewise. * lib/gdb.exp (make_gdb_parallel_path): Add check for GDB_PARALLEL. (standard_output_file): Remove check for GDB_PARALLEL, always return path in outputs/$subdir/$testname.
2016-01-08perf testsuite: python 3 fixesSimon Marchi2-7/+10
There are a few errors when trying to run the performance testsuite with Python 3. This commit fixes them. In Python 2, it was possible to use relative imports (importing a module relative to the current one). In Python 3 it isn't. So I use absolute_import from the __future__ module, which allows Python 2 to behave like Python 3, and use the Python 3 syntax. In Python 3, dict.iterkeys doesn't exist anymore. Using dict.keys is a good compromise in this case. gdb/testsuite/ChangeLog: * gdb.perf/lib/perftest/perftest.py: Change relative imports to absolute. (SingleStatisticTestResult.report): Use dict.keys instead of dict.iterkeys.
2016-01-01GDB copyright headers update after running GDB's copyright.py script.Joel Brobecker49-49/+49
gdb/ChangeLog: Update year range in copyright notice of all files.
2015-08-14perftest/utils.py (select_file): Kill any existing inferior before selecting ↵Doug Evans1-0/+1
a new file. gdb/testsuite/ChangeLog: * gdb.perf/lib/perftest/utils.py (select_file): Kill any existing inferior before selecting a new file.
2015-08-03gdb.perf/single-step.exp (SINGLE_STEP_COUNT): Change to 1000 from 10000.Doug Evans1-1/+1
single-step.exp takes a while to run, and while that's not necessarily bad, here it's because the default value of SINGLE_STEP_COUNT is 10,000. We're not going to gain any more insight into perf issues single-stepping (stepi) 10,000 times over 1,000 times, so this patch changes the default to 1,000. gdb/testsuite/ChangeLog: * gdb.perf/single-step.exp (SINGLE_STEP_COUNT): Change to 1000 from 10000.
2015-08-03Move basic perf-test output from perftest.log to perftest.sum.Doug Evans2-8/+32
This patch does two things. 1) Add support for multiple data points. 2) Move the "report" output from perftest.log to perftest.sum. I want to record the raw data somewhere, and a bit of statistical analysis (standard deviation left for another day), but I also don't want it to clutter up the basic report. This patch takes a cue from gdb.{sum,log} and does the same thing with perftest.{sum,log}. Ultimately, we'll probably want to emit raw data to csv files or some such and then do post-processing passes on that. gdb/testsuite/ChangeLog: * lib/perftest/reporter.py (SUM_FILE_NAME): New global. (LOG_FILE_NAME): New global. (TextReporter.__init__): Initialize self.txt_sum. (TextReporter.report): Add support for multiple data-points. Move report to perftest.sum, put raw data in perftest.log. (TextReporter.start): Open sum and log files. (TextReporter.end): Close sum and log files. * lib/perftest/testresult.py (SingleStatisticTestResult.record): Handle multiple data-points.
2015-07-24Revert 4fd4095a5ffe3d4e50e0dac5f8ad37b8478afa9d, log individual measurements.Doug Evans1-6/+0
I think I lost a patch along the way, because I remember needing something like this, but the reverted patch isn't the right way to do this. Removing ... gdb/testsuite/ChangeLog: * gdb.perf/lib/perftest/measure.py (MeasurementCpuTime::stop): Print result. (MeasurementWallTime::stop): Ditto. (MeasurementVmSizeTime::stop): Ditto.
2015-07-24Add gmonster-{1,2} perf testcases.Doug Evans30-0/+1175
These testcases are mocks of real programs. GDB doesn't care what the programs do, they just have to look and/or behave like the real program. These testcases exercise gdb when debugging really large programs. E.g., gmonster-1 has 10,000 CUs, and gmonster-2 has 1000 shared libs (which is actually a little small, 5000 would be more accurate). gdb/testsuite/ChangeLog: * gdb.perf/lib/perftest/utils.py: New file. * gdb.perf/gm-hello.cc: New file. * gdb.perf/gm-pervasive-typedef.cc: New file. * gdb.perf/gm-pervasive-typedef.h: New file. * gdb.perf/gm-std.cc: New file. * gdb.perf/gm-std.h: New file. * gdb.perf/gm-use-cerr.cc: New file. * gdb.perf/gm-utils.h: New file. * gdb.perf/gmonster-null-lookup.py: New file. * gdb.perf/gmonster-pervasive-typedef.py: New file. * gdb.perf/gmonster-print-cerr.py: New file. * gdb.perf/gmonster-ptype-string.py: New file. * gdb.perf/gmonster-runto-main.py: New file. * gdb.perf/gmonster-select-file.py: New file. * gdb.perf/gmonster1-null-lookup.exp: New file. * gdb.perf/gmonster1-pervasive-typedef.exp: New file. * gdb.perf/gmonster1-print-cerr.exp: New file. * gdb.perf/gmonster1-ptype-string.exp: New file. * gdb.perf/gmonster1-runto-main.exp: New file. * gdb.perf/gmonster1-select-file.exp: New file. * gdb.perf/gmonster1.cc: New file. * gdb.perf/gmonster1.exp: New file. * gdb.perf/gmonster2-null-lookup.exp: New file. * gdb.perf/gmonster2-pervasive-typedef.exp: New file. * gdb.perf/gmonster2-print-cerr.exp: New file. * gdb.perf/gmonster2-ptype-string.exp: New file. * gdb.perf/gmonster2-runto-main.exp: New file. * gdb.perf/gmonster2-select-file.exp: New file. * gdb.perf/gmonster2.cc: New file. * gdb.perf/gmonster2.exp: New file.
2015-07-24Add perf testcase generator.Doug Evans1-0/+211
gdb/testsuite/ChangeLog: * gdb.perf/README: New file. * lib/perftest.exp (tcl_string_list_to_python_list): New function. * lib/gen-perf-test.exp: New file.
2015-07-24PerfTest::assemble functions return results.Doug Evans5-0/+12
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.
2015-07-24Print data from individual perf runs.Doug Evans1-0/+6
gdb/testsuite/ChangeLog: * gdb.perf/lib/perftest/measure.py (MeasurementCpuTime::stop): Print result. (MeasurementWallTime::stop): Ditto. (MeasurementVmSizeTime::stop): Ditto.
2015-01-01Update year range in copyright notice of all files owned by the GDB project.Joel Brobecker19-19/+19
gdb/ChangeLog: Update year range in copyright notice of all files.
2014-09-13Pass plain-text prompt to with_gdb_prompt.Doug Evans1-1/+1
I had occasion to use with_gdb_prompt in a test for the patch for PR 17314 and was passing the plain text prompt as the value, "(top-gdb)", instead of a regexp, "\(top-gdb\)" (expressed as "\\(top-gdb\\)" in TCL). I then discovered that in order to restore the prompt gdb passes the original value of $gdb_prompt to "set prompt", which works because "set prompt \(gdb\) " is equivalent to "set prompt (gdb) ". Perhaps I'm being overly cautious but this feels a bit subtle, but at any rate as an API choice I'd much rather pass the plain text form to with_gdb_prompt. I also discovered that the initial value of gdb_prompt is set in two places to two different values. At the global level gdb.exp sets it to "\[(\]gdb\[)\]" and default_gdb_init sets it to "\\(gdb\\)". The former form is undesirable as an argument to "set prompt", but it's not clear to me that just deleting this code won't break anything. Thus I just changed the value to be consistent and added a comment. gdb/testsuite/ChangeLog: * lib/gdb.exp (gdb_prompt): Add comment and change initial value to be consistent with what default_gdb_init uses. (with_gdb_prompt): Change form of PROMPT argument from a regexp to the plain text of the prompt. Add some logging printfs. * gdb.perf/disassemble.exp: Update call to with_gdb_prompt.
2014-01-01Update Copyright year range in all files maintained by GDB.Joel Brobecker19-19/+19
2013-12-15Perf test case: skip-prologueYao Qi3-0/+159
This patch add a perf test case on skip-prologue by inserting breakpoints on two functions many times, in order to exercise skip-prologue. gdb/testsuite: 2013-12-15 Yao Qi <yao@codesourcery.com> * gdb.perf/skip-prologue.c: New. * gdb.perf/skip-prologue.exp: New. * gdb.perf/skip-prologue.py: New.
2013-11-28GDB perf test on disassembleYao Qi2-0/+95
This patch adds a test case to test the performance of GDB doing disassembly. gdb/testsuite/ 2013-11-28 Yao Qi <yao@codesourcery.com> * lib/gdb.exp (with_gdb_prompt): New proc. * gdb.perf/disassemble.exp: New. * gdb.perf/disassemble.py: New.
2013-11-25GDB perf test on backtraceYao Qi3-0/+170
gdb/testsuite/ 2013-11-25 Yao Qi <yao@codesourcery.com> * gdb.perf/backtrace.c: New. * gdb.perf/backtrace.exp: New. * gdb.perf/backtrace.py: New.
2013-11-24GDB perf test on single stepYao Qi3-0/+125
gdb/testsuite: 2013-11-24 Yao Qi <yao@codesourcery.com> * gdb.perf/single-step.c: New. * gdb.perf/single-step.exp: New. * gdb.perf/single-step.py: New.
2013-11-06Test on solib load and unloadYao Qi3-0/+243
This patch is to add a test case to on the performance of GDB handling load and unload of shared library. In V4: - Handle malloc and dlopen failure, - Document test parameters. In V3, there are some changes, - Adapt to perf test framework changes. - Measure load and unload separately. In V2, there are some changes, - A new proc gdb_produce_source to produce source files. I tried to move all source file generation code out of solib.exp, but compilation step still needs to know the generated file names. I have to hard-code the file names in compilation step, which is not good to me, so I give up on this moving. - SOLIB_NUMBER -> SOLIB_COUNT - New variable SOLIB_DLCLOSE_REVERSED_ORDER to control the order of iterating a list of shared libs to dlclose them. - New variable GDB_PERFORMANCE to enable these perf test cases. - Remove dlsym call in solib.c. - Update solib.py for the updated framework. gdb/testsuite/ * lib/gdb.exp (gdb_produce_source): New procedure. * gdb.perf/solib.c: New. * gdb.perf/solib.exp: New. * gdb.perf/solib.py: New.
2013-11-06Perf test frameworkYao Qi5-0/+357
This patch adds a basic framework to do performance testing for GDB. perftest.py is about the test case, testresult.py is about test results, and how are they saved. reporter.py is about how results are reported (in what format). measure.py is about measuring the execution of tests by a collection of measurements. In V5: - Simplify perftest.exp. In V4: - Rename MeasurementCPUTime to MeasurementCpuTime, - Add 'pass' in empty method, - Simplify string comparison in perftest.exp. - Rename GDB_PERFORMANCE to GDB_PERFTEST_MODE and rename GDB_PERFORMANCE_TIMEOUT to GDB_PERFTEST_TIMEOUT. In V3, there are some changes, - Add wall time measurement, cpu time measurement and vmsize measurement. - Rename SingleStatisticTestCase to TestCaseWithBasicMeasurements, which measures cpu time, wall time, and memory (vmsize). - GDB_PERFORMANCE=run|compile|both to control the mode of perf testing. - New GDB_PERFORMANCE_TIMEOUT to specify the timeout. - Split proc prepare to proc compile and startup. - Disable GC while doing measurements. In V2, there are several changes to address Doug and Sanimir's comments. - Add copyright header and docstring in perftest/__init__.py - Remove config.py. - Fix docstring format. - Rename classes "SingleVariable" to "SingleStatistic". - Don't extend gdb.Function in class TestCase. Add a new method run to run the test case so that we can pass parameters to test. - Allow to customize whether to warm up and to append test log. - Move time measurement into test harness. Add a new class Measurement for a specific measurement and a new class Measure to measure them for a given test case. - A new class ResultFactory to create instances of TestResult. - New file lib/perftest.exp, which is to do some preparations and cleanups to simplify each *.exp file. - Skip compilation step if GDB_PERFORMANCE_SKIP_COMPILE is set. gdb/testsuite/ 2013-11-06 Yao Qi <yao@codesourcery.com> * lib/perftest.exp: New. * gdb.perf/lib/perftest/__init__.py: New. * gdb.perf/lib/perftest/measure.py: New. * gdb.perf/lib/perftest/perftest.py: New. * gdb.perf/lib/perftest/reporter.py: New. * gdb.perf/lib/perftest/testresult.py: New.
2013-11-06New make target 'check-perf' and new dir gdb.perfYao Qi1-0/+15
We add a new dir gdb.perf in testsuite for all performance tests. However, current 'make check' logic will either run dejagnu in directory testsuite or iterate all gdb.* directories which has *.exp files. Both of them will run tests in gdb.perf. We want to achieve: 1) typical 'make check' should not run performance tests. In each perf test case, GDB_PERFTEST_MODE is checked. If it doesn't exist, return. 2) run perf tests easily. We add a new makefile target 'check-perf'. gdb: 2013-11-06 Yao Qi <yao@codesourcery.com> * Makefile.in (check-perf): New target. gdb/testsuite: 2013-11-06 Yao Qi <yao@codesourcery.com> * Makefile.in (check-perf): New target. * configure.ac (AC_OUTPUT): Output Makefile in gdb.perf. * configure: Re-generated. * gdb.perf/Makefile.in: New.