Harden gdb.base/coredump-filter.exp

Message ID 5527CBEC.6030002@codesourcery.com
State New, archived
Headers

Commit Message

Luis Machado April 10, 2015, 1:11 p.m. UTC
  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?
  

Comments

Yao Qi April 10, 2015, 3:16 p.m. UTC | #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?
>

No, you are right.  I thought something different.

>
> 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.

It is OK to me.
  
Luis Machado April 13, 2015, 5:50 p.m. UTC | #2
On 04/10/2015 12:16 PM, Yao Qi wrote:
>>>
>>> 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?
>>
>
> No, you are right.  I thought something different.
>
>>
>> 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.
>
> It is OK to me.
>

Thanks. I've pushed this now.
  

Patch

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