DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH] doc/contributing: update test guidelines for meson changes
@ 2023-10-02 12:44 Bruce Richardson
  2023-11-27 15:52 ` Thomas Monjalon
  0 siblings, 1 reply; 2+ messages in thread
From: Bruce Richardson @ 2023-10-02 12:44 UTC (permalink / raw)
  To: dev; +Cc: aconole, Bruce Richardson

With the meson test suites being reworked to be automatically generated,
rather than having to be hard-coded in the meson.build file, we need to
update our contributing guidelines to take account of this change.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---

NOTE: this patch contains only changes needed to bring the doc
up-to-date with the meson suite registration changes. I believe the doc
needs further general updates beyond this, but that is out of scope for
this patch.
---
 doc/guides/contributing/unit_test.rst | 34 +++++++++++++++------------
 1 file changed, 19 insertions(+), 15 deletions(-)

diff --git a/doc/guides/contributing/unit_test.rst b/doc/guides/contributing/unit_test.rst
index 1b2eb0da03..382eaf9667 100644
--- a/doc/guides/contributing/unit_test.rst
+++ b/doc/guides/contributing/unit_test.rst
@@ -126,16 +126,15 @@ the build system includes a standard way of executing the Meson test suites.
 After building via ``ninja``, the ``meson test`` command
 with no arguments will execute the Meson test suites.
 
-There are five pre-configured Meson test suites.
+There are a number of pre-configured Meson test suites.
 The first is the **fast** test suite, which is the largest group of test cases.
 These are the bulk of the unit tests to validate functional blocks.
 The second is the **perf** tests.
 These test suites can take longer to run and do performance evaluations.
 The third is the **driver** test suite,
 which is mostly for special hardware related testing (such as `cryptodev`).
-The fourth suite is the **debug** suite.
+The fourth, and currently the last, suite is the **debug** suite.
 These tests mostly are used to dump system information.
-The last suite is the **extra** suite for tests having some known issues.
 
 The Meson test suites can be selected by adding the ``--suite`` option
 to the ``meson test`` command.
@@ -184,10 +183,15 @@ create a new test file for that suite
 (ex: see *app/test/test_version.c* for the ``version_autotest`` test suite).
 There are two important functions for interacting with the test harness:
 
-   ``REGISTER_TEST_COMMAND(command_name, function_to_execute)``
+   ``REGISTER_<MESON_SUITE>_TEST(command_name, function_to_execute)``
       Registers a test command with the name `command_name`
-      and which runs the function `function_to_execute`
-      when `command_name` is invoked.
+      and which runs the function `function_to_execute` when `command_name` is invoked.
+      The test is automatically added to the meson test suite `<MESON_SUITE>` by this macro.
+      Examples would be ``REGISTER_DRIVER_TEST``, or ``REGISTER_PERF_TEST``.
+      **NOTE:** The ``REGISTER_FAST_TEST`` macro is slightly different,
+      in that it takes two additional parameters,
+      specifying whether the test can be run using ``--no-huge``,
+      and whether the test can be run using Address Sanitization (ASAN)
 
    ``unit_test_suite_runner(struct unit_test_suite *)``
       Returns a runner for a full test suite object,
@@ -248,7 +252,7 @@ An example of both a test suite and a case:
        return unit_test_suite_runner(&example_testsuite);
    }
 
-   REGISTER_TEST_COMMAND(example_autotest, example_tests);
+   REGISTER_PERF_TEST(example_autotest, example_tests);
 
 The above code block is a small example
 that can be used to create a complete test suite with test case.
@@ -315,7 +319,7 @@ of the unit test suite structure, for example:
        return ret;
    }
 
-   REGISTER_TEST_COMMAND(example_autotest, example_tests);
+   REGISTER_FAST_TEST(example_autotest, true /*no-huge*/, false /*ASan*/, example_tests);
 
 
 Designing a test
@@ -392,9 +396,10 @@ This can be used to assist in test development.
 Adding a suite or test case to Meson
 ------------------------------------
 
-Adding to one of the Meson test suites involves
-editing the appropriate Meson build file `app/test/meson.build`
-and adding the command to the correct test suite class.
+Adding to one of the Meson test suites involves using the appropriate macro to register the test in dpdk-test,
+as described above.
+For example,
+defining the test command using ``REGISTER_PERF_TEST`` automatically adds the test to the perf-test meson suite.
 Once added, the new test will be run
 as part of the appropriate class (fast, perf, driver, etc.).
 
@@ -409,11 +414,10 @@ by using the ``--list`` option::
 Some of these test suites are run during continuous integration tests,
 making regression checking automatic for new patches submitted to the project.
 
-In general, when a test is added to the `dpdk-test` application,
-it probably should be added to a Meson test suite,
-but the choice is left to maintainers and individual developers.
-Preference is to add tests to the Meson test suites.
+.. note::
 
+   The use of the old ``REGISTER_TEST_COMMAND`` macro to add a command without adding it to a meson test suite is deprecated.
+   All new tests must be added to a test suite using the appropriate ``REGISTER_<SUITE>_TEST`` macro
 
 Running cryptodev tests
 -----------------------
-- 
2.39.2


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

end of thread, other threads:[~2023-11-27 15:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-02 12:44 [PATCH] doc/contributing: update test guidelines for meson changes Bruce Richardson
2023-11-27 15:52 ` Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).