[PATCH 1/2] gdb/testsuite: Introduce compiler_supports_ctf_debug guard function

Andrew Burgess andrew.burgess@embecosm.com
Tue Oct 8 09:39:00 GMT 2019


Most versions of GCC in the wild don't support CTF debug format right
now, so, rather than attempting to compile the tests and failing each
time, this patch introduces a guard function to check if the compiler
supports CTF.  If we don't have CTF support then the CTF tests are
skipped.

This patch only updates 3 of the 4 CTF tests, the fourth will be
handled in the next patch.

gdb/testsuite/ChangeLog:

	* gdb.base/ctf-constvars.exp: Skip test if CTF is not supported in
	the compiler.  Clean up header comment a little.
	* gdb.base/ctf-ptype.exp: Likewise.
	* gdb.base/ctf-whatis.exp: Likewise.
	* lib/gdb.exp (compiler_supports_ctf_debug): New proc.
---
 gdb/testsuite/ChangeLog                  |  8 ++++++++
 gdb/testsuite/gdb.base/ctf-constvars.exp | 20 ++++++++++----------
 gdb/testsuite/gdb.base/ctf-ptype.exp     | 10 +++++-----
 gdb/testsuite/gdb.base/ctf-whatis.exp    | 10 +++++-----
 gdb/testsuite/lib/gdb.exp                | 11 +++++++++++
 5 files changed, 39 insertions(+), 20 deletions(-)

diff --git a/gdb/testsuite/gdb.base/ctf-constvars.exp b/gdb/testsuite/gdb.base/ctf-constvars.exp
index 4a81a94ddb4..58c0badc0c2 100644
--- a/gdb/testsuite/gdb.base/ctf-constvars.exp
+++ b/gdb/testsuite/gdb.base/ctf-constvars.exp
@@ -18,20 +18,20 @@
 #
 # This file is part of the gdb testsuite
 #
-# tests for const variables
-#           const pointers to vars
-#           pointers to const variables
-#           const pointers to const vars
-# with mixed types
+# Tests for: const variables,
+#            const pointers to vars
+#            pointers to const variables
+#            const pointers to const vars
+# with mixed types.
 
-#
-# test running programs
-#
-# -gt generates full-fledged CTF.
+if ![compiler_supports_ctf_debug] {
+    return 0
+}
 
 standard_testfile .c
-set opts "additional_flags=-gt"
 
+# Using `-gt` generates full-fledged CTF debug information.
+set opts "additional_flags=-gt"
 if { [prepare_for_testing "failed to prepare" ${testfile} \
 	  [list $srcfile] [list $opts nowarnings]] } {
     return 0
diff --git a/gdb/testsuite/gdb.base/ctf-ptype.exp b/gdb/testsuite/gdb.base/ctf-ptype.exp
index 9f545824224..172f6d13a18 100644
--- a/gdb/testsuite/gdb.base/ctf-ptype.exp
+++ b/gdb/testsuite/gdb.base/ctf-ptype.exp
@@ -15,14 +15,14 @@
 
 # This file is a subset of ptype.exp written by Rob Savoye. (rob@cygnus.com)
 
-#
-# test running programs
-#
-# -gt generates full-fledged CTF.
+if ![compiler_supports_ctf_debug] {
+    return 0
+}
 
 standard_testfile .c
-set opts "additional_flags=-gt"
 
+# Using `-gt` generates full-fledged CTF debug information.
+set opts "additional_flags=-gt"
 if { [prepare_for_testing "failed to prepare" ${testfile} \
 	  [list $srcfile] [list $opts nowarnings]] } {
     return 0
diff --git a/gdb/testsuite/gdb.base/ctf-whatis.exp b/gdb/testsuite/gdb.base/ctf-whatis.exp
index 3f26fc326e3..377eeb3314f 100644
--- a/gdb/testsuite/gdb.base/ctf-whatis.exp
+++ b/gdb/testsuite/gdb.base/ctf-whatis.exp
@@ -15,14 +15,14 @@
 
 # This file is a subset of whatis.exp written by Rob Savoye. (rob@cygnus.com)
 
-#
-# test running programs
-#
-# -gt generates full-fledged CTF.
+if ![compiler_supports_ctf_debug] {
+    return 0
+}
 
 standard_testfile .c
-set opts "additional_flags=-gt"
 
+# Using `-gt` generates full-fledged CTF debug information.
+set opts "additional_flags=-gt"
 if { [prepare_for_testing "failed to prepare" ${testfile} \
           [list $srcfile] [list $opts nowarnings]] } {
     return 0
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 50db45d1b14..72aab43228b 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -6733,5 +6733,16 @@ proc cmp_file_string { file str msg } {
     }
 }
 
+# Does the compiler support CTF debug output using '-gt' compiler
+# flag?
+gdb_caching_proc compiler_supports_ctf_debug {
+    verbose -log "APB: Got here."
+    return [gdb_can_simple_compile ctfdebug {
+	int main () {
+	    return 0;
+	}
+    } executable "additional_flags=-gt"]
+}
+
 # Always load compatibility stuff.
 load_lib future.exp
-- 
2.14.5



More information about the Gdb-patches mailing list