From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32125 invoked by alias); 22 Jul 2011 17:43:55 -0000 Received: (qmail 32112 invoked by uid 22791); 22 Jul 2011 17:43:53 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL,BAYES_00,MSGID_FROM_MTA_HEADER,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mtagate1.uk.ibm.com (HELO mtagate1.uk.ibm.com) (194.196.100.161) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 22 Jul 2011 17:43:38 +0000 Received: from d06nrmr1307.portsmouth.uk.ibm.com (d06nrmr1307.portsmouth.uk.ibm.com [9.149.38.129]) by mtagate1.uk.ibm.com (8.13.1/8.13.1) with ESMTP id p6MHhaE8015985 for ; Fri, 22 Jul 2011 17:43:36 GMT Received: from d06av02.portsmouth.uk.ibm.com (d06av02.portsmouth.uk.ibm.com [9.149.37.228]) by d06nrmr1307.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MHhaiR2384030 for ; Fri, 22 Jul 2011 18:43:36 +0100 Received: from d06av02.portsmouth.uk.ibm.com (loopback [127.0.0.1]) by d06av02.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MHhZRJ031726 for ; Fri, 22 Jul 2011 11:43:36 -0600 Received: from tuxmaker.boeblingen.de.ibm.com (tuxmaker.boeblingen.de.ibm.com [9.152.85.9]) by d06av02.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with SMTP id p6MHhYCs031716; Fri, 22 Jul 2011 11:43:34 -0600 Message-Id: <201107221743.p6MHhYCs031716@d06av02.portsmouth.uk.ibm.com> Received: by tuxmaker.boeblingen.de.ibm.com (sSMTP sendmail emulation); Fri, 22 Jul 2011 19:43:34 +0200 Subject: [rfc] Re: Remote testsuite problem: invalid executable cache To: drow@false.org (Daniel Jacobowitz), jan.kratochvil@redhat.com, tromey@redhat.com Date: Fri, 22 Jul 2011 17:53:00 -0000 From: "Ulrich Weigand" Cc: gdb-patches@sourceware.org In-Reply-To: from "Daniel Jacobowitz" at Jul 22, 2011 12:42:00 PM MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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: 2011-07/txt/msg00637.txt.bz2 Dan Jacobowitz wrote: > On Fri, Jul 22, 2011 at 11:06 AM, Ulrich Weigand wrote: > > Some options to fix this problem might include: > > > > - Rewrite the Pyhton tests to not overwrite the same exectuable > > file (just use different names). > > I am strongly in favor of this option. If you do remote host testing > over NFS, multiple binaries with the same name can lead to bizarre > cache inconsistency. (Sad but true.) Jan Kratochvil wrote: > This should be fixed anyway, so far I was writing tests such way so that one > can reproduce the problem by hand on existing executable(s) after the test has > finished. Seems there is consensus this is the way to go ... The patch below implements this for all instances I could find in gdb.python. Tom, does this look OK to you? Thanks, Ulrich ChangeLog: * testsuite/gdb.python/py-mi.exp: Use different file names for different versions of the executable under test. * testsuite/gdb.python/py-prettyprint.exp: Likewise. * testsuite/gdb.python/py-symbol.exp: Likewise. * testsuite/gdb.python/py-template.exp: Likewise. * testsuite/gdb.python/py-type.exp: Likewise. * testsuite/gdb.python/py-value.exp: Likewise. Index: gdb/testsuite/gdb.python/py-mi.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-mi.exp,v retrieving revision 1.11 diff -u -p -r1.11 py-mi.exp --- gdb/testsuite/gdb.python/py-mi.exp 16 May 2011 13:56:40 -0000 1.11 +++ gdb/testsuite/gdb.python/py-mi.exp 22 Jul 2011 17:34:25 -0000 @@ -286,7 +286,7 @@ mi_list_varobj_children nstype2 { # C++ MI tests gdb_exit -if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \ +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}-c++" \ executable {debug c++ additional_flags=-DMI}] != "" } { untested "Couldn't compile ${srcfile} in c++ mode" return -1 @@ -297,7 +297,7 @@ if [mi_gdb_start] { } mi_delete_breakpoints mi_gdb_reinitialize_dir $srcdir/$subdir -mi_gdb_load ${binfile} +mi_gdb_load ${binfile}-c++ if {[lsearch -exact [mi_get_features] python] < 0} { unsupported "python support is disabled" Index: gdb/testsuite/gdb.python/py-prettyprint.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-prettyprint.exp,v retrieving revision 1.20 diff -u -p -r1.20 py-prettyprint.exp --- gdb/testsuite/gdb.python/py-prettyprint.exp 11 Jul 2011 13:07:38 -0000 1.20 +++ gdb/testsuite/gdb.python/py-prettyprint.exp 22 Jul 2011 17:34:25 -0000 @@ -35,7 +35,7 @@ if { [skip_python_tests] } { continue } proc run_lang_tests {lang} { global srcdir subdir srcfile binfile testfile hex - if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable "debug $lang"] != "" } { + if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}-${lang}" executable "debug $lang"] != "" } { untested "Couldn't compile ${srcfile} in $lang mode" return -1 } @@ -46,7 +46,7 @@ proc run_lang_tests {lang} { gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir - gdb_load ${binfile} + gdb_load ${binfile}-${lang} if ![runto_main ] then { perror "couldn't run to breakpoint" Index: gdb/testsuite/gdb.python/py-symbol.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-symbol.exp,v retrieving revision 1.6 diff -u -p -r1.6 py-symbol.exp --- gdb/testsuite/gdb.python/py-symbol.exp 17 Mar 2011 09:36:17 -0000 1.6 +++ gdb/testsuite/gdb.python/py-symbol.exp 22 Jul 2011 17:34:25 -0000 @@ -99,7 +99,7 @@ gdb_test "python print t\[0\].symtab" "g # C++ tests # Recompile binary. - if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable "debug c++"] != "" } { + if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}-c++" executable "debug c++"] != "" } { untested "Couldn't compile ${srcfile} in c++ mode" return -1 } @@ -108,7 +108,7 @@ gdb_test "python print t\[0\].symtab" "g gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir -gdb_load ${binfile} +gdb_load ${binfile}-c++ if ![runto_main] then { fail "Can't run to main" Index: gdb/testsuite/gdb.python/py-template.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-template.exp,v retrieving revision 1.7 diff -u -p -r1.7 py-template.exp --- gdb/testsuite/gdb.python/py-template.exp 30 Jun 2011 08:53:38 -0000 1.7 +++ gdb/testsuite/gdb.python/py-template.exp 22 Jul 2011 17:34:25 -0000 @@ -40,15 +40,15 @@ gdb_reinitialize_dir $srcdir/$subdir # Skip all tests if Python scripting is not enabled. if { [skip_python_tests] } { continue } -proc test_template_arg {type} { +proc test_template_arg {name type} { global testfile srcdir subdir srcfile binfile - if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \ + if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}-${name}" \ executable \ [list debug c++ additional_flags="-DTYPE=$type"]] != "" } { untested $type return -1 } - gdb_load ${binfile} + gdb_load ${binfile}-${name} if ![runto_main ] then { perror "couldn't run to breakpoint" return @@ -62,11 +62,11 @@ proc test_template_arg {type} { gdb_test "python print foo.type.template_argument(0)" $t $type } -test_template_arg "const int" -test_template_arg "volatile int" -test_template_arg "const int &" -test_template_arg "volatile int &" -test_template_arg "volatile int * const" -test_template_arg "volatile int * const *" -test_template_arg "const int * volatile" -test_template_arg "const int * volatile * const * volatile *" +test_template_arg "ci" "const int" +test_template_arg "vi" "volatile int" +test_template_arg "cir" "const int &" +test_template_arg "vir" "volatile int &" +test_template_arg "vipc" "volatile int * const" +test_template_arg "vipcp" "volatile int * const *" +test_template_arg "cipv" "const int * volatile" +test_template_arg "cipvpcpvp" "const int * volatile * const * volatile *" Index: gdb/testsuite/gdb.python/py-type.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-type.exp,v retrieving revision 1.11 diff -u -p -r1.11 py-type.exp --- gdb/testsuite/gdb.python/py-type.exp 1 Jan 2011 15:33:49 -0000 1.11 +++ gdb/testsuite/gdb.python/py-type.exp 22 Jul 2011 17:34:25 -0000 @@ -34,20 +34,20 @@ if [get_compiler_info not-used c++] { proc build_inferior {lang} { global srcdir subdir srcfile binfile testfile hex - if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable "debug $lang"] != "" } { + if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}-${lang}" executable "debug $lang"] != "" } { untested "Couldn't compile ${srcfile} in $lang mode" return -1 } } # Restart GDB. -proc restart_gdb {} { +proc restart_gdb {lang} { global srcdir subdir srcfile binfile testfile hex gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir - gdb_load ${binfile} + gdb_load ${binfile}-${lang} if ![runto_main ] then { perror "couldn't run to breakpoint" @@ -162,7 +162,7 @@ proc test_template {} { # Perform C Tests. build_inferior "c" -restart_gdb +restart_gdb "c" # Skip all tests if Python scripting is not enabled. if { [skip_python_tests] } { continue } @@ -172,7 +172,7 @@ test_fields "c" # Perform C++ Tests. build_inferior "c++" -restart_gdb +restart_gdb "c++" runto_bp "break to inspect struct and array." test_fields "c++" test_base_class Index: gdb/testsuite/gdb.python/py-value.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-value.exp,v retrieving revision 1.20 diff -u -p -r1.20 py-value.exp --- gdb/testsuite/gdb.python/py-value.exp 24 Apr 2011 09:04:38 -0000 1.20 +++ gdb/testsuite/gdb.python/py-value.exp 22 Jul 2011 17:34:25 -0000 @@ -326,7 +326,7 @@ proc test_value_after_death {} { proc test_subscript_regression {lang} { global srcdir subdir srcfile binfile testfile hex - if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable "debug $lang"] != "" } { + if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}-${lang}" executable "debug $lang"] != "" } { untested "Couldn't compile ${srcfile} in $lang mode" return -1 } @@ -335,7 +335,7 @@ proc test_subscript_regression {lang} { gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir - gdb_load ${binfile} + gdb_load ${binfile}-${lang} if ![runto_main ] then { perror "couldn't run to breakpoint" -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE Ulrich.Weigand@de.ibm.com