diff mbox series

[v2] docs/kselftest: add more guidelines for adding new tests

Message ID 20220521073651.4191910-1-usama.anjum@collabora.com (mailing list archive)
State New
Headers show
Series [v2] docs/kselftest: add more guidelines for adding new tests | expand

Commit Message

Muhammad Usama Anjum May 21, 2022, 7:36 a.m. UTC
Improve and add instructions to add new tests. Add build commands to
test before sending the new test patch.

Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
---
Changes in v2:
- Updated commit message
- Removed dependence of this patch from other patch
- Updated instructions
---
 Documentation/dev-tools/kselftest.rst | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

Comments

Muhammad Usama Anjum June 7, 2022, 12:59 p.m. UTC | #1
Reminder!

On 5/21/22 12:36 PM, Muhammad Usama Anjum wrote:
> Improve and add instructions to add new tests. Add build commands to
> test before sending the new test patch.
> 
> Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
> ---
> Changes in v2:
> - Updated commit message
> - Removed dependence of this patch from other patch
> - Updated instructions
> ---
>  Documentation/dev-tools/kselftest.rst | 27 ++++++++++++++++++++++++++-
>  1 file changed, 26 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/dev-tools/kselftest.rst b/Documentation/dev-tools/kselftest.rst
> index a833ecf12fbc1..ee6467ca8293f 100644
> --- a/Documentation/dev-tools/kselftest.rst
> +++ b/Documentation/dev-tools/kselftest.rst
> @@ -208,6 +208,14 @@ In general, the rules for selftests are
>  Contributing new tests (details)
>  ================================
>  
> + * In your Makefile, use facilities from lib.mk by including it instead of
> +   reinventing the wheel. Specify flags and binaries generation flags on
> +   need basis before including lib.mk. ::
> +
> +    CFLAGS = $(KHDR_INCLUDES)
> +    TEST_GEN_PROGS := close_range_test
> +    include ../lib.mk
> +
>   * Use TEST_GEN_XXX if such binaries or files are generated during
>     compiling.
>  
> @@ -230,13 +238,30 @@ Contributing new tests (details)
>   * First use the headers inside the kernel source and/or git repo, and then the
>     system headers.  Headers for the kernel release as opposed to headers
>     installed by the distro on the system should be the primary focus to be able
> -   to find regressions.
> +   to find regressions. Use KHDR_INCLUDES in Makefile to include headers from
> +   the kernel source.
>  
>   * If a test needs specific kernel config options enabled, add a config file in
>     the test directory to enable them.
>  
>     e.g: tools/testing/selftests/android/config
>  
> + * Create a .gitignore file inside test directory and add all generated objects
> +   in it.
> +
> + * Add new test name in TARGETS in selftests/Makefile::
> +
> +    TARGETS += android
> +
> + * All changes should pass::
> +
> +    kselftest-{all,install,clean,gen_tar}
> +    kselftest-{all,install,clean,gen_tar} O=abo_path
> +    kselftest-{all,install,clean,gen_tar} O=rel_path
> +    make -C tools/testing/selftests {all,install,clean,gen_tar}
> +    make -C tools/testing/selftests {all,install,clean,gen_tar} O=abs_path
> +    make -C tools/testing/selftests {all,install,clean,gen_tar} O=rel_path
> +
>  Test Module
>  ===========
>
Shuah Khan June 7, 2022, 9:41 p.m. UTC | #2
On 6/7/22 6:59 AM, Muhammad Usama Anjum wrote:
> Reminder!
> 

Remember to avoid top posting.

> On 5/21/22 12:36 PM, Muhammad Usama Anjum wrote:
>> Improve and add instructions to add new tests. Add build commands to
>> test before sending the new test patch.
>>
>> Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
>> ---
>> Changes in v2:
>> - Updated commit message
>> - Removed dependence of this patch from other patch
>> - Updated instructions
>> ---
>>   Documentation/dev-tools/kselftest.rst | 27 ++++++++++++++++++++++++++-
>>   1 file changed, 26 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/dev-tools/kselftest.rst b/Documentation/dev-tools/kselftest.rst
>> index a833ecf12fbc1..ee6467ca8293f 100644
>> --- a/Documentation/dev-tools/kselftest.rst
>> +++ b/Documentation/dev-tools/kselftest.rst
>> @@ -208,6 +208,14 @@ In general, the rules for selftests are
>>   Contributing new tests (details)
>>   ================================
>>   
>> + * In your Makefile, use facilities from lib.mk by including it instead of
>> +   reinventing the wheel. Specify flags and binaries generation flags on
>> +   need basis before including lib.mk. ::
>> +
>> +    CFLAGS = $(KHDR_INCLUDES)
>> +    TEST_GEN_PROGS := close_range_test
>> +    include ../lib.mk
>> +
>>    * Use TEST_GEN_XXX if such binaries or files are generated during
>>      compiling.
>>   
>> @@ -230,13 +238,30 @@ Contributing new tests (details)
>>    * First use the headers inside the kernel source and/or git repo, and then the
>>      system headers.  Headers for the kernel release as opposed to headers
>>      installed by the distro on the system should be the primary focus to be able
>> -   to find regressions.
>> +   to find regressions. Use KHDR_INCLUDES in Makefile to include headers from
>> +   the kernel source.
>>   
>>    * If a test needs specific kernel config options enabled, add a config file in
>>      the test directory to enable them.
>>   
>>      e.g: tools/testing/selftests/android/config
>>   
>> + * Create a .gitignore file inside test directory and add all generated objects
>> +   in it.
>> +
>> + * Add new test name in TARGETS in selftests/Makefile::
>> +
>> +    TARGETS += android
>> +
>> + * All changes should pass::
>> +
>> +    kselftest-{all,install,clean,gen_tar}
>> +    kselftest-{all,install,clean,gen_tar} O=abo_path
>> +    kselftest-{all,install,clean,gen_tar} O=rel_path
>> +    make -C tools/testing/selftests {all,install,clean,gen_tar}
>> +    make -C tools/testing/selftests {all,install,clean,gen_tar} O=abs_path
>> +    make -C tools/testing/selftests {all,install,clean,gen_tar} O=rel_path
>> +
>>   Test Module
>>   ===========
>>   
> 

The change looks good to me. I am catching up on patch backlog after the
merge window and vacation. I can take this through kselftest or if it
goes through doc tree - here is my

Reviewed-by: Shuah Khan <skhan@linuxfoundation.org>

thanks,
-- Shuah
Muhammad Usama Anjum June 21, 2022, 2:33 p.m. UTC | #3
On 6/8/22 2:41 AM, Shuah Khan wrote:
> 
> The change looks good to me. I am catching up on patch backlog after the
> merge window and vacation. I can take this through kselftest or if it
> goes through doc tree - here is my
> 
> Reviewed-by: Shuah Khan <skhan@linuxfoundation.org>
> 
This patch hasn't been accepted yet.

> thanks,
> -- Shuah
Jonathan Corbet June 24, 2022, 7:49 p.m. UTC | #4
Muhammad Usama Anjum <usama.anjum@collabora.com> writes:

> On 6/8/22 2:41 AM, Shuah Khan wrote:
>> 
>> The change looks good to me. I am catching up on patch backlog after the
>> merge window and vacation. I can take this through kselftest or if it
>> goes through doc tree - here is my
>> 
>> Reviewed-by: Shuah Khan <skhan@linuxfoundation.org>
>> 
> This patch hasn't been accepted yet.

I've applied it now, thanks.

jon
Shuah Khan June 24, 2022, 10:39 p.m. UTC | #5
On 6/24/22 1:49 PM, Jonathan Corbet wrote:
> Muhammad Usama Anjum <usama.anjum@collabora.com> writes:
> 
>> On 6/8/22 2:41 AM, Shuah Khan wrote:
>>>
>>> The change looks good to me. I am catching up on patch backlog after the
>>> merge window and vacation. I can take this through kselftest or if it
>>> goes through doc tree - here is my
>>>
>>> Reviewed-by: Shuah Khan <skhan@linuxfoundation.org>
>>>
>> This patch hasn't been accepted yet.
> 
> I've applied it now, thanks.
> 

Thank you Jon. Kind of slipped through my backlog.

thanks,
-- Shuah
Muhammad Usama Anjum June 25, 2022, 4:32 a.m. UTC | #6
On 6/25/22 12:49 AM, Jonathan Corbet wrote:
> Muhammad Usama Anjum <usama.anjum@collabora.com> writes:
> 
>> On 6/8/22 2:41 AM, Shuah Khan wrote:
>>>
>>> The change looks good to me. I am catching up on patch backlog after the
>>> merge window and vacation. I can take this through kselftest or if it
>>> goes through doc tree - here is my
>>>
>>> Reviewed-by: Shuah Khan <skhan@linuxfoundation.org>
>>>
>> This patch hasn't been accepted yet.
> 
> I've applied it now, thanks.
Thanks,

> 
> jon
diff mbox series

Patch

diff --git a/Documentation/dev-tools/kselftest.rst b/Documentation/dev-tools/kselftest.rst
index a833ecf12fbc1..ee6467ca8293f 100644
--- a/Documentation/dev-tools/kselftest.rst
+++ b/Documentation/dev-tools/kselftest.rst
@@ -208,6 +208,14 @@  In general, the rules for selftests are
 Contributing new tests (details)
 ================================
 
+ * In your Makefile, use facilities from lib.mk by including it instead of
+   reinventing the wheel. Specify flags and binaries generation flags on
+   need basis before including lib.mk. ::
+
+    CFLAGS = $(KHDR_INCLUDES)
+    TEST_GEN_PROGS := close_range_test
+    include ../lib.mk
+
  * Use TEST_GEN_XXX if such binaries or files are generated during
    compiling.
 
@@ -230,13 +238,30 @@  Contributing new tests (details)
  * First use the headers inside the kernel source and/or git repo, and then the
    system headers.  Headers for the kernel release as opposed to headers
    installed by the distro on the system should be the primary focus to be able
-   to find regressions.
+   to find regressions. Use KHDR_INCLUDES in Makefile to include headers from
+   the kernel source.
 
  * If a test needs specific kernel config options enabled, add a config file in
    the test directory to enable them.
 
    e.g: tools/testing/selftests/android/config
 
+ * Create a .gitignore file inside test directory and add all generated objects
+   in it.
+
+ * Add new test name in TARGETS in selftests/Makefile::
+
+    TARGETS += android
+
+ * All changes should pass::
+
+    kselftest-{all,install,clean,gen_tar}
+    kselftest-{all,install,clean,gen_tar} O=abo_path
+    kselftest-{all,install,clean,gen_tar} O=rel_path
+    make -C tools/testing/selftests {all,install,clean,gen_tar}
+    make -C tools/testing/selftests {all,install,clean,gen_tar} O=abs_path
+    make -C tools/testing/selftests {all,install,clean,gen_tar} O=rel_path
+
 Test Module
 ===========