/*
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
* .
*/