This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[rfc] Re: Remote testsuite problem: invalid executable cache


Dan Jacobowitz wrote:
> On Fri, Jul 22, 2011 at 11:06 AM, Ulrich Weigand <uweigand@de.ibm.com> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]