Skip to content

Commit

Permalink
Refactor LTP library guidelines documentation
Browse files Browse the repository at this point in the history
The LTP library guidelines documentation has been refactored,
simplifying the overall structure, cleaning up the make check error
messages which were moved into the test writing guidelines.
  • Loading branch information
acerv committed Mar 19, 2024
1 parent a33d2b3 commit abeac0c
Showing 1 changed file with 40 additions and 2 deletions.
42 changes: 40 additions & 2 deletions doc_new/developers/ltp_library.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,42 @@
.. SPDX-License-Identifier: GPL-2.0-or-later
LTP Library development
=======================
LTP Library guidelines
======================

General Rules
-------------

When we extend library API, we need to apply the same general rules that we use
when writing tests, plus:

#. LTP library tests must go inside ``lib/newlib_tests`` directory
#. LTP documentation has to be updated according to API changes

Shell API
---------

API source code is in ``tst_test.sh``, ``tst_security.sh`` and ``tst_net.sh``
(all in ``testcases/lib`` directory).

Changes in the shell API should not introduce uncommon dependencies
(use basic commands installed everywhere by default).

Shell libraries
~~~~~~~~~~~~~~~

Aside from shell API libraries in ``testcases/lib``, it's worth putting
common code for a group of tests into a shell library. The filename
should end with ``_lib.sh`` and the library should load ``tst_test.sh`` or
``tst_net.sh``.

Shell libraries should have conditional expansion for ``TST_SETUP`` or
``TST_CLEANUP``, to avoid surprises when test specific setup/cleanup function is
redefined by shell library.

.. code-block:: bash
# ipsec_lib.sh
# SPDX-License-Identifier: GPL-2.0-or-later
TST_SETUP="${TST_SETUP:-ipsec_lib_setup}"
...
. tst_test.sh

0 comments on commit abeac0c

Please sign in to comment.