This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH v5 3/4] Add base 'enable/disable invalid location range' tests
- From: Pedro Alves <palves at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 26 Oct 2017 16:25:34 +0100
- Subject: [PATCH v5 3/4] Add base 'enable/disable invalid location range' tests
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=palves at redhat dot com
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 92E48C04AC4D
- References: <1509031535-17778-1-git-send-email-palves@redhat.com>
This adds tests that exercise the "bad breakpoint number" paths.
Specifically:
- malformed ranges
- use of explicit 0 as bp/loc number.
- inverted ranges
I'm adding this as a baseline to improve. This shows that there's a
lot of inconsistency in GDB's output (e.g., "bad" vs "Bad").
Also, IMO, the "0-0" and inverted range cases should be loud errors.
That and more will all be addressed in the next patch.
gdb/testsuite/ChangeLog:
yyyy-mm-dd Pedro Alves <palves@redhat.com>
* gdb.cp/ena-dis-br-range.exp: Add tests.
---
gdb/testsuite/gdb.cp/ena-dis-br-range.exp | 38 +++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/gdb/testsuite/gdb.cp/ena-dis-br-range.exp b/gdb/testsuite/gdb.cp/ena-dis-br-range.exp
index a17ee46..0ebc45f 100644
--- a/gdb/testsuite/gdb.cp/ena-dis-br-range.exp
+++ b/gdb/testsuite/gdb.cp/ena-dis-br-range.exp
@@ -132,3 +132,41 @@ gdb_test_no_output "disable 2.8-6"
gdb_test "info break" [make_info_breakpoint_reply_re y y y y y y] \
"breakpoint info disable 2.8-6"
+
+# Check that invalid/open ranges are handled correctly.
+with_test_prefix "open range" {
+ gdb_test "disable -" "bad breakpoint number at or near: '-'"
+ gdb_test "disable -1" "bad breakpoint number at or near: '-1'"
+ gdb_test "disable 1-" "bad breakpoint number at or near: '1-'"
+ gdb_test "disable 1.-2" "Bad breakpoint location number '-2'"
+ gdb_test "disable 1.2-" "bad breakpoint number at or near: '2-'"
+ gdb_test "disable 1.-2-3" "Bad breakpoint location number '-2'"
+ gdb_test "disable 1-2-3" "bad breakpoint number at or near: '1-2-3'"
+}
+
+with_test_prefix "dangling period" {
+ gdb_test "disable 2." "bad breakpoint number at or near: '2.'"
+ gdb_test "disable .2" "bad breakpoint number at or near: '.2'"
+ gdb_test "disable 2.3.4" "bad breakpoint number at or near '2.3.4'"
+}
+
+# Check that 0s are handled correctly.
+with_test_prefix "zero" {
+ gdb_test "disable 0" "bad breakpoint number at or near '0'"
+ gdb_test "disable 0.0" "Bad breakpoint number '0.0'"
+ gdb_test "disable 0.1" "Bad breakpoint number '0.1'"
+ gdb_test "disable 0.1-2" "Bad breakpoint number '0.1-2'"
+ gdb_test "disable 2.0" "bad breakpoint number at or near '2.0'"
+
+ # These should really fail...
+ gdb_test_no_output "disable 2.0-0"
+ gdb_test_no_output "enable 2.0-0"
+
+ gdb_test "disable 2.0-1" "Bad breakpoint location number '0'"
+
+ # Likewise, should fail.
+ gdb_test_no_output "disable 2.1-0"
+}
+
+gdb_test "info break" [make_info_breakpoint_reply_re y y y y y y] \
+ "breakpoint info after invalids"
--
2.5.5