On 19/03/2019 09:25, Sebastian Huber wrote:
Can there please be some explanation of what the issues this
framework is
attempt to solve are, what it does well, what it does not do well or
is not,
plus things like target requirements, test duration, etc?
Ok, good idea. I will put an overview/features section at the top of
the chapter.
I updated
https://ftp.rtems.org/pub/rtems/people/sebh/eng.pdf
with the attached patch.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.hu...@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
>From d2f4ca6b408ee515b69e34b611e97ff61bfd0ad7 Mon Sep 17 00:00:00 2001
From: Sebastian Huber <sebastian.hu...@embedded-brains.de>
Date: Tue, 19 Mar 2019 13:47:41 +0100
Subject: [PATCH] eng: Add T test framework features
Update #3199.
---
eng/test-framework.rst | 70 +++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 61 insertions(+), 9 deletions(-)
diff --git a/eng/test-framework.rst b/eng/test-framework.rst
index 19a6130..9e0560b 100644
--- a/eng/test-framework.rst
+++ b/eng/test-framework.rst
@@ -11,15 +11,67 @@ Software Test Framework
The T Test Framework
====================
-The `T Test Framework` helps to write test suites. A `test suite` is a
-collection of test cases. A `test case` consists of individual test actions
-and checks. A `test check` determines if the outcome of a test action meets
-its expectation. A `test action` is a program sequence with an observable
-outcome, for example a function invocation with a return status. If the test
-action outcome is all right, then the test check passes, otherwise the test
-check fails. The test check failures of a test case are summed up. A test
-case passes, if the failure count of this test case is zero, otherwise the test
-case fails. The test suite passes if all test cases pass, otherwise it fails.
+The `T Test Framework` helps you to write test suites. It has the following
+features:
+
+* Implemented in standard C11
+
+* Runs on at least FreeBSD, MSYS2, Linux and RTEMS
+
+* Test runner and test case code can be in separate translation units
+
+* Test cases are automatically registered at link-time
+
+* Test cases may have a test fixture
+
+* Test checks for various standard types
+
+* Supports test case planning
+
+* Test case scoped dynamic memory
+
+* Test case destructors
+
+* Test case resource accounting to show that no resources are leaked
+ during the test case execution
+
+* Supports early test case exit, e.g. in case a malloc() fails
+
+* Individual test case and overall test suite duration is reported
+
+* Procedures for code runtime measurements in RTEMS
+
+* Easy to parse test output to generate test reports
+
+* Low overhead time measurement of short time sequences (using cycle counter
+ hardware if a available)
+
+* Configurable time service provider for a monotonic clock
+
+* Low global memory overhead for test cases and test checks
+
+* Supports multi-threaded execution and interrupts in test cases
+
+* A simple (polled) put character function is sufficient to produce the test output
+
+* Only text, global data and a stack pointer must be set up to run a test suite
+
+* No dynamic memory is used by the framework itself
+
+* No memory is aggregated throughout the test case execution
+
+Nomenclature
+------------
+
+A `test suite` is a collection of test cases. A `test case` consists of
+individual test actions and checks. A `test check` determines if the outcome
+of a test action meets its expectation. A `test action` is a program sequence
+with an observable outcome, for example a function invocation with a return
+status. If the test action outcome is all right, then the test check passes,
+otherwise the test check fails. The test check failures of a test case are
+summed up. A test case passes, if the failure count of this test case is zero,
+otherwise the test case fails. The test suite passes if all test cases pass,
+otherwise it fails.
Test Cases
----------
--
2.16.4
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel