From: Tom de Vries Date: Tue, 6 Apr 2021 08:40:11 +0000 (+0200) Subject: [gdb/testsuite] Fix xfail handling in gdb.threads/gcore-thread.exp X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=043bcbaf818f0f699ff223064f3e46ee29b9cb69;p=binutils-gdb.git [gdb/testsuite] Fix xfail handling in gdb.threads/gcore-thread.exp When running test-case gdb.threads/gcore-thread.exp on openSUSE Tumbleweed, I run into these XFAILs: ... XFAIL: gdb.threads/gcore-thread.exp: clear __stack_user.next XFAIL: gdb.threads/gcore-thread.exp: clear stack_used.next ... Apart from the xfail, the test-case also sets core0file to "": ... -re "No symbol \"${symbol}\" in current context\\.\r\n$gdb_prompt $" { xfail $test # Do not do the verification. set core0file "" } ... After which we run into this FAIL, because gdb_core_cmd fails to load a core file called "": ... (gdb) core ^M No core file now.^M (gdb) FAIL: gdb.threads/gcore-thread.exp: core0file: \ re-load generated corefile ... Fix this FAIL by skipping gdb_core_cmd if the core file is "". Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2021-04-06 Tom de Vries PR testsuite/27691 * gdb.threads/gcore-thread.exp: Don't call gdb_core_cmd with core file "". --- diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 69abe761df9..f5fe029c049 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2021-04-06 Tom de Vries + + PR testsuite/27691 + * gdb.threads/gcore-thread.exp: Don't call gdb_core_cmd with core + file "". + 2021-04-01 Egeyar Bagcioglu * lib/pdtrace.in: Fix obvious typo. diff --git a/gdb/testsuite/gdb.threads/gcore-thread.exp b/gdb/testsuite/gdb.threads/gcore-thread.exp index 2a6ab172849..35c75f7a499 100644 --- a/gdb/testsuite/gdb.threads/gcore-thread.exp +++ b/gdb/testsuite/gdb.threads/gcore-thread.exp @@ -114,11 +114,13 @@ if {"$core0file" != ""} { # Now restart gdb and load the corefile. clean_restart ${testfile} -foreach name { corefile core0file } { with_test_prefix $name { - set core_loaded [gdb_core_cmd [subst $$name] "re-load generated corefile"] +proc load_core { filename } { + global horiz nl + + set core_loaded [gdb_core_cmd $filename "re-load generated corefile"] if { $core_loaded == -1 } { # No use proceeding from here. - continue + return } # FIXME: now what can we test about the thread state? @@ -139,4 +141,14 @@ foreach name { corefile core0file } { with_test_prefix $name { gdb_test "info threads" "\\* ${horiz} thread2 .*${nl}" \ "thread2 is current thread in corefile" -}} +} + +foreach name { corefile core0file } { + set filename [subst $$name] + if { $filename == "" } { + continue + } + with_test_prefix $name { + load_core $filename + } +}