public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
* [LTP] [PATCH v3] Remove TODO
@ 2025-10-13 14:20 Andrea Cervesato
  2025-10-13 15:38 ` Petr Vorel
  0 siblings, 1 reply; 3+ messages in thread
From: Andrea Cervesato @ 2025-10-13 14:20 UTC (permalink / raw)
  To: ltp

From: Andrea Cervesato <andrea.cervesato@suse.com>

TODO file is not updated and it talks about goals we already reached via
new LTP documentation. In general, it contains generic and random topics
which none is updating anymore, so it's better to remove it in order to
create less confusion for new comers.

Instead, we create a todo list in the new documentation, providing a
more clear intention of what are the current LTP goals.

Acked-by: Petr Vorel <pvorel@suse.cz>
Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
---
Changes in v3:
- fix typo
- update command to generate test with old API
- add kirk link in TODO
- shell loader reference
- Link to v2: https://lore.kernel.org/r/20251013-remove_todo-v2-1-d0a46ad14e34@suse.com

Changes in v2:
- add doc/users/todo.rst section
- Link to v1: https://lore.kernel.org/r/20251006-remove_todo-v1-1-5bab5f6f77f5@suse.com
---
 TODO               | 39 ----------------------------
 doc/index.rst      |  4 +++
 doc/users/todo.rst | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 78 insertions(+), 39 deletions(-)

diff --git a/TODO b/TODO
deleted file mode 100644
index fe0a3ab9b..000000000
--- a/TODO
+++ /dev/null
@@ -1,39 +0,0 @@
-LTP TODO
---------
-
-
-Write more syscall tests
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-Syscalls and new syscall flags are added to Linux kernel each development cycle
-and LTP still falls behind. Unfortunately there is no single place that would
-store comprehensive list of syscalls, but there are a few places to look at:
-
-One of the options would be looking at changes in man-pages git[1] in man2/
-directory to find out newly documented functionality.
-
-Another good source of information are kernel pages in LWN[2] weekly
-editions.
-
-Then there is linux-api mailing list[3] where changes in kernel userspace API
-should be discussed.
-
-[1] http://git.kernel.org/cgit/docs/man-pages/man-pages.git
-[2] http://lwn.net
-[3] http://dir.gmane.org/gmane.linux.kernel.api
-
-
-Rewrite old and add new controller testcases
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-We already started working on this with rewriting cgroup_fj testcases and
-newly added pids testcases. Have a look at testcases/kernel/controllers/.
-
-
-Shell tests cleanups
-~~~~~~~~~~~~~~~~~~~~
-
-There are numerous testcases written in shell that does not follow single style
-and use the broken-by-design binaries from tools/apicmds. These should be
-cleaned up and fixed to use the test.sh test library. These include most of
-tests in testcases/commands/ for example.
diff --git a/doc/index.rst b/doc/index.rst
index acd16cdbf..6cfe21e8d 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -13,6 +13,7 @@
    users/supported_systems
    users/stats
    users/test_catalog
+   users/todo
 
 .. toctree::
    :maxdepth: 3
@@ -59,6 +60,9 @@ For users
 :doc:`users/test_catalog`
    The LTP test catalog
 
+:doc:`users/todo`
+   List of tasks maintainers are working on
+
 For developers
 --------------
 
diff --git a/doc/users/todo.rst b/doc/users/todo.rst
new file mode 100644
index 000000000..2484eaf32
--- /dev/null
+++ b/doc/users/todo.rst
@@ -0,0 +1,74 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+
+List of ongoing tasks
+=====================
+
+This is a comprehensive list of tasks where LTP maintainers are currently
+working on. Priorities might change over time, but these are the most important
+points which are currently being achieved.
+
+Fade out old tests runner
+-------------------------
+
+``runltp`` script is old and unmaintaned. We are slowly shifting to
+`kirk <https://github.com/linux-test-project/kirk>`_, that will be our official
+tests runner in the next future.
+
+kirk provides support for remote testing via Qemu, SSH, LTX, parallel
+execution and much more.
+
+Test new syscalls
+-----------------
+
+Syscalls and new syscalls flags are added to Linux kernel each development
+cycle and LTP still falls behind. Unfortunately there is no single place that
+would store comprehensive list of syscalls, but there are a few places to look
+at:
+
+- `man-pages repository <http://git.kernel.org/cgit/docs/man-pages/man-pages.git>`_
+  or the ``man2`` directory, where it's possible to find newly documented
+  functionalities.
+- `LWN <http://lwn.net>`_ weekly editions.
+- `linux-api mailing list <https://lore.kernel.org/linux-api/>`_ where
+  changes in kernel userspace API are discussed.
+- `LTP Github issues <https://github.com/linux-test-project/ltp/issues>`_
+
+Rewrite old API tests
+---------------------
+
+LTP has a long story and, at certain point of its development, new API were
+introduced to make kernel testing easier and more efficient. This happened when
+lots of tests were still using old, messy API.
+
+Some of these tests have been converted to the new API, but this process is
+still ongoing for many others. To have an overview of the tests using old API,
+please run the following command inside the LTP root folder:
+
+.. code-block:: bash
+
+        git --no-pager grep 'include "test\.h"' testcases/ | cut -d: -f1
+
+Fade out shell scripts
+----------------------
+
+LTP was initially thought as a generic framework for running tests with both
+shell and plain-C languages. Even if writing tests in shell script might seem
+easy, the reality is that debugging and maintaining certain test cases is
+difficult and slow down the whole validation process. This is particularly
+visible for cgroup tests, since shell doesn't add enough control over race
+conditions.
+
+LTP maintainers are working on converting shell scripts to plain-C tests, in
+order to reduce the impact that shell scripts might have on the overall kernel
+testing.
+
+For a complete list of shell tests, please run the following command inside the
+LTP root folder:
+
+.. code-block:: bash
+
+        git --no-pager grep -l -e '^\. .*_lib\.sh' -e '^\. .*test.sh'
+
+LTP also provides a shell loader implementation for plain-C tests using
+``tst_run_script`` features. Please take a look at the
+:doc:`LTP API <../developers/api_c_tests>`.

---
base-commit: 79b7f212b3e56f1a4c33af3f61f66502b574cf1e
change-id: 20251006-remove_todo-c29a585e8b01

Best regards,
-- 
Andrea Cervesato <andrea.cervesato@suse.com>


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [LTP] [PATCH v3] Remove TODO
  2025-10-13 14:20 [LTP] [PATCH v3] Remove TODO Andrea Cervesato
@ 2025-10-13 15:38 ` Petr Vorel
  2025-10-14  7:02   ` Andrea Cervesato via ltp
  0 siblings, 1 reply; 3+ messages in thread
From: Petr Vorel @ 2025-10-13 15:38 UTC (permalink / raw)
  To: Andrea Cervesato; +Cc: ltp

Hi Andrea,

once more, now Cc the list. I'm sorry for the noise.

Generally LGTM, notes below.

Reviewed-by: Petr Vorel <pvorel@suse.cz>

> TODO file is not updated and it talks about goals we already reached via
> new LTP documentation. In general, it contains generic and random topics
> which none is updating anymore, so it's better to remove it in order to
> create less confusion for new comers.

nit: s/new comers/newcomers/

> Instead, we create a todo list in the new documentation, providing a
> more clear intention of what are the current LTP goals.

> Acked-by: Petr Vorel <pvorel@suse.cz>
> Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
> ---
> Changes in v3:
> - fix typo
> - update command to generate test with old API
> - add kirk link in TODO
> - shell loader reference
> - Link to v2: https://lore.kernel.org/r/20251013-remove_todo-v2-1-d0a46ad14e34@suse.com

> Changes in v2:
> - add doc/users/todo.rst section
> - Link to v1: https://lore.kernel.org/r/20251006-remove_todo-v1-1-5bab5f6f77f5@suse.com
> ---
>  TODO               | 39 ----------------------------
>  doc/index.rst      |  4 +++
>  doc/users/todo.rst | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 78 insertions(+), 39 deletions(-)

...
> diff --git a/doc/users/todo.rst b/doc/users/todo.rst
> new file mode 100644
> index 000000000..2484eaf32
> --- /dev/null
> +++ b/doc/users/todo.rst

IMHO this TODO page is for new LTP developers to see ideas what to work on,
right?  Thinking about it twice, IMHO this should be in doc/developers/.
At least normal LTP users (testers) don't bother what we want to develop.

> @@ -0,0 +1,74 @@
> +.. SPDX-License-Identifier: GPL-2.0-or-later
> +
> +List of ongoing tasks
> +=====================
> +
> +This is a comprehensive list of tasks where LTP maintainers are currently
> +working on. Priorities might change over time, but these are the most important
> +points which are currently being achieved.
> +
> +Fade out old tests runner
> +-------------------------
> +
> +``runltp`` script is old and unmaintaned. We are slowly shifting to
> +`kirk <https://github.com/linux-test-project/kirk>`_, that will be our official
> +tests runner in the next future.
> +
> +kirk provides support for remote testing via Qemu, SSH, LTX, parallel
> +execution and much more.

IMHO this TODO page is for new LTP developers to see ideas what to work on,
right? Wouldn't be more useful to put it to the page which people using LTP will
be reading? Maybe one of these:

https://linux-test-project.readthedocs.io/en/latest/users/quick_start.html
https://linux-test-project.readthedocs.io/en/latest/users/setup_tests.html

> +
> +Test new syscalls
> +-----------------
> +
> +Syscalls and new syscalls flags are added to Linux kernel each development
> +cycle and LTP still falls behind. Unfortunately there is no single place that
> +would store comprehensive list of syscalls, but there are a few places to look
> +at:
> +
> +- `man-pages repository <http://git.kernel.org/cgit/docs/man-pages/man-pages.git>`_
> +  or the ``man2`` directory, where it's possible to find newly documented
> +  functionalities.
> +- `LWN <http://lwn.net>`_ weekly editions.
> +- `linux-api mailing list <https://lore.kernel.org/linux-api/>`_ where
> +  changes in kernel userspace API are discussed.
> +- `LTP Github issues <https://github.com/linux-test-project/ltp/issues>`_
> +
> +Rewrite old API tests
> +---------------------
> +
> +LTP has a long story and, at certain point of its development, new API were
> +introduced to make kernel testing easier and more efficient. This happened when
> +lots of tests were still using old, messy API.
> +
> +Some of these tests have been converted to the new API, but this process is
> +still ongoing for many others. To have an overview of the tests using old API,
> +please run the following command inside the LTP root folder:
> +
> +.. code-block:: bash
> +
> +        git --no-pager grep 'include "test\.h"' testcases/ | cut -d: -f1

I quite like your first version which showed number of lines. But if you want to
just list of the old API tests, why not use git grep -l ?

git --no-pager grep -l 'include "test\.h"' testcases/

> +
> +Fade out shell scripts
> +----------------------
> +
> +LTP was initially thought as a generic framework for running tests with both
> +shell and plain-C languages. Even if writing tests in shell script might seem
> +easy, the reality is that debugging and maintaining certain test cases is
> +difficult and slow down the whole validation process. This is particularly
> +visible for cgroup tests, since shell doesn't add enough control over race
> +conditions.

That reminds me Cyril's saying "it's easy to write portable shell *interpreter*
than portable shell *scripts*. :).

> +
> +LTP maintainers are working on converting shell scripts to plain-C tests, in
> +order to reduce the impact that shell scripts might have on the overall kernel
> +testing.
> +
> +For a complete list of shell tests, please run the following command inside the
> +LTP root folder:
> +
> +.. code-block:: bash
> +
> +        git --no-pager grep -l -e '^\. .*_lib\.sh' -e '^\. .*test.sh'
> +
> +LTP also provides a shell loader implementation for plain-C tests using
> +``tst_run_script`` features. Please take a look at the

That's tst_run_shell. Could you please use link to the source?

:master:`testcases/lib/tst_run_shell.c`

> +:doc:`LTP API <../developers/api_c_tests>`.
For shell loader are useful only struct tst_test tags in JSON comments.
Maybe point directly to struct tst_test?

Maybe the most descriptive are tests in testcases/lib/tests/.

:master:`testcases/lib/tst_run_shell.c` features. Please take a look at the
:ref:`struct tst_test` and examples in :master:`testcases/lib/tests/`.

(NOTE: besides testcases/lib/tst_run_shell.c there is also
testcases/lib/tst_run.sh and testcases/lib/tst_env.sh but we can ignore it in
this short info.  If we really convert most of the shell tests to shell runner,
we should write doc in a separate page. In that case we could leave
doc/old/Shell-Test-API.asciidoc unconverted).

Kind regards,
Petr

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [LTP] [PATCH v3] Remove TODO
  2025-10-13 15:38 ` Petr Vorel
@ 2025-10-14  7:02   ` Andrea Cervesato via ltp
  0 siblings, 0 replies; 3+ messages in thread
From: Andrea Cervesato via ltp @ 2025-10-14  7:02 UTC (permalink / raw)
  To: Petr Vorel, Andrea Cervesato; +Cc: ltp

Hi Petr,

On Mon Oct 13, 2025 at 5:38 PM CEST, Petr Vorel wrote:
> Hi Andrea,
>
> once more, now Cc the list. I'm sorry for the noise.
>
> Generally LGTM, notes below.
>
> Reviewed-by: Petr Vorel <pvorel@suse.cz>
>
>> TODO file is not updated and it talks about goals we already reached via
>> new LTP documentation. In general, it contains generic and random topics
>> which none is updating anymore, so it's better to remove it in order to
>> create less confusion for new comers.
>
> nit: s/new comers/newcomers/
>
>> Instead, we create a todo list in the new documentation, providing a
>> more clear intention of what are the current LTP goals.
>
>> Acked-by: Petr Vorel <pvorel@suse.cz>
>> Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
>> ---
>> Changes in v3:
>> - fix typo
>> - update command to generate test with old API
>> - add kirk link in TODO
>> - shell loader reference
>> - Link to v2: https://lore.kernel.org/r/20251013-remove_todo-v2-1-d0a46ad14e34@suse.com
>
>> Changes in v2:
>> - add doc/users/todo.rst section
>> - Link to v1: https://lore.kernel.org/r/20251006-remove_todo-v1-1-5bab5f6f77f5@suse.com
>> ---
>>  TODO               | 39 ----------------------------
>>  doc/index.rst      |  4 +++
>>  doc/users/todo.rst | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>  3 files changed, 78 insertions(+), 39 deletions(-)
>
> ...
>> diff --git a/doc/users/todo.rst b/doc/users/todo.rst
>> new file mode 100644
>> index 000000000..2484eaf32
>> --- /dev/null
>> +++ b/doc/users/todo.rst
>
> IMHO this TODO page is for new LTP developers to see ideas what to work on,
> right?  Thinking about it twice, IMHO this should be in doc/developers/.
> At least normal LTP users (testers) don't bother what we want to develop.

Probably better yes, I will move it to developers.

>
>> @@ -0,0 +1,74 @@
>> +.. SPDX-License-Identifier: GPL-2.0-or-later
>> +
>> +List of ongoing tasks
>> +=====================
>> +
>> +This is a comprehensive list of tasks where LTP maintainers are currently
>> +working on. Priorities might change over time, but these are the most important
>> +points which are currently being achieved.
>> +
>> +Fade out old tests runner
>> +-------------------------
>> +
>> +``runltp`` script is old and unmaintaned. We are slowly shifting to
>> +`kirk <https://github.com/linux-test-project/kirk>`_, that will be our official
>> +tests runner in the next future.
>> +
>> +kirk provides support for remote testing via Qemu, SSH, LTX, parallel
>> +execution and much more.
>
> IMHO this TODO page is for new LTP developers to see ideas what to work on,
> right? Wouldn't be more useful to put it to the page which people using LTP will
> be reading? Maybe one of these:
>
> https://linux-test-project.readthedocs.io/en/latest/users/quick_start.html
> https://linux-test-project.readthedocs.io/en/latest/users/setup_tests.html

I don't know about this, it makes sense to have a separate place for
this list. TODO/quickstart/setup are different things.

>
>> +
>> +Test new syscalls
>> +-----------------
>> +
>> +Syscalls and new syscalls flags are added to Linux kernel each development
>> +cycle and LTP still falls behind. Unfortunately there is no single place that
>> +would store comprehensive list of syscalls, but there are a few places to look
>> +at:
>> +
>> +- `man-pages repository <http://git.kernel.org/cgit/docs/man-pages/man-pages.git>`_
>> +  or the ``man2`` directory, where it's possible to find newly documented
>> +  functionalities.
>> +- `LWN <http://lwn.net>`_ weekly editions.
>> +- `linux-api mailing list <https://lore.kernel.org/linux-api/>`_ where
>> +  changes in kernel userspace API are discussed.
>> +- `LTP Github issues <https://github.com/linux-test-project/ltp/issues>`_
>> +
>> +Rewrite old API tests
>> +---------------------
>> +
>> +LTP has a long story and, at certain point of its development, new API were
>> +introduced to make kernel testing easier and more efficient. This happened when
>> +lots of tests were still using old, messy API.
>> +
>> +Some of these tests have been converted to the new API, but this process is
>> +still ongoing for many others. To have an overview of the tests using old API,
>> +please run the following command inside the LTP root folder:
>> +
>> +.. code-block:: bash
>> +
>> +        git --no-pager grep 'include "test\.h"' testcases/ | cut -d: -f1
>
> I quite like your first version which showed number of lines. But if you want to
> just list of the old API tests, why not use git grep -l ?
>
> git --no-pager grep -l 'include "test\.h"' testcases/
>
>> +
>> +Fade out shell scripts
>> +----------------------
>> +
>> +LTP was initially thought as a generic framework for running tests with both
>> +shell and plain-C languages. Even if writing tests in shell script might seem
>> +easy, the reality is that debugging and maintaining certain test cases is
>> +difficult and slow down the whole validation process. This is particularly
>> +visible for cgroup tests, since shell doesn't add enough control over race
>> +conditions.
>
> That reminds me Cyril's saying "it's easy to write portable shell *interpreter*
> than portable shell *scripts*. :).
>
>> +
>> +LTP maintainers are working on converting shell scripts to plain-C tests, in
>> +order to reduce the impact that shell scripts might have on the overall kernel
>> +testing.
>> +
>> +For a complete list of shell tests, please run the following command inside the
>> +LTP root folder:
>> +
>> +.. code-block:: bash
>> +
>> +        git --no-pager grep -l -e '^\. .*_lib\.sh' -e '^\. .*test.sh'
>> +
>> +LTP also provides a shell loader implementation for plain-C tests using
>> +``tst_run_script`` features. Please take a look at the
>
> That's tst_run_shell. Could you please use link to the source?
>
> :master:`testcases/lib/tst_run_shell.c`
>
>> +:doc:`LTP API <../developers/api_c_tests>`.
> For shell loader are useful only struct tst_test tags in JSON comments.
> Maybe point directly to struct tst_test?
>
> Maybe the most descriptive are tests in testcases/lib/tests/.
>
> :master:`testcases/lib/tst_run_shell.c` features. Please take a look at the
> :ref:`struct tst_test` and examples in :master:`testcases/lib/tests/`.
>
> (NOTE: besides testcases/lib/tst_run_shell.c there is also
> testcases/lib/tst_run.sh and testcases/lib/tst_env.sh but we can ignore it in
> this short info.  If we really convert most of the shell tests to shell runner,
> we should write doc in a separate page. In that case we could leave
> doc/old/Shell-Test-API.asciidoc unconverted).

I will just skip the C API reference and point to the tst_run_shell
file.
>
> Kind regards,
> Petr


Kind regards,

-- 
Andrea Cervesato
SUSE QE Automation Engineer Linux
andrea.cervesato@suse.com


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-10-14  7:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-13 14:20 [LTP] [PATCH v3] Remove TODO Andrea Cervesato
2025-10-13 15:38 ` Petr Vorel
2025-10-14  7:02   ` Andrea Cervesato via ltp

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox