[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