[PATCH v2 0/3] Testsuite fixes for mips64

James Cowgill james410 at cowgill.org.uk
Fri Aug 12 10:02:14 UTC 2016


Hi,

On 11/08/16 22:08, Dmitry V. Levin wrote:
> On Thu, Aug 11, 2016 at 04:33:00PM +0000, James Cowgill wrote:
>> These patches fix most of the testsuite failures which happen on 64-bit mips
>> (n32 and n64). None of the failures were bugs in strace, but rather bugs in
>> the testsuite.
>>
>> An example of the failures can be seen here:
>> https://buildd.debian.org/status/fetch.php?pkg=strace&arch=mips64el&ver=4.12-3&stamp=1468671031
> 
> Merged, thanks!

Thanks a lot!

>> The only test which still seems to fail on my machine is the "pwritev" test,
>> but I believe that's caused by a kernel bug (which I haven't tracked down yet).
> 
> Does this patch changes something with the test result?
> (also add #include <errno.h> to make it buildable)
> 
> --- a/tests/pwritev.c
> +++ b/tests/pwritev.c
> @@ -113,6 +113,7 @@ main(void)
>  		unsigned int n = LEN + 1 - i;
>  		fputs("pwritev(0, ", stdout);
>  		print_iovec(iov + i, n, LEN - i);
> +		errno = 0;
>  		rc = pwritev(0, iov + i, n, offset + LEN + i);
>  		printf(", %u, %lld) = %ld %s (%m)\n",
>  		       n, (long long) offset + LEN + i, rc, errno2name());

So before it was failing with:
10c10
< pwritev(0, [{iov_base="\1\2\3\4\5\6\7", iov_len=7},
{iov_base="\2\3\4\5\6\7", iov_len=6}, {iov_base="\3\4\5\6\7",
iov_len=5}, {iov_base="\4\5\6\7", iov_len=4}, {iov_base="\5\6\7",
iov_len=3}, {iov_base="\6\7",
 iov_len=2}, {iov_base="\7", iov_len=1}, 0xfff0fb8000], 8,
1004211379570065144) = 27 EFAULT (Bad address)
---
> pwritev(0, [{iov_base="\1\2\3\4\5\6\7", iov_len=7},
{iov_base="\2\3\4\5\6\7", iov_len=6}, {iov_base="\3\4\5\6\7",
iov_len=5}, {iov_base="\4\5\6\7", iov_len=4}, {iov_base="\5\6\7",
iov_len=3}, {iov_base="\6\7",
 iov_len=2}, {iov_base="\7", iov_len=1}, 0xfff0fb8000], 8,
1004211379570065144) = 27
pwritev.test: failed test: ../strace -e trace=pwritev -a22 -s7 ./pwritev
output mismatch

After adding errno = 0 it fails with:
unknown errno 0

How did you know that was where my error was :) I thought it was a
kernel bug since I think the pwritev call should fail with EFAULT. I
also noticed that the call only succeeds if the process is being ptraced.

James

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20160812/0cd838b4/attachment.bin>


More information about the Strace-devel mailing list