* gdb.base/macscp.exp (info_macro): Return undefined if undefined.
authorPierre Muller <muller@sourceware.org>
Sat, 30 May 2009 07:58:42 +0000 (07:58 +0000)
committerPierre Muller <muller@sourceware.org>
Sat, 30 May 2009 07:58:42 +0000 (07:58 +0000)
(check_macro): Return 1 if undefined.
If first test fails, check if macro debug information is available,
and report unsupported test if no macro information is found.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/macscp.exp

index 01ee306b5bf6b1adb973564886dd3ae8f7e6b77d..cedabf108b14cf4f456885b7570bc121780ff1e9 100644 (file)
@@ -1,3 +1,10 @@
+2009-05-30  Pierre Muller  <muller@ics.u-strasbg.fr>
+
+       * gdb.base/macscp.exp (info_macro): Return undefined if undefined.
+       (check_macro): Return 1 if undefined.
+       If first test fails, check if macro debug information is available,
+       and report unsupported test if no macro information is found.
+
 2009-05-29  Doug Evans  <dje@google.com>
 
        * gdb.threads/hand-call-in-threads.exp: New.
index 351c0eca7c6642a88b69660db000241045e939e0..55c4d31db5f4b4710768e3ae1710cd17d2a1e42b 100644 (file)
@@ -155,7 +155,7 @@ proc info_macro {macro} {
     switch -exact -- $definition {
         no-macro-info { return no-macro-info }
         timeout { return timeout }
-        undefined -
+        undefined { return undefined }
         default {
             if {[llength $location] >= 1} {
                 return [concat $location [list $definition]]
@@ -181,6 +181,10 @@ proc check_macro {macro expected where} {
                 xfail "executable includes no macro debugging information"
                 return 1
             }
+           undefined {
+               fail "info macro $macro $where (undefined)"
+               return 1
+           }
             timeout {
                 fail "info macro $macro $where (timeout)"
             }
@@ -202,8 +206,28 @@ proc list_and_check_macro {func macro expected} {
 
 
 if {[list_and_check_macro main WHERE {macscp1.c {before macscp1_3}}]} {
-    return 0
+    global verbose
+    set macro_support "unknown"
+    send_gdb "info source\n"
+    gdb_test_multiple "info source" "Test macro information"  {
+       -re "Includes preprocessor macro info\..*$gdb_prompt $" {
+           set macro_support 1
+           verbose "Source has macro information"
+       }
+       -re "Does not include preprocessor macro info\..*$gdb_prompt $" {
+           set macro_support 0
+           verbose "Source has no macro information"
+       }
+       default {
+           warning "couldn't check macro support (no valid response)."
+       }
+    }
+    if {$macro_support == 0} {
+       unsupported "Skipping test because debug information does not include macro information."
+       return 0
+    }
 }
 list_and_check_macro macscp2_2 WHERE {macscp2.h macscp1.c {before macscp2_2}}
 list_and_check_macro macscp3_2 WHERE {macscp3.h macscp1.c {before macscp3_2}}