This is the mail archive of the gdb-patches@sources.redhat.com 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]

Re: [RFA/testsuite] Suppress errors building thread tests


On Thu, Jan 02, 2003 at 11:58:14AM -0800, Michael Snyder wrote:
> Michael Elizabeth Chastain wrote:
> > 
> > Recommended for self-approval by Daniel J.
> > 
> > Proofread and tested.  All the pthreads library noise is gone
> > from gdb.sum.  The results for gcore-thread.exp, print-threads.exp,
> > and schedlock.exp are fine.
> > 
> > > Note the use of gdb_suppress_entire_file.  I'm just doing that because it's
> > > what the other tests do; I really dislike gdb_suppress_entire_file, so I
> > > think I may send along a followup patch to change it to a "return -1".
> > > gdb_compile_pthreads already does an "unsupported" if compilation fails. If
> > > we can't build the threads tests, there's no point in FAILing them, in my
> > > opinion; this clutters up results when I run simulator testing.  Thoughts?
> > 
> > I'm with you.  If compilation+linking fails, I am fine with one
> > UNSUPPORTED per test script.  It would be even better if the UNSUPPORTED's
> > come from a known unsupported list rather than dynamic conditions.
> > 
> > Michael C
> 
> Ditto.

OK.  I've committed this instead; works like a charm, tested with and
without threads support.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer

2003-01-04  Daniel Jacobowitz  <drow@mvista.com>

	Fix PR gdb/844
	* lib/gdb.exp (gdb_compile): Handle "quiet" option.
	(gdb_compile_pthreads): Pass "quiet" to gdb_compile.

	* gdb.threads/gcore-thread.exp: Use gdb_compile_pthreads.  Return
	instead of calling gdb_suppress_entire_file.
	* gdb.threads/print-threads.exp: Likewise.
	* gdb.threads/schedlock.exp: Likewise.

	* gdb.threads/killed.exp: Return instead of calling
	gdb_suppress_entire_file.
	* gdb.threads/linux-dp.exp: Likewise.
	* gdb.threads/pthreads.exp: Likewise.

Index: gdb.threads/gcore-thread.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/gcore-thread.exp,v
retrieving revision 1.2
diff -u -p -r1.2 gcore-thread.exp
--- gdb.threads/gcore-thread.exp	4 Jan 2003 15:37:40 -0000	1.2
+++ gdb.threads/gcore-thread.exp	4 Jan 2003 23:03:01 -0000
@@ -1,4 +1,4 @@
-# Copyright 2002 Free Software Foundation, Inc.
+# Copyright 2002, 2003 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
@@ -32,38 +32,13 @@ set testfile "pthreads"
 set srcfile  ${testfile}.c
 set binfile  ${objdir}/${subdir}/${testfile}
 
-set built_binfile 0
 if [istarget "*-*-linux"] then {
     set target_cflags "-D_MIT_POSIX_THREADS"
 } else {
     set target_cflags ""
 }
-set why_msg "unrecognized error"
-foreach lib {-lpthreads -lpthread -lthread} {
-    set options "debug"
-    lappend options "incdir=${objdir}"
-    lappend options "libs=$lib"
-    set ccout [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $options]
-    switch -regexp -- $ccout {
-	".*no posix threads support.*" {
-	    set why_msg "missing threads include file"
-	    break
-	}
-	".*cannot open -lpthread.*" {
-	    set why_msg "missing runtime threads library"
-	}
-	".*Can't find library for -lpthread.*" {
-	    set why_msg "missing runtime threads library"
-	}
-	{^$} {
-	    pass "successfully compiled posix threads test case"
-	    set built_binfile 1
-	    break
-	}
-    }
-}
-if {$built_binfile == "0"} {
-    unsupported "Couldn't compile ${srcfile}, ${why_msg}"
+
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug "incdir=${objdir}"]] != "" } {
     return -1
 }
 
Index: gdb.threads/killed.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/killed.exp,v
retrieving revision 1.3
diff -u -p -r1.3 killed.exp
--- gdb.threads/killed.exp	4 Jan 2003 15:37:40 -0000	1.3
+++ gdb.threads/killed.exp	4 Jan 2003 23:03:01 -0000
@@ -67,7 +67,7 @@ set srcfile ${testfile}.c
 set binfile ${objdir}/${subdir}/${testfile}
 
 if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug "incdir=${objdir}"]] != "" } {
-    gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+    return -1
 }
 
 
Index: gdb.threads/linux-dp.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/linux-dp.exp,v
retrieving revision 1.7
diff -u -p -r1.7 linux-dp.exp
--- gdb.threads/linux-dp.exp	24 Apr 2002 22:11:28 -0000	1.7
+++ gdb.threads/linux-dp.exp	4 Jan 2003 23:03:01 -0000
@@ -1,4 +1,4 @@
-# Copyright 1999, 2001, 2002 Free Software Foundation, Inc.
+# Copyright 1999, 2001, 2002, 2003 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
@@ -50,7 +50,7 @@ set testfile "linux-dp"
 set srcfile ${testfile}.c
 set binfile ${objdir}/${subdir}/${testfile}
 if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug libs=-lpthread}] != ""} {
-    gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+    return -1
 }
 
 gdb_start
Index: gdb.threads/print-threads.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/print-threads.exp,v
retrieving revision 1.2
diff -u -p -r1.2 print-threads.exp
--- gdb.threads/print-threads.exp	4 Jan 2003 15:37:40 -0000	1.2
+++ gdb.threads/print-threads.exp	4 Jan 2003 23:03:01 -0000
@@ -38,41 +38,7 @@ set binfile ${objdir}/${subdir}/${testfi
 # carriage return)
 set horiz "\[^\n\r\]*"
 
-set built_binfile 0
-
-# Default to the usual (only?) -lpthread on GNU/Linux to quiet noise
-if [istarget "*-*-linux*"] then {
-    set possible_libs "-lpthread -lpthreads -lthread"
-} else {
-    set possible_libs "-lpthreads -lpthread -lthread"
-}
-
-set why_msg "unrecognized error"
-foreach lib $possible_libs {
-    set options "debug"
-    lappend options "incdir=${objdir}"
-    lappend options "libs=$lib"
-    set ccout [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $options]
-    switch -regexp -- $ccout {
-	".*no posix threads support.*" {
-	    set why_msg "missing threads include file"
-	    break
-	}
-	".*cannot open -lpthread.*" {
-	    set why_msg "missing runtime threads library"
-	}
-	".*Can't find library for -lpthread.*" {
-	    set why_msg "missing runtime threads library"
-	}
-	{^$} {
-	    pass "successfully compiled posix threads test case"
-	    set built_binfile 1
-	    break
-	}
-    }
-}
-if {$built_binfile == "0"} {
-    unsupported "Couldn't compile ${srcfile}, ${why_msg}"
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug "incdir=${objdir}"]] != "" } {
     return -1
 }
 
Index: gdb.threads/pthreads.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/pthreads.exp,v
retrieving revision 1.9
diff -u -p -r1.9 pthreads.exp
--- gdb.threads/pthreads.exp	4 Jan 2003 15:37:40 -0000	1.9
+++ gdb.threads/pthreads.exp	4 Jan 2003 23:03:01 -0000
@@ -46,7 +46,7 @@ if [istarget "*-*-linux"] then {
 }
 
 if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug "incdir=${objdir}"]] != "" } {
-    gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+    return -1
 }
 
 
Index: gdb.threads/schedlock.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/schedlock.exp,v
retrieving revision 1.2
diff -u -p -r1.2 schedlock.exp
--- gdb.threads/schedlock.exp	4 Jan 2003 15:37:40 -0000	1.2
+++ gdb.threads/schedlock.exp	4 Jan 2003 23:03:01 -0000
@@ -33,41 +33,7 @@ set testfile "schedlock"
 set srcfile ${testfile}.c
 set binfile ${objdir}/${subdir}/${testfile}
 
-set built_binfile 0
-
-# Default to the usual (only?) -lpthread on GNU/Linux to quiet noise
-if [istarget "*-*-linux*"] then {
-    set possible_libs "-lpthread -lpthreads -lthread"
-} else {
-    set possible_libs "-lpthreads -lpthread -lthread"
-}
-
-set why_msg "unrecognized error"
-foreach lib $possible_libs {
-    set options "debug"
-    lappend options "incdir=${objdir}"
-    lappend options "libs=$lib"
-    set ccout [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $options]
-    switch -regexp -- $ccout {
-	".*no posix threads support.*" {
-	    set why_msg "missing threads include file"
-	    break
-	}
-	".*cannot open -lpthread.*" {
-	    set why_msg "missing runtime threads library"
-	}
-	".*Can't find library for -lpthread.*" {
-	    set why_msg "missing runtime threads library"
-	}
-	{^$} {
-	    pass "successfully compiled posix threads test case"
-	    set built_binfile 1
-	    break
-	}
-    }
-}
-if {$built_binfile == "0"} {
-    unsupported "Couldn't compile ${srcfile}, ${why_msg}"
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug "incdir=${objdir}"]] != "" } {
     return -1
 }
 
Index: lib/gdb.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/lib/gdb.exp,v
retrieving revision 1.30
diff -u -p -r1.30 gdb.exp
--- lib/gdb.exp	16 Dec 2002 19:33:54 -0000	1.30
+++ lib/gdb.exp	4 Jan 2003 23:03:01 -0000
@@ -1,4 +1,5 @@
-# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+# 2002, 2003
 # Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
@@ -1134,7 +1135,7 @@ proc gdb_compile {source dest type optio
     set result [target_compile $source $dest $type $options];
     regsub "\[\r\n\]*$" "$result" "" result;
     regsub "^\[\r\n\]*" "$result" "" result;
-    if { $result != "" } {
+    if { $result != "" && [lsearch $options quiet] == -1} {
 	clone_output "gdb compile failed, $result"
     }
     return $result;
@@ -1150,7 +1151,7 @@ proc gdb_compile_pthreads {source dest t
     foreach lib {-lpthreads -lpthread -lthread} {
         # This kind of wipes out whatever libs the caller may have
         # set.  Or maybe theirs will override ours.  How infelicitous.
-        set options_with_lib [concat $options [list libs=$lib]]
+        set options_with_lib [concat $options [list libs=$lib quiet]]
         set ccout [gdb_compile $source $dest $type $options_with_lib]
         switch -regexp -- $ccout {
             ".*no posix threads support.*" {


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