From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22426 invoked by alias); 25 Sep 2013 14:27:24 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 22364 invoked by uid 89); 25 Sep 2013 14:27:24 -0000 Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 25 Sep 2013 14:27:24 +0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_00,FROM_12LTRDOM,RDNS_NONE,SPF_HELO_FAIL autolearn=no version=3.3.2 X-HELO: relay1.mentorg.com Received: from svr-orw-exc-10.mgc.mentorg.com ([147.34.98.58]) by relay1.mentorg.com with esmtp id 1VOq3i-0005gJ-5f from Yao_Qi@mentor.com for gdb-patches@sourceware.org; Wed, 25 Sep 2013 07:27:18 -0700 Received: from SVR-ORW-FEM-04.mgc.mentorg.com ([147.34.97.41]) by SVR-ORW-EXC-10.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Wed, 25 Sep 2013 07:27:18 -0700 Received: from qiyao.dyndns.org (147.34.91.1) by svr-orw-fem-04.mgc.mentorg.com (147.34.97.41) with Microsoft SMTP Server id 14.2.247.3; Wed, 25 Sep 2013 07:27:17 -0700 From: Yao Qi To: Subject: [PATCH 0/3 V2] GDB Performance testing Date: Wed, 25 Sep 2013 14:27:00 -0000 Message-ID: <1380119209-25975-1-git-send-email-yao@codesourcery.com> MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes X-SW-Source: 2013-09/txt/msg00894.txt.bz2 Hello, Here is the V2 of GDB performance testing. The changes in V2 can be found in each patch, and they address most of review comments. Here are some points V2 doesn't address, and I'd like revisit them and consider them in the next iteration. - Utilities to generate source files. We need them to generate source files to compose a reasonably sized program for perf testing. However, current test case doesn't require these utilities. - Generated files, including source files, object files and executables are not removed when the test is done, because the next run may skip compilation step. The basic usages of performance testing are unchanged, like $ make check-perf $ make check-perf RUNTESTFLAGS="--target_board=native-gdbserver solib.exp" $ make check-perf RUNTESTFLAGS="solib.exp SOLIB_COUNT=1024" We can skip compilation step like this, $ make check-perf RUNTESTFLAGS='solib.exp GDB_PERFORMANCE_SKIP_COMPILE=yes' in default, compilation is not skipped. The skeleton of .exp is like this: load_lib perftest.exp if [skip_perf_tests] { return 0 } PerfTest::assemble { compile { PerfTest::compiled } setup_gdb { } } { run { } } PerfTest::assemble is inspired by Dwarf::assemble. It has three procedures, compile, setup_gdb and run. Each test should fill in the body of these three procedures for its purpose. If variable GDB_PERFORMANCE_SKIP_COMPILE exists, the procedure compile is not invoked. If the test case uses pre-compiled program, it can be written like this: PerfTest::assemble { setup_gdb { } } { run { } } I'll update gdb/testsuite/README later. *** BLURB HERE *** Yao Qi (3): New make target 'check-perf' and new dir gdb.perf Perf test framework Test on solib load and unload gdb/Makefile.in | 8 ++ gdb/testsuite/Makefile.in | 4 + gdb/testsuite/configure | 3 +- gdb/testsuite/configure.ac | 2 +- gdb/testsuite/gdb.perf/Makefile.in | 15 +++ gdb/testsuite/gdb.perf/lib/perftest/__init__.py | 17 +++ gdb/testsuite/gdb.perf/lib/perftest/measure.py | 114 +++++++++++++++++++++ gdb/testsuite/gdb.perf/lib/perftest/perftest.py | 71 +++++++++++++ gdb/testsuite/gdb.perf/lib/perftest/reporter.py | 68 ++++++++++++ gdb/testsuite/gdb.perf/lib/perftest/testresult.py | 59 +++++++++++ gdb/testsuite/gdb.perf/solib.c | 71 +++++++++++++ gdb/testsuite/gdb.perf/solib.exp | 77 ++++++++++++++ gdb/testsuite/gdb.perf/solib.py | 45 ++++++++ gdb/testsuite/lib/gdb.exp | 16 +++ gdb/testsuite/lib/perftest.exp | 67 ++++++++++++ 15 files changed, 635 insertions(+), 2 deletions(-) create mode 100644 gdb/testsuite/gdb.perf/Makefile.in create mode 100644 gdb/testsuite/gdb.perf/lib/perftest/__init__.py create mode 100644 gdb/testsuite/gdb.perf/lib/perftest/measure.py create mode 100644 gdb/testsuite/gdb.perf/lib/perftest/perftest.py create mode 100644 gdb/testsuite/gdb.perf/lib/perftest/reporter.py create mode 100644 gdb/testsuite/gdb.perf/lib/perftest/testresult.py create mode 100644 gdb/testsuite/gdb.perf/solib.c create mode 100644 gdb/testsuite/gdb.perf/solib.exp create mode 100644 gdb/testsuite/gdb.perf/solib.py create mode 100644 gdb/testsuite/lib/perftest.exp -- 1.7.7.6