binutils-gdb/gdb/testsuite/lib
Tom de Vries 60b6ede845 [gdb/testsuite] Add -early pattern flag for gdb_test_multiple
Proc gdb_test_multiple builds up and executes a gdb_expect expression with
pattern/action clauses.  The clauses are either implicit (added by
gdb_test_multiple) or explicit (passed via the gdb_test_multiple parameter
user_code).

However, there are a few implicit clauses which are inserted before the
explicit ones, making sure those take precedence.

Add an -early pattern flag for a gdb_test_multiple user_code clause to specify
that the clause needs to be inserted before any implicit clause.

Using this pattern flag, we can f.i. setup a kfail for an assertion failure
<assert> during gdb_continue_to_breakpoint by the rewrite:
...
gdb_continue_to_breakpoint <msg> <pattern>
...
into:
...
set breakpoint_pattern "(?:Breakpoint|Temporary breakpoint) .* (at|in)"
gdb_test_multiple "continue" "continue to breakpoint: <msg>"  {
   -early -re "internal-error: <assert>" {
       setup_kfail gdb/nnnnn "*-*-*"
       exp_continue
   }
   -re "$breakpoint_pattern <pattern>\r\n$gdb_prompt $" {
       pass $gdb_test_name
   }
}

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2019-10-30  Tom de Vries  <tdevries@suse.de>

	* lib/gdb.exp (gdb_test_multiple): Handle -early pattern flag.

Change-Id: I376c636b0812be52e7137634b1a4f50bf2b999b6
2019-10-30 17:41:03 +01:00
..
ada.exp [gdb/testsuite] Fix ada tests with -fPIE/-pie 2019-10-10 11:51:34 +02:00
append_gdb_boards_dir.exp
build-piece.exp
cache.exp
cl_util.c
cl_util.h
compile-support.exp
compiler.c [gdb] Fix more typos in comments (2) 2019-10-26 09:55:32 +02:00
compiler.cc [gdb] Fix more typos in comments (2) 2019-10-26 09:55:32 +02:00
completion-support.exp Add check for readline support to more GDB tab-completion tests. 2019-08-04 14:26:39 -07:00
cp-support.exp
d-support.exp
data-structures.exp
dtrace.exp
dwarf.exp
fortran.exp [gdb/testsuite] Fix gdb.fortran/info-types.exp regexp 2019-08-29 14:43:11 +02:00
future.exp
gdb-guile.exp
gdb-python.exp
gdb-utils.exp Introduce metadata style 2019-10-01 15:12:40 -06:00
gdb.exp [gdb/testsuite] Add -early pattern flag for gdb_test_multiple 2019-10-30 17:41:03 +01:00
gdbserver-support.exp [gdb/testsuite] Fix gdb_target_cmd 2019-09-19 01:14:19 +02:00
gen-perf-test.exp
go.exp
memory.exp
mi-support.exp [gdb/testsuite] Test skip_libstdcxx_probe_tests in mi-catch-cpp-exceptions.exp 2019-07-25 18:39:31 +02:00
objc.exp
opencl_hostapp.c
opencl_kernel.cl
opencl.exp
pascal.exp [gdb/testsuite] Clean up stale exec in gdb_compile_pascal 2019-08-20 17:18:09 +02:00
pdtrace.in
perftest.exp
prelink-support.exp
prompt.exp
range-stepping-support.exp
read1.c [gdb/testsuite] Work around tcl bug in libsegfault.exp with check-read1 2019-07-30 16:15:46 +02:00
rust-support.exp
selftest-support.exp
set_unbuffered_mode.c
trace-support.exp
tuiterm.exp Remove the TUI execution info window 2019-08-16 14:17:36 -06:00
unbuffer_output.c
valgrind.exp