[LTP] [PATCH] open_posix_testsuite/mmap24-2: Relax condition a bit
Hongzhi, Song
hongzhi.song@windriver.com
Wed Oct 24 04:29:56 CEST 2018
On 10/17/2018 04:39 PM, Cyril Hrubis wrote:
> Hi!
>>> Hmm, it's always complicated with these POSIX tests, since we have to
>>> follow the POSIX specification there.
>>>
>>> And the POSIX clearly says that mmap() shall fail with ENOMEM if
>>> MAP_FIXED was specified, and the range [addr,addr+len) exceeds that
>>> allowed for the address space of a process. So I guess that the best
>>> solution here would be limiting the address space with rlimit, so that
>>> we actually happen to hit the ENOMEM instead of EINVAL.
>> I just referred to follow commit which has similar issue.
>>
>> ?????? [commit id: e7bab61882847]
>> ?????? syscalls/mmap15: relax condition a bit
>>
>> ?????? High address is arch specific, and it also occasionally changes
>> ?????? as can be se?????????????????????????????????en in history of this test.
>>
>> ?????? Relax the co?????????????????????????????????ndition and accept both ENOMEM and
>> EINVAL
>> ?????? as expected outcome.
>> ?????? ?????????????????????????????????
>> ?????? Fixes: #390
> The difference is that the mmap15 is a Linux specific test, we can
> accept any behavior we think is reasonable.
>
>> Mips returns EINVAL and never returns ENOMEM if [addr+len]
>> ??exceeds task size. I think it's has no relation with rlimit.
> While the POSIX tests are written to test the conformity of the
> implementation, we have to stick to POSIX there and actually it seems to
> require that ENOMEM has to be returned if [addr,addr+len) exceeds that
> allowed for the address space of a process, so I guess that mips is not
> strictly conforming to POSIX here,
Hi Cyril,
The POSIX specification says:
"If MAP_FIXED is set, mmap() may return MAP_FAILED and set errno to
[EINVAL]."
[http://pubs.opengroup.org/onlinepubs/9699919799/functions/mmap.html]
So I think the mips kernel remains POSIX compliant.
I hope to send V2 with commit log explaining this clearly.
With the patch, the testcase will support more Arches.
--Hongzhi
> however that is not a reason to
> change the test. And in this case it's not a big deal and we can
> possilby just ignore the failure in the same way we do for a few rwlock
> tests where Linux behavior differs from the one mandated by POSIX.
>
More information about the ltp
mailing list