From 64f5e444908412dfbb4188bdaf66b49d6bb2a957 Mon Sep 17 00:00:00 2001
From: Martin Klozik <martinx.klozik@intel.com>
Date: Mon, 23 Apr 2018 07:25:00 +0100
Subject: docs: Update step driven test documentation

A minor update of step driven documentation, which should help
with better understanding of this feature.

Change-Id: I58d1483f98520a008c8cbea9c820343c33835e6f
Signed-off-by: Martin Klozik <martinx.klozik@intel.com>
Reviewed-by: Al Morton <acmorton@att.com>
Reviewed-by: Christian Trautman <ctrautma@redhat.com>
Reviewed-by: Sridhar Rao <sridhar.rao@spirent.com>
---
 docs/testing/user/userguide/teststeps.rst | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/docs/testing/user/userguide/teststeps.rst b/docs/testing/user/userguide/teststeps.rst
index 08c95311..e7ccce9a 100644
--- a/docs/testing/user/userguide/teststeps.rst
+++ b/docs/testing/user/userguide/teststeps.rst
@@ -23,6 +23,13 @@ the step number by one which is indicated in the log.
 
     (testcases.integration) - Step 0 'vswitch add_vport ['br0']' start
 
+Test steps are defined as a list of steps within a ``TestSteps`` item of test
+case definition. Each step is a list with following structure:
+
+.. code-block:: python
+
+    '[' [ optional-alias ',' ] test-object ',' test-function [ ',' optional-function-params ] '],'
+
 Step driven tests can be used for both performance and integration testing.
 In case of integration test, each step in the test case is validated. If a step
 does not pass validation the test will fail and terminate. The test will continue
@@ -57,8 +64,14 @@ Step driven testcases can be used in two different ways:
 Test objects and their functions
 --------------------------------
 
-Every test step can call a function of one of the supported test objects. The list
-of supported objects and their most common functions follows:
+Every test step can call a function of one of the supported test objects. In general
+any existing function of supported test object can be called by test step. In case
+that step validation is required (valid for integration test steps, which are not
+suppressed), then appropriate ``validate_`` method must be implemented.
+
+The list of supported objects and their most common functions is listed below. Please
+check implementation of test objects for full list of implemented functions and their
+parameters.
 
     * ``vswitch`` - provides functions for vSwitch configuration
 
@@ -176,6 +189,8 @@ of supported objects and their most common functions follows:
 
         * ``getValue param`` - returns value of given ``param``
         * ``setValue param value`` - sets value of ``param`` to given ``value``
+        * ``resetValue param`` - if ``param`` was overridden by ``TEST_PARAMS`` (e.g. by "Parameters"
+          section of the test case definition), then it will be set to its original value.
 
         Examples:
 
@@ -185,6 +200,8 @@ of supported objects and their most common functions follows:
 
             ['settings', 'setValue', 'GUEST_USERNAME', ['root']]
 
+            ['settings', 'resetValue', 'WHITELIST_NICS'],
+
         It is possible and more convenient to access any VSPERF configuration option directly
         via ``$NAME`` notation. Option evaluation is done during runtime and vsperf will
         automatically translate it to the appropriate call of ``settings.getValue``.
-- 
cgit