aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/ChangeLog7
-rw-r--r--gdb/testsuite/gdb.base/macscp.exp70
-rw-r--r--gdb/testsuite/gdb.base/macscp1.c7
3 files changed, 84 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 60adacf..d4d0811 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,12 @@
2008-09-30 Tom Tromey <tromey@redhat.com>
+ * gdb.base/macscp.exp: Add completion tests.
+ * gdb.base/macscp1.c (FIFTY_SEVEN): New macro.
+ (TWENTY_THREE): Likewise.
+ (FORTY_EIGHT): Likewise.
+
+2008-09-30 Tom Tromey <tromey@redhat.com>
+
* gdb.base/macscp.exp: Change "M" to "MACRO_TO_EXPAND"
everywhere.
* gdb.base/macscp1.c (MACRO_TO_EXPAND): Rename from "M".
diff --git a/gdb/testsuite/gdb.base/macscp.exp b/gdb/testsuite/gdb.base/macscp.exp
index 152e006..2a43a28 100644
--- a/gdb/testsuite/gdb.base/macscp.exp
+++ b/gdb/testsuite/gdb.base/macscp.exp
@@ -480,6 +480,76 @@ gdb_test "macro undef" \
"usage: macro undef.*" \
"macro undef with no arguments"
+# Completion tests.
+
+# The macro FIFTY_SEVEN is in scope at this point.
+send_gdb "p FIFTY_\t"
+gdb_expect {
+ -re "^p FIFTY_SEVEN $"\
+ { send_gdb "\n"
+ gdb_expect {
+ -re "^.* = 57.*$gdb_prompt $"\
+ { pass "complete 'p FIFTY_SEVEN'"}
+ -re ".*$gdb_prompt $" { fail "complete 'p FIFTY_SEVEN'"}
+ timeout {fail "(timeout) complete 'p FIFTY_SEVEN'"}
+ }
+ }
+ -re ".*$gdb_prompt $" { fail "complete 'p FIFTY_SEVEN'" }
+ timeout { fail "(timeout) complete 'p FIFTY_SEVEN' 2" }
+ }
+
+# The macro TWENTY_THREE is not in scope.
+send_gdb "p TWENTY_\t"
+gdb_expect {
+ -re "^p TWENTY_\\\x07$"\
+ { send_gdb "\n"
+ gdb_expect {
+ -re "No symbol \"TWENTY_\" in current context\\..*$gdb_prompt $"\
+ { pass "complete 'p TWENTY_'"}
+ -re ".*$gdb_prompt $" { fail "complete 'p TWENTY_'"}
+ timeout {fail "(timeout) complete 'p TWENTY_'"}
+ }
+ }
+ -re ".*$gdb_prompt $" { fail "complete 'p TWENTY_'" }
+ timeout { fail "(timeout) complete 'p TWENTY_' 2" }
+ }
+
+# The macro FORTY_EIGHT was undefined and thus is not in scope.
+send_gdb "p FORTY_\t"
+gdb_expect {
+ -re "^p FORTY_\\\x07$"\
+ { send_gdb "\n"
+ gdb_expect {
+ -re "No symbol \"FORTY_\" in current context\\..*$gdb_prompt $"\
+ { pass "complete 'p FORTY_'"}
+ -re ".*$gdb_prompt $" { fail "complete 'p FORTY_'"}
+ timeout {fail "(timeout) complete 'p FORTY_'"}
+ }
+ }
+ -re ".*$gdb_prompt $" { fail "complete 'p FORTY_'" }
+ timeout { fail "(timeout) complete 'p FORTY_' 2" }
+ }
+
+gdb_test "macro define TWENTY_THREE 25" \
+ "" \
+ "defining TWENTY_THREE"
+
+# User-defined macros are always in scope.
+send_gdb "p TWENTY_\t"
+gdb_expect {
+ -re "^p TWENTY_THREE $"\
+ { send_gdb "\n"
+ gdb_expect {
+ -re "^.* = 25.*$gdb_prompt $"\
+ { pass "complete 'p TWENTY_THREE'"}
+ -re ".*$gdb_prompt $" { fail "complete 'p TWENTY_THREE'"}
+ timeout {fail "(timeout) complete 'p TWENTY_THREE'"}
+ }
+ }
+ -re ".*$gdb_prompt $" { fail "complete 'p TWENTY_THREE'" }
+ timeout { fail "(timeout) complete 'p TWENTY_THREE' 2" }
+ }
+
# Splicing tests.
gdb_test "macro expand SPLICE(x, y)" \
diff --git a/gdb/testsuite/gdb.base/macscp1.c b/gdb/testsuite/gdb.base/macscp1.c
index 0be78c6..40f1217 100644
--- a/gdb/testsuite/gdb.base/macscp1.c
+++ b/gdb/testsuite/gdb.base/macscp1.c
@@ -5,6 +5,11 @@
#define STRINGIFY(a) INNER_STRINGIFY(a)
#define INNER_STRINGIFY(a) #a
+#define FIFTY_SEVEN 57
+
+#define FORTY_EIGHT 48
+#undef FORTY_EIGHT
+
/* A macro named UNTIL_<func> is #defined until just before the
definition of the function <func>.
@@ -75,6 +80,8 @@ macscp_expr (void)
foo = 2;
}
+#define TWENTY_THREE 23
+
int
main (int argc, char **argv)
{