This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Harden gdb.base/coredump-filter.exp
- From: Luis Machado <lgustavo at codesourcery dot com>
- To: Yao Qi <qiyaoltc at gmail dot com>
- Cc: "'gdb-patches at sourceware dot org'" <gdb-patches at sourceware dot org>
- Date: Fri, 10 Apr 2015 10:11:08 -0300
- Subject: Re: [PATCH] Harden gdb.base/coredump-filter.exp
- Authentication-results: sourceware.org; auth=none
- References: <5526D4A1 dot 9090203 at mentor dot com> <86pp7cv23w dot fsf at gmail dot com>
- Reply-to: Luis Machado <lgustavo at codesourcery dot com>
On 04/10/2015 05:06 AM, Yao Qi wrote:
Luis Gustavo <luis_gustavo@mentor.com> writes:
diff --git a/gdb/testsuite/gdb.base/coredump-filter.exp b/gdb/testsuite/gdb.base/coredump-filter.exp
index f3203be..4c6c6ed 100644
--- a/gdb/testsuite/gdb.base/coredump-filter.exp
+++ b/gdb/testsuite/gdb.base/coredump-filter.exp
@@ -15,6 +15,12 @@
standard_testfile
+# This test is Linux-only.
+if ![istarget *-*-linux*] then {
+ unsupported "coredump-filter.exp"
+ return -1
+}
+
if { [prepare_for_testing "failed to prepare" $testfile $srcfile debug] } {
untested "could not compile test program"
return -1
@@ -146,6 +152,11 @@ gdb_test_multiple "info inferiors" "getting inferior pid" {
-re "process \($decimal\).*\r\n$gdb_prompt $" {
set infpid $expect_out(1,string)
}
+ -re "Remote target.*$gdb_prompt $" {
+ # If the target does not provide PID information (like QEMU), just bail
FAOD, QEMU here is QEMU user mode, isn't?
Yes, this is user mode. I suppose a system mode QEMU running gdbserver
would work just fine. I made that information explicit in this updated
version.
+ # out as the rest of the test may rely on it, giving spurious failures.
+ return -1
+ }
}
We can just bail out if infpid is still "" after this gdb_test_multiple.
That still gives me one FAIL due to not matching what was expected. Did
you mean a check inside this gdb_test_multiple?
2015-04-10 Luis Machado <lgustavo@codesourcery.com>
gdb/testsuite/
* gdb.base/coredump-filter.exp: Restrict test to Linux systems only.
Handle the case of targets that do not provide PID information.
---
gdb/testsuite/gdb.base/coredump-filter.exp | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/gdb/testsuite/gdb.base/coredump-filter.exp b/gdb/testsuite/gdb.base/coredump-filter.exp
index f3203be..8350981 100644
--- a/gdb/testsuite/gdb.base/coredump-filter.exp
+++ b/gdb/testsuite/gdb.base/coredump-filter.exp
@@ -15,6 +15,12 @@
standard_testfile
+# This test is Linux-only.
+if ![istarget *-*-linux*] then {
+ untested "coredump-filter.exp"
+ return -1
+}
+
if { [prepare_for_testing "failed to prepare" $testfile $srcfile debug] } {
untested "could not compile test program"
return -1
@@ -146,6 +152,12 @@ gdb_test_multiple "info inferiors" "getting inferior pid" {
-re "process \($decimal\).*\r\n$gdb_prompt $" {
set infpid $expect_out(1,string)
}
+ -re "Remote target.*$gdb_prompt $" {
+ # If the target does not provide PID information (like usermode QEMU),
+ # just bail out as the rest of the test may rely on it, giving spurious
+ # failures.
+ return -1
+ }
}
# Get the main function's address.
--
1.9.1