All of lore.kernel.org
 help / color / mirror / Atom feed
From: Petr Vorel <pvorel@suse.cz>
To: Cyril Hrubis <chrubis@suse.cz>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH] doc: Add basic shell test description
Date: Wed, 12 Nov 2025 20:00:04 +0100	[thread overview]
Message-ID: <20251112190004.GB144447@pevik> (raw)
In-Reply-To: <aRSlUmoktYACJRV6@yuki.lan>

> > > +Shell API overview
> > > +------------------
> > > +
> > > +First lines of the shell test should be a shebang, a license, and copyrights.
> > > +
> > > +.. code-block:: shell
> > > +
> > > +   #!/bin/sh
> > > +   # SPDX-License-Identifier: GPL-2.0-or-later
> > > +   # Copyright 2099 Foo Bar <foo.bar@email.com>
> > > +
> > > +A documentation comment block formatted in ReStructuredText should follow right
> > > +after these lines. This comment is parsed and exported into the LTP
> > > +documentation at https://linux-test-project.readthedocs.io/en/latest/users/test_catalog.html

> > +1. Great, I did not realize it's ok to use at least #doc part for normal shell
> > tests (i.e. these without shell loader).

> That should indeed work fine. You can have a doc block in old shell test
> and it would be picked up by the metadata parser.

Yeah, it works (I tested it). I looked into metadata/parse.sh and it's due it
searches for both *.c and *.sh without checking what library they use. Which is
good (no side effects so far and we can include docs). I'll probably convert
some of network tests docs into docparse to update the test catalog.

> > > +
> > > +.. code-block:: shell
> > > +
> > > +   # ---
> > > +   # doc
> > > +   # Test for a foo bar.
> > > +   #
> > > +   # This test is testing foo by checking that bar is doing xyz.
> > > +   # ---
> > > +

> > I would frankly link the old API doc (and link :master:`testcases/lib/tst_test.sh`)...
> > https://github.com/linux-test-project/ltp/blob/master/doc/old/Shell-Test-API.asciidoc

> > > +The shell loader test library uses the C test library internally by parsing a

Could we instead "the C test library" just use link:
:doc:`../developers/api_c_tests`

NOTE: I would avoid it, but you can set a custom text via <>
https://www.sphinx-doc.org/en/master/usage/referencing.html


> > > +special JSON formatted comment and initializing it accordingly. The JSON format
> > > +is nearly 1:1 serialization of the C tst_test structure into a JSON. The

And "C tst_test structure" as:
:ref:`struct tst_test`

The shell loader test library uses the :doc:`../developers/api_c_tests`
internally by parsing a special JSON formatted comment and initializing it
accordingly.  The JSON format is nearly 1:1 serialization of the :ref:`struct
tst_test` into a JSON. The environment must be always preset even when it's
empty.

> > > +environment must be always preset even when it's empty.

> > And here would have subtitle "shell loader test library".  Why? It'd be good to
> > admit we have plain shell (which uses tst_test.sh) and shell loader. Of course,
> > shell loader could be a mentioned first, then old API:

> Generally I would like to avoid mixing documentation for different APIs.
> I'm afraid that would make things unnecessarily confusing.

OK, no problem (I did not get you want to document only Shell Loader). But
hiding the fact that vast majority of the shell tests use tst_test.h is not
optimal (it might be confusing for new users).

Also, Shell Loader does not have useful functions from tst_test.h, e.g.
ROD(), EXPECT_PASS(). But ok, nobody needs them so far (although ROD() could be
useful) and I would also ask people to use C API if possible.

Could we decide that tst_test.sh becomes "legacy/old" shell API which could be
on a separate page doc/developers/legacy_api_shell_tests.rst which would just
mention it's deprecated and linked:
https://github.com/linux-test-project/ltp/blob/master/doc/old/Shell-Test-API.asciidoc
(AI would convert it quickly to RST, but I'd be ok to keep just a link.)

And test.h becomes undocumented "legacy legacy" shell API (test.h is still used
by few tests).

Kind regards,
Petr

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

  reply	other threads:[~2025-11-12 19:00 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-10 10:24 [LTP] [PATCH] doc: Add basic shell test description Cyril Hrubis
2025-11-12 12:50 ` Avinesh Kumar
2025-11-12 14:06 ` Petr Vorel
2025-11-12 15:18   ` Cyril Hrubis
2025-11-12 19:00     ` Petr Vorel [this message]
2025-11-13 10:21       ` Cyril Hrubis
2025-11-14  9:22         ` Petr Vorel
2025-11-12 14:19 ` Petr Vorel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251112190004.GB144447@pevik \
    --to=pvorel@suse.cz \
    --cc=chrubis@suse.cz \
    --cc=ltp@lists.linux.it \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.