aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2009-04-29 07:51:33 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2009-04-29 07:51:33 +0000
commit484086b7e06069d8bc3dce0dd428d3b9fcf9053b (patch)
tree8d51f43b16ca977ef476479ed0fa190823bea2b7 /gdb/testsuite
parent8e58566ff2d15055f984eed93bb261de97f5d509 (diff)
downloadgdb-484086b7e06069d8bc3dce0dd428d3b9fcf9053b.zip
gdb-484086b7e06069d8bc3dce0dd428d3b9fcf9053b.tar.gz
gdb-484086b7e06069d8bc3dce0dd428d3b9fcf9053b.tar.bz2
gdb/
* macrocmd.c (info_macro_command): Print -Dname=value if LINE is zero. gdb/doc/ * gdb.texinfo (Macros): Note command-line for `info macro'. Append a new part on command-line defined macros. gdb/testsuite/ * gdb.base/macscp.exp: New `options' parameter `-DFROM_COMMANDLINE'. (info_macro): Remova `decimal' declaration. New variable `nonzero'. Replace all uses of `decimal' by `nonzero'. (info macro FROM_COMMANDLINE): New test.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/ChangeLog7
-rw-r--r--gdb/testsuite/gdb.base/macscp.exp18
2 files changed, 20 insertions, 5 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 61aee21..11e4815 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2009-04-29 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * gdb.base/macscp.exp: New `options' parameter `-DFROM_COMMANDLINE'.
+ (info_macro): Remova `decimal' declaration. New variable `nonzero'.
+ Replace all uses of `decimal' by `nonzero'.
+ (info macro FROM_COMMANDLINE): New test.
+
2009-04-27 Tom Tromey <tromey@redhat.com>
* gdb.base/printcmds.exp (test_printf): Test comma operator in [].
diff --git a/gdb/testsuite/gdb.base/macscp.exp b/gdb/testsuite/gdb.base/macscp.exp
index 7086e90..351c0ec 100644
--- a/gdb/testsuite/gdb.base/macscp.exp
+++ b/gdb/testsuite/gdb.base/macscp.exp
@@ -26,7 +26,7 @@ set testfile "macscp"
set objfile ${objdir}/${subdir}/${testfile}.o
set binfile ${objdir}/${subdir}/${testfile}
-set options { debug }
+set options { debug additional_flags=-DFROM_COMMANDLINE=ARG}
get_compiler_info ${binfile}
if [test_compiler_info gcc*] {
@@ -67,19 +67,22 @@ gdb_load ${binfile}
proc info_macro {macro} {
global gdb_prompt
- global decimal
set filepat {macscp[0-9]+\.[ch]}
set definition {}
set location {}
+ # Line number zero is set for macros defined from the compiler command-line.
+ # Such macros are not being tested by this function.
+ set nonzero {[1-9][0-9]*}
+
send_gdb "info macro ${macro}\n"
set debug_me 0
if {$debug_me} {exp_internal 1}
gdb_expect {
- -re "Defined at \[^\r\n\]*(${filepat}):${decimal}\[\r\n\]" {
+ -re "Defined at \[^\r\n\]*(${filepat}):${nonzero}\[\r\n\]" {
# `location' and `definition' should be empty when we see
# this message.
if {[llength $location] == 0 && [llength $definition] == 0} {
@@ -101,7 +104,7 @@ proc info_macro {macro} {
set definition {}
}
}
- -re "^\[\r\n\]* included at \[^\r\n\]*(${filepat}):${decimal}\[\r\n\]" {
+ -re "^\[\r\n\]* included at \[^\r\n\]*(${filepat}):${nonzero}\[\r\n\]" {
# `location' should *not* be empty when we see this
# message. It should have recorded at least the initial
# `Defined at ' message (for definitions) or ` at' message
@@ -114,7 +117,7 @@ proc info_macro {macro} {
set definition {}
}
}
- -re "^\[\r\n\]*at \[^\r\n\]*(${filepat}):${decimal}\[\r\n\]" {
+ -re "^\[\r\n\]*at \[^\r\n\]*(${filepat}):${nonzero}\[\r\n\]" {
# This appears after a `has no definition' message.
# `location' should be empty when we see it.
if {[string compare $definition undefined] == 0 \
@@ -205,6 +208,11 @@ 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}}
+# Assuming the current position inside program by `list' from above.
+gdb_test "info macro FROM_COMMANDLINE" \
+ "Defined at \[^\r\n\]*:0\r\n-DFROM_COMMANDLINE=ARG"
+
+
# Although GDB's macro table structures distinguish between multiple
# #inclusions of the same file, GDB's other structures don't. So the
# `list' command here doesn't reliably select one #inclusion or the