This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA]: pending breakpoint support [2/3]


Hi Jeff,

This needs some work.

+gdb_test_multiple "b langs0" "break on nonexistent function in langs.exp" {
+	-re "Function \"langs0\" not defined\.$" {
+		pass "break on nonexistent function in langs.exp"
+	}
+	-re "Function \"langs0\" not defined\..*Make breakpoint pending.*" {
+		send_gdb "n\n"
+		pass "break on nonexistent function in langs.exp"
+	}
+	-re "Breakpoint .* (deferred).*" {
+		pass "break on nonexistent function in langs.exp"
+	}
+	-re ".*$gdb_prompt.*" {
+		fail "break on nonexistent function in langs.exp"
+	}
+	timeout { fail "break on nonexistent function in langs.exp" }
+}
 
All the arms of a gdb_test_muliple need to end in "$gdb_prompt $" (or
something) to match all the text of the output string.  A pattern like
"Breakpoint .* (deferred).*" will match some indeterminate amount of
text after "deferred", leading to nondeterministic results for the next
test.

"Make breakpoint pending" does not end in "$gdb_prompt $" but it
should end with something other than ".*" for the same reason.

You don't need a ".*$gdb_prompt $" or a "timeout" case;
gdb_test_multiple automatically provides those.

The '(' and ')' need to be escaped: "\\(deferred\\)".

How come "Breakpoint .* \\(deferred\\).*$gdb_prompt $" is a PASS?
The function does not exist, so shouldn't that be a FAIL?
Or do I not understand your work?

> Index: testsuite/gdb.base/pending.c
> Index: testsuite/gdb.base/pendshr.c

These file need copyright notices.
See break.c for a good copyright notice.

+gdb_test_multiple "break pendfunc1" "set pending breakpoint" {
+     -re ".*Make breakpoint pending.*$" {
+	    gdb_test_multiple "y" "set pending breakpoint" {
+		-re "Breakpoint.*pendfunc1.*pending.*$gdb_prompt $" {
+		pass "set pending breakpoint"
+		}
+	    }
+     }
+}

Same as before, don't put a ".*" at the end of a pattern.

> diff -u -p -r1.7 shlib-call.exp
> --- testsuite/gdb.base/shlib-call.exp	28 Sep 2002 01:12:04 -0000	1.7
> +++ testsuite/gdb.base/shlib-call.exp	21 Jan 2004 02:36:24 -0000

Add 2004 to the list of copyright years.

Michael C


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]