From 0c3e34b79a23bb3647b9b89627b789240aa618e0 Mon Sep 17 00:00:00 2001 From: He Yin Ling Date: Sun, 1 Jul 2018 21:17:04 +0800 Subject: [PATCH] tiny-test-fw: add class diagram to document --- tools/tiny-test-fw/docs/conf.py | 3 +- tools/tiny-test-fw/docs/index.rst | 104 +++++++++++++++++++++++------- 2 files changed, 84 insertions(+), 23 deletions(-) diff --git a/tools/tiny-test-fw/docs/conf.py b/tools/tiny-test-fw/docs/conf.py index 254f841f71..36e5aa9371 100644 --- a/tools/tiny-test-fw/docs/conf.py +++ b/tools/tiny-test-fw/docs/conf.py @@ -33,7 +33,8 @@ sys.path.insert(0, os.path.abspath('..')) # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = ['sphinx.ext.autodoc', - 'sphinx.ext.viewcode'] + 'sphinx.ext.viewcode', + 'plantweb.directive'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] diff --git a/tools/tiny-test-fw/docs/index.rst b/tools/tiny-test-fw/docs/index.rst index d154254aa4..76bd236d07 100644 --- a/tools/tiny-test-fw/docs/index.rst +++ b/tools/tiny-test-fw/docs/index.rst @@ -11,27 +11,6 @@ Usually we send command to the port and then check response to see if the test s TinyTestFW is designed for such scenarios. It supports ESP-IDF applications and can be adapted to other applications by writing new bundles. -Test FW features ----------------- - -1. Test Environment: - 1. DUT: DUT class provides methods to interact with DUT - * read/write through port - * expect method which supports expect one or multiple string or RegEx - * tool methods provided by the tool bundle, like ``start_app``, ``reset`` - 2. App: - * provide some specific features to the test application of DUT, for example: - * SDK path - * SDK tools - * application information like partition table, download configs - 3. Environment Configs: - * support get env configs from config file or auto-detect from current PC - * provide ``get_variable`` method to get variables -2. Allow to customize components (DUT, App) to support different devices -3. Integrate to CI: - * provide interfaces for Gitlab-CI - * provide ``search case`` and ``runner`` interfaces, able to integrate with other CI - Example ------- @@ -110,6 +89,86 @@ SOP for adding test cases * or, use ``runner`` to execute. see :doc:`runner ` for details +Test FW features +---------------- + +1. Test Environment: + 1. DUT: DUT class provides methods to interact with DUT + * read/write through port + * expect method which supports expect one or multiple string or RegEx + * tool methods provided by the tool bundle, like ``start_app``, ``reset`` + 2. App: + * provide some specific features to the test application of DUT, for example: + * SDK path + * SDK tools + * application information like partition table, download configs + 3. Environment Configs: + * support get env configs from config file or auto-detect from current PC + * provide ``get_variable`` method to get variables +2. Allow to customize components (DUT, App) to support different devices +3. Integrate to CI: + * provide interfaces for Gitlab-CI + * provide ``search case`` and ``runner`` interfaces, able to integrate with other CI + + +Class Diagram +============= +.. uml:: + + class BaseDUT { + {field} app + {method} expect + {method} expect_any + {method} expect_all + {method} read + {method} write + {method} open + {method} close + } + class SerialDUT { + {method} _port_read + {method} _port_write + {method} _port_open + {method} _port_close + } + class IDFDUT { + {method} reset + {method} start_app + } + class BaseApp { + {method} get_sdk_path + {method} get_tools + {method} process_app_info + {method} get_log_folder + } + class IDFApp { + {method} process_app_info + } + class Example { + {method} get_binary_path + } + class EnvConfig { + {method} get_variable + } + class Env { + {field} config + {field} allocated_duts + {field} app_cls + {method} get_dut + {method} close_dut + {method} get_variable + {method} get_pc_nic_info + {method} close + } + + SerialDUT --|> BaseDUT + IDFDUT --|> SerialDUT + IDFApp --|> BaseApp + Example --|> IDFApp + Env *-- EnvConfig + Env *-- BaseDUT + Env o-- BaseApp + BaseDUT o-- BaseApp .. toctree:: @@ -133,7 +192,8 @@ The following 3rd party lib is required: These libraries can be installed by running ``pip install -r requirements.txt`` in tiny-test-fw directory. -To build document, we need to install ``Sphinx`` and ``sphinx-rtd-theme`` (you may replace this with your own theme). +To build document, we need to install ``Sphinx``, ``plantweb`` and ``sphinx-rtd-theme`` (you may replace this with your own theme). ``plantweb`` requires internet access during building document. + Indices and tables ==================