diff mbox series

[07/10] Refactor LTP library guidelines documentation

Message ID 20240320-new_website-v1-7-79b603c8aea1@suse.com
State Superseded
Headers show
Series New LTP documentation | expand

Commit Message

Andrea Cervesato March 20, 2024, 4:20 p.m. UTC
From: Andrea Cervesato <andrea.cervesato@suse.com>

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.
---
 doc_new/developers/ltp_library.rst | 42 ++++++++++++++++++++++++++++++++++++--
 1 file changed, 40 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/doc_new/developers/ltp_library.rst b/doc_new/developers/ltp_library.rst
index b780b6870..85b69c11c 100644
--- a/doc_new/developers/ltp_library.rst
+++ b/doc_new/developers/ltp_library.rst
@@ -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