public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] explicitly test for stderr in gdb.base/dprintf.exp
@ 2022-09-13 12:08 Bruno Larsen
  0 siblings, 0 replies; only message in thread
From: Bruno Larsen @ 2022-09-13 12:08 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=3f5bbc3e2075ef5061a815c73fdc277218489f22

commit 3f5bbc3e2075ef5061a815c73fdc277218489f22
Author: Bruno Larsen <blarsen@redhat.com>
Date:   Wed Jul 20 16:44:36 2022 -0300

    explicitly test for stderr in gdb.base/dprintf.exp
    
    Not all compilers add stderr debug information when compiling a
    program. Clang, for instance, prefers to add nothing from standard
    libraries and let an external debug package have this information.
    Because of this, gdb.base/dprintf.exp was failing when GDB attempted to
    use dprintf as a call to fprintf(stderrr, ...), like this:
    
     (gdb) PASS: gdb.base/dprintf.exp: call: fprintf: set dprintf style to call
     continue
     Continuing.
     kickoff 1234
     also to stderr 1234
     'stderr' has unknown type; cast it to its declared type
     (gdb) FAIL: gdb.base/dprintf.exp: call: fprintf: 1st dprintf (timeout)
    
    To avoid this false positive, we explicitly test to see if
    the compiler has added information about stderr at all, and abort
    testing dprintf as an fprintf call if it is unavailable.

Diff:
---
 gdb/testsuite/gdb.base/dprintf.exp | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/gdb/testsuite/gdb.base/dprintf.exp b/gdb/testsuite/gdb.base/dprintf.exp
index 0b209c02a62..7b89a0db9bd 100644
--- a/gdb/testsuite/gdb.base/dprintf.exp
+++ b/gdb/testsuite/gdb.base/dprintf.exp
@@ -111,6 +111,16 @@ proc test_call {} {
 	test_dprintf "At foo entry.*arg=1235, g=2222\r\n" "2nd dprintf"
     }
 
+    gdb_test_multiple "print stderr" "stderr symbol check" {
+	-re "\\'stderr\\' has unknown type.*" {
+	    untested "No information available for stderr, exiting early"
+	    return
+	}
+	-re "\\\$1.*" {
+	    pass $gdb_test_name
+	}
+    }
+
     with_test_prefix "fprintf" {
 	restart

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-09-13 12:08 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-13 12:08 [binutils-gdb] explicitly test for stderr in gdb.base/dprintf.exp Bruno Larsen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).