[PATCH libdrm] amdgpu/basic_tests.c: check for fork

Koenig, Christian Christian.Koenig at amd.com
Mon Mar 11 17:40:28 UTC 2019


Am 11.03.19 um 18:17 schrieb Fabrice Fontaine:
> OK, then will you accept a patch that disable amdgpu test if fork is
> not available or a patch that disable all tests (for example through a
> --disable-test-programs option)?

No, we really need to test the correct behavior of fork() with userptrs.

So how do we spawn a child process with uclibc-ng?

I mean it is one of the most fundamental Unix functions, isn't it?

Christian.

>   Currently, the user can only disable
> the cairo tests so the whole libdrm package fails to statically build
> with uclibc-ng on ARM cortex M4
> (http://autobuild.buildroot.org/?reason=libdrm-2.4.97).
>
> Best Regards,
>
> Fabrice
>
> Le lun. 11 mars 2019 à 17:40, Christian König
> <ckoenig.leichtzumerken at gmail.com> a écrit :
>> Well NAK, cause that obviously would break the test if fork() isn't
>> available.
>>
>> We certainly don't have any platform where we support amdgpu and fork()
>> is not available, so that change is rather pointless in the first place.
>>
>> Christian.
>>
>> Am 10.03.19 um 10:44 schrieb Fabrice Fontaine:
>>> amdgpu test program use fork since
>>> https://cgit.freedesktop.org/mesa/drm/commit/tests/amdgpu/basic_tests.c?id=736ef0b61cab55378202c5f49d91799cc2b99091
>>>
>>> However, this function is not always available so add a check for it in
>>> configure.ac and use it in tests/amdgpu/basic_tests.c
>>>
>>> Fixes:
>>>    - http://autobuild.buildroot.org/results/8d6194982c1080e173fcef8212fb06e6dc275d58
>>>
>>> Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
>>> ---
>>>    configure.ac               | 2 ++
>>>    tests/amdgpu/basic_tests.c | 4 ++++
>>>    2 files changed, 6 insertions(+)
>>>
>>> diff --git a/configure.ac b/configure.ac
>>> index d72e84ad..6effb9a2 100644
>>> --- a/configure.ac
>>> +++ b/configure.ac
>>> @@ -193,6 +193,8 @@ AC_CHECK_FUNCS([open_memstream],
>>>                   [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 1, [Have open_memstream()])],
>>>                   [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 0)])
>>>
>>> +AC_CHECK_FUNCS([fork])
>>> +
>>>    dnl Use lots of warning flags with with gcc and compatible compilers
>>>
>>>    dnl Note: if you change the following variable, the cache is automatically
>>> diff --git a/tests/amdgpu/basic_tests.c b/tests/amdgpu/basic_tests.c
>>> index dbae4d53..c32a1351 100644
>>> --- a/tests/amdgpu/basic_tests.c
>>> +++ b/tests/amdgpu/basic_tests.c
>>> @@ -1646,10 +1646,12 @@ static void amdgpu_userptr_test(void)
>>>        while (j++ < sdma_write_length)
>>>                pm4[i++] = 0xdeadbeaf;
>>>
>>> +#ifdef HAVE_FORK
>>>        if (!fork()) {
>>>                pm4[0] = 0x0;
>>>                exit(0);
>>>        }
>>> +#endif
>>>
>>>        amdgpu_test_exec_cs_helper(context_handle,
>>>                                   AMDGPU_HW_IP_DMA, 0,
>>> @@ -1675,7 +1677,9 @@ static void amdgpu_userptr_test(void)
>>>        r = amdgpu_cs_ctx_free(context_handle);
>>>        CU_ASSERT_EQUAL(r, 0);
>>>
>>> +#ifdef HAVE_FORK
>>>        wait(NULL);
>>> +#endif
>>>    }
>>>
>>>    static void amdgpu_sync_dependency_test(void)



More information about the dri-devel mailing list