/* ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 2011,2012,2013 Giovanni Di Sirio. This file is part of ChibiOS/RT. ChibiOS/RT is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. ChibiOS/RT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /** * @defgroup test Test Runtime * @details Runtime code for the test suite execution, this code is not part * of the OS and should not be included in user applications. */ /** * @page testsuite Testing Strategy *

Description

* Most of the ChibiOS/RT demos link a set of software modules (test suite) in * order to verify the proper working of the kernel, the port and the demo * itself. * *

Strategy by Component

* The OS components are tested in various modes depending on their importance: * - Kernel. The kernel code is subject to rigorous testing. The test * suite aims to test all the kernel code and reach a code coverage * as close to 100% as possible. In addition to the code coverage, the kernel * code is tested for functionality and benchmarked for speed * and size before each stable release. In addition to the code * coverage and functional testing a batch compilation test is * performed before each release, the kernel is compiled by alternatively * enabling and disabling all the various configuration options, the * kernel code is expected to compile without errors nor warnings and * execute the test suite without failures (a specific simulator is used * for this execution test, it is done automatically by a script because * the entire sequence can take hours).
* All the tests results are included as reports in the OS distribution * under ./docs/reports. * - Ports. The port code is tested by executing the kernel test * suite on the target hardware. A port is validated only if it passes all * the tests. Speed and size benchmarks for all the supported architectures * are performed, both size and speed regressions are monitored. * - HAL. The HAL high level code and device drivers implementations * are tested through specific test applications under ./testhal. * - Various. The miscellaneous code is tested by use in the various * demos. * - External Code. Not tested, external libraries or components are * used as-is or with minor patching where required, problems are usually * reported upstream. * . *

Kernel Test Suite

* The kernel test suite is divided in modules or test sequences. Each Test * Module performs a series of tests on a specified kernel subsystem or * subsystems and can report a failure/success status and/or a performance * index as the test suite output.
* The test suite is usually activated in the demo applications by pressing a * button on the target board, see the readme file into the various demos * directories. The test suite output is usually sent through a serial port * and can be examined by using a terminal emulator program. * *

Kernel Test Modules

* * - @subpage test_threads * - @subpage test_dynamic * - @subpage test_msg * - @subpage test_sem * - @subpage test_mtx * - @subpage test_events * - @subpage test_mbox * - @subpage test_queues * - @subpage test_heap * - @subpage test_pools * - @subpage test_benchmarks * . */