Re: [PATCH] selftests: openat2: Fix testing failure for O_LARGEFILE flag

Baolin Wang
2021-08-24T05:25:38Z

Hi Shuah,

On 2021/8/24 3:23, Shuah Khan wrote:
> Hi Baolin,
>
> On 8/22/21 8:40 PM, Baolin Wang wrote:
>> Hi Shuah,
>>
>> On 2021/7/28 20:32, Baolin Wang wrote:
>>> Hi,
>>>
>>>> When running the openat2 test suite on ARM64 platform, we got below
>>>> failure,
>>>> since the definition of the O_LARGEFILE is different on ARM64. So we
>>>> can
>>>> set the correct O_LARGEFILE definition on ARM64 to fix this issue.
>>>
>>> Sorry, I forgot to copy the failure log:
>>>
>
> Please cc everybody get_maintainers.pl suggests. You are missing
> key reviewers for this change.
>
> Adding Christian Brauner and Aleksa Sarai to the thread.

Thanks.

>
>>> # openat2 unexpectedly returned #
>>> 3['/lkp/benchmarks/kernel_selftests/tools/testing/selftests/openat2']
>>> with 208000 (!= 208000)
>
> Not sure I understand this. 208000 (!= 208000) look sthe same to me.

These are not the error message, just show the fd flags. The error is it
should return -22 (-EINVAL) for this test case, but it returns 3 which
indicates a successful openat2() calling.

>>> not ok 102 openat2 with incompatible flags (O_PATH | O_LARGEFILE)
>>> fails with -22 (Invalid argument)
>>>
>>>>
>>>> Signed-off-by: Baolin Wang <baolin.wang@linux.alibaba.com>
>>
>> Could you apply this patch if no objection from your side? Thanks.
>>
>
> Ideally this define should come from an include file.
>
> Christian, Aleksa,
>
> Can you review this patch and let me know if this approach looks right.
>
>>>> ---
>>>>   tools/testing/selftests/openat2/openat2_test.c | 4 ++++
>>>>   1 file changed, 4 insertions(+)
>>>>
>>>> diff --git a/tools/testing/selftests/openat2/openat2_test.c
>>>> b/tools/testing/selftests/openat2/openat2_test.c
>>>> index d7ec1e7..1bddbe9 100644
>>>> --- a/tools/testing/selftests/openat2/openat2_test.c
>>>> +++ b/tools/testing/selftests/openat2/openat2_test.c
>>>> @@ -22,7 +22,11 @@
>>>>    * XXX: This is wrong on {mips, parisc, powerpc, sparc}.
>>>>    */
>>>>   #undef    O_LARGEFILE
>>>> +#ifdef __aarch64__
>>>> +#define    O_LARGEFILE 0x20000
>>>> +#else
>>>>   #define    O_LARGEFILE 0x8000
>>>> +#endif
>>>>   struct open_how_ext {
>>>>       struct open_how inner;
>>>>
>>
>
> thanks,
> -- Shuah