From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28858 invoked by alias); 27 Nov 2012 15:56:59 -0000 Received: (qmail 28845 invoked by uid 22791); 27 Nov 2012 15:56:58 -0000 X-SWARE-Spam-Status: No, hits=-7.8 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mga11.intel.com (HELO mga11.intel.com) (192.55.52.93) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 27 Nov 2012 15:56:49 +0000 Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP; 27 Nov 2012 07:56:48 -0800 X-ExtLoop1: 1 Received: from swsutil001.isw.intel.com ([10.237.237.11]) by fmsmga002.fm.intel.com with ESMTP; 27 Nov 2012 07:56:46 -0800 Received: from ulslx001.iul.intel.com (ulslx001.iul.intel.com [172.28.207.63]) by swsutil001.isw.intel.com (8.13.6/8.13.6/MailSET/Hub) with ESMTP id qARFujrF020229; Tue, 27 Nov 2012 15:56:45 GMT Received: from ulslx001.iul.intel.com (localhost [127.0.0.1]) by ulslx001.iul.intel.com with ESMTP id qARFujLb020487; Tue, 27 Nov 2012 16:56:45 +0100 Received: (from mgherza1@localhost) by ulslx001.iul.intel.com with id qARFuiZv020483; Tue, 27 Nov 2012 16:56:44 +0100 From: Mircea Gherzan To: gdb-patches@sourceware.org Cc: keven.boell@intel.com, mircea.gherzan@intel.com, marc.khouzam@ericsson.com, tromey@redhat.com, vladimir@codesourcery.com Subject: [PATCH v6 3/3] MI: tests for -catch-load/-catch-unload Date: Tue, 27 Nov 2012 15:56:00 -0000 Message-Id: <1354031591-20226-3-git-send-email-mircea.gherzan@intel.com> In-Reply-To: <1354031591-20226-1-git-send-email-mircea.gherzan@intel.com> References: <1354031591-20226-1-git-send-email-mircea.gherzan@intel.com> X-IsSubscribed: yes 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 X-SW-Source: 2012-11/txt/msg00750.txt.bz2 From: Keven Boell Added basic MI tests for the -catch-load and -catch-unload MI commands. 2012-11-19 Keven Boell gdb/testsuite: * gdb.mi/mi-catch-load-so.c: New. Clone of the catch load test library source file. * gdb.mi/mi-catch-load.c: New. Clone of the catch load test source file. * gdb.mi/mi-catch-load.exp: New. Test file for basic MI -catch-load and -catch-unload tests. Signed-off-by: Keven Boell --- gdb/testsuite/gdb.mi/mi-catch-load-so.c | 22 ++++++++ gdb/testsuite/gdb.mi/mi-catch-load.c | 33 +++++++++++ gdb/testsuite/gdb.mi/mi-catch-load.exp | 89 +++++++++++++++++++++++++++++++ 3 files changed, 144 insertions(+), 0 deletions(-) create mode 100755 gdb/testsuite/gdb.mi/mi-catch-load-so.c create mode 100755 gdb/testsuite/gdb.mi/mi-catch-load.c create mode 100755 gdb/testsuite/gdb.mi/mi-catch-load.exp diff --git a/gdb/testsuite/gdb.mi/mi-catch-load-so.c b/gdb/testsuite/gdb.mi/mi-catch-load-so.c new file mode 100755 index 0000000..8c3d0d6 --- /dev/null +++ b/gdb/testsuite/gdb.mi/mi-catch-load-so.c @@ -0,0 +1,22 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2012 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 . */ + +int +f (void) +{ + return 23; +} diff --git a/gdb/testsuite/gdb.mi/mi-catch-load.c b/gdb/testsuite/gdb.mi/mi-catch-load.c new file mode 100755 index 0000000..0035c88 --- /dev/null +++ b/gdb/testsuite/gdb.mi/mi-catch-load.c @@ -0,0 +1,33 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2012 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 . */ + +#include +#include + +char *libname = "mi-catch-load-so.so"; + +int +main () +{ + void *h; + + h = dlopen (libname, RTLD_LAZY); + + dlclose (h); + + return 0; +} diff --git a/gdb/testsuite/gdb.mi/mi-catch-load.exp b/gdb/testsuite/gdb.mi/mi-catch-load.exp new file mode 100755 index 0000000..e7f9b1e --- /dev/null +++ b/gdb/testsuite/gdb.mi/mi-catch-load.exp @@ -0,0 +1,89 @@ +# Copyright 2012 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 . +# +load_lib mi-support.exp + +if {[skip_shlib_tests]} { + return -1 +} + +gdb_exit +if [mi_gdb_start] { + continue +} + +if {[get_compiler_info]} { + warning "Could not get compiler info" + untested mi-catch-load.exp + return -1 +} + +standard_testfile mi-catch-load.c + +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug shlib_load}] != "" } { + untested mi-catch-load.exp + return -1 +} + +set testfile2 mi-catch-load-so +set srcfile2 ${testfile2}.c +set binfile2 ${objdir}/${subdir}/${testfile2}.so +set binfile2_dlopen [shlib_target_file ${testfile2}.so] +if { [gdb_compile_shlib "${srcdir}/${subdir}/${srcfile2}" ${binfile2} {debug}] != "" } { + untested mi-catch-load.exp + return -1 +} +mi_run_to_main + +# test -catch-load +mi_gdb_test "111-gdb-set auto-solib-add on" ".*" "catch-load: auto-solib-add on" +mi_gdb_test "222-catch-load -t mi-catch-load-so.so*" ".*breakpoint-created.*type=\"catchpoint\".*" "catch-load: catch load" +mi_gdb_test "333-exec-continue" ".*" "catch-load: run" + +gdb_expect { + -re ".*stopped.*reason=\"solib-event\".*added=.*\r\n.*\r\n$mi_gdb_prompt$" { + pass "catch-load: solib-event stop" + } + -re ".*\r\n$mi_gdb_prompt$" { + fail "catch-load: solib-event stop" + } + timeout { + fail "(timeout) catch-load: solib-event stop" + } +} + +mi_gdb_exit + + +if [mi_gdb_start] { + continue +} +mi_run_to_main + +# test -catch-unload +mi_gdb_test "111-gdb-set auto-solib-add on" ".*" "catch-unload: auto-solib-add on" +mi_gdb_test "222-catch-unload -t mi-catch-load-so.so*" ".*breakpoint-created.*type=\"catchpoint\".*" "catch-unload: catch unload" +mi_gdb_test "333-exec-continue" ".*" "catch-unload: run" + +gdb_expect { + -re ".*stopped.*reason=\"solib-event\".*removed=.*\r\n.*\r\n$mi_gdb_prompt$" { + pass "catch-unload: solib-event stop" + } + -re ".*\r\n$mi_gdb_prompt$" { + fail "catch-unload: solib-event stop" + } + timeout { + fail "(timeout) catch-unload: solib-event stop" + } +} -- 1.7.1