Improve documentation in mbedtls_test.py
diff --git a/tests/scripts/mbedtls_test.py b/tests/scripts/mbedtls_test.py
index 52fd0a9..c3b1b7a 100755
--- a/tests/scripts/mbedtls_test.py
+++ b/tests/scripts/mbedtls_test.py
@@ -1,4 +1,4 @@
-# Greentea host test script for on-target tests.
+# Greentea host test script for Mbed TLS on-target test suite testing.
#
# Copyright (C) 2018, ARM Limited, All Rights Reserved
# SPDX-License-Identifier: Apache-2.0
@@ -19,12 +19,19 @@
"""
-Greentea host test script for on-target tests.
+Mbed TLS on-target test suite tests are implemented as mbed-os greentea
+tests. Greentea tests are implemented in two parts: target test and
+host test. Target test is a C application that is built for the
+target platform and executes on the target. Host test is a Python
+class derived from mbed_host_tests.BaseHostTest. Target communicates
+with the host over serial for the test data.
-Host test script for testing mbed TLS test suites on target. Implements
-BaseHostTest to handle key,value pairs (events) coming from mbed TLS
-tests. Reads data file corresponding to the executing binary and dispatches
-test cases.
+Python tool mbedgt (greentea) is responsible for flashing the test
+binary on to the target and dynamically loading the host test.
+
+This script contains the host test for handling target test's
+requests for test vectors. It also reports the test results
+in format understood by Greentea.
"""
@@ -41,7 +48,8 @@
class TestDataParser(object):
"""
- parser for mbedtls test data files.
+ Parses test name, dependencies, test function name and test parameters
+ from the data file.
"""
def __init__(self):
@@ -127,19 +135,30 @@
class MbedTlsTest(BaseHostTest):
"""
- Event handler for mbedtls unit tests. This script is loaded at run time
- by htrun while executing mbedtls unit tests.
+ Host test for mbedtls unit tests. This script is loaded at
+ run time by Greentea for executing mbedtls test suites. Each
+ communication from the target is received in this object as
+ an event, which is then handled by the event handler method
+ decorated by the associated event. Ex: @event_callback('GO').
+
+ Target test sends requests for dispatching next test. It reads
+ tests from the intermediate data file and sends test function
+ identifier, dependency identifiers, expression identifiers and
+ the test data in binary form. Target test checks dependecnies
+ , evaluate integer constant expressions and dispatches the test
+ function with received test parameters.
+
"""
- # From suites/helpers.function
+ # status/error codes from suites/helpers.function
DEPENDENCY_SUPPORTED = 0
KEY_VALUE_MAPPING_FOUND = DEPENDENCY_SUPPORTED
DISPATCH_TEST_SUCCESS = DEPENDENCY_SUPPORTED
- KEY_VALUE_MAPPING_NOT_FOUND = -1
- DEPENDENCY_NOT_SUPPORTED = -2
- DISPATCH_TEST_FN_NOT_FOUND = -3
- DISPATCH_INVALID_TEST_DATA = -4
- DISPATCH_UNSUPPORTED_SUITE = -5
+ KEY_VALUE_MAPPING_NOT_FOUND = -1 # Expression Id not found.
+ DEPENDENCY_NOT_SUPPORTED = -2 # Dependency not supported.
+ DISPATCH_TEST_FN_NOT_FOUND = -3 # Test function not found.
+ DISPATCH_INVALID_TEST_DATA = -4 # Invalid parameter type.
+ DISPATCH_UNSUPPORTED_SUITE = -5 # Test suite not supported/enabled.
def __init__(self):
"""
@@ -159,13 +178,15 @@
def setup(self):
"""
- Setup hook implementation. Reads test suite data file and parses out tests.
+ Setup hook implementation. Reads test suite data file and parses out
+ tests.
"""
binary_path = self.get_config_item('image_path')
script_dir = os.path.split(os.path.abspath(__file__))[0]
suite_name = os.path.splitext(os.path.basename(binary_path))[0]
data_file = ".".join((suite_name, 'data'))
- data_file = os.path.join(script_dir, '..', 'mbedtls', suite_name, data_file)
+ data_file = os.path.join(script_dir, '..', 'mbedtls',
+ suite_name, data_file)
if os.path.exists(data_file):
self.log("Running tests from %s" % data_file)
parser = TestDataParser()
@@ -262,7 +283,7 @@
def run_next_test(self):
"""
- Send next test function to the target.
+ Fetch next test information and execute the test.
"""
self.test_index += 1
@@ -275,7 +296,7 @@
def run_test(self, name, function_id, deps, args):
"""
- Runs the test.
+ Execute the test on target by sending next test information.
:param name: Test name
:param function_id: function identifier
@@ -304,7 +325,7 @@
@event_callback('GO')
def on_go(self, key, value, timestamp):
"""
- Called on key "GO". Kicks off test execution.
+ Sent by the target to start first test.
:param key: Event key
:param value: Value. ignored
@@ -316,7 +337,8 @@
@event_callback("R")
def on_result(self, key, value, timestamp):
"""
- Handle result. Prints test start, finish prints required by Greentea to detect test execution.
+ Handle result. Prints test start, finish required by Greentea
+ to detect test execution.
:param key: Event key
:param value: Value. ignored