| # Testing |
| |
| The `apps/testing` directory is used to build NuttX-specific tests and to |
| include external testing frameworks. |
| |
| There is overlap between what you will find in `apps/examples` and |
| `apps/testing` in the sense that there are also tests in `apps/examples` as |
| well. Those tests, however, can also be used to illustrate usage of a NuttX |
| feature. Most of the tests in `apps/testing`, on the other hand, are pure tests |
| with little value as usage examples. |
| |
| ## `cxxtest` |
| |
| This is a test of the C++ standard library. At present a port of the uClibc++ |
| C++ library is available. Due to licensing issues, the uClibc++ C++ library is |
| not included in the NuttX source tree by default, but must be installed (see the |
| `README.txt` file in the uClibc++ download package for installation). |
| |
| The uClibc++ test includes simple test of: |
| |
| - iostreams, |
| - STL, |
| - RTTI, and |
| - Exceptions |
| |
| ### Example Configuration Options |
| |
| - `CONFIG_TESTING_CXXTEST=y` – Eanbles the example |
| |
| ### Other Required Configuration Settings |
| |
| Other NuttX setting that are required include: |
| |
| - `CONFIG_HAVE_CXX=y` |
| - `CONFIG_HAVE_CXXINITIALIZE=y` |
| - `CONFIG_UCLIBCXX=y` or `CONFIG_LIBCXX=y` |
| |
| Additional uClibc++/libcxx settings may be required in your build environment. |
| |
| ## `fstest` |
| |
| This is a generic file system test that derives from `testing/nxffs`. It was |
| created to test the tmpfs file system, but should work with any file system |
| provided that all initialization has already been performed prior to starting |
| the test. |
| |
| This test a a general test for any file system, but includes some specific hooks |
| for the SPIFFS file system. |
| |
| - `CONFIG_TESTING_FSTEST` – Enable the file system example. |
| - `CONFIG_TESTING_FSTEST_MAXNAME` – Determines the maximum size of names used in |
| the filesystem. |
| - `CONFIG_TESTING_FSTEST_MAXFILE` – Determines the maximum size of a file. |
| - `CONFIG_TESTING_FSTEST_MAXIO` – Max I/O, default `347`. |
| - `CONFIG_TESTING_FSTEST_MAXOPEN` – Max open files. |
| - `CONFIG_TESTING_FSTEST_MOUNTPT` – Path where the file system is mounted. |
| - `CONFIG_TESTING_FSTEST_NLOOPS` – Number of test loops. default `100`. |
| - `CONFIG_TESTING_FSTEST_VERBOSE` – Verbose output. |
| |
| ## `mm` |
| |
| This is a simple test of the memory manager. |
| |
| ## `nxffs` |
| |
| This is a test of the NuttX NXFFS FLASH file system. This is an NXFFS stress |
| test and beats on the file system very hard. It should only be used in a |
| simulation environment! Putting this NXFFS test on real hardware will most |
| likely destroy your FLASH. You have been warned. |
| |
| ## `ostest` |
| |
| This is the NuttX _qualification_ suite. It attempts to exercise a broad set of |
| OS functionality. Its coverage is not very extensive as of this writing, but it |
| is used to qualify each NuttX release. |
| |
| The behavior of the `ostest` can be modified with the following settings in the |
| `boards/<arch>/<chip>/<board>/configs/<config>/defconfig` file: |
| |
| - `CONFIG_NSH_BUILTIN_APPS` – Build the OS test example as an NSH built-in |
| application. |
| - `CONFIG_TESTING_OSTEST_LOOPS` – Used to control the number of executions of |
| the test. If undefined, the test executes one time. If defined to be zero, |
| the test runs forever. |
| |
| - `CONFIG_TESTING_OSTEST_STACKSIZE` – Used to create the ostest task. Default is |
| `8192`. |
| - `CONFIG_TESTING_OSTEST_NBARRIER_THREADS` – Specifies the number of threads to |
| create in the barrier test. The default is 8 but a smaller number may be |
| needed on systems without sufficient memory to start so many threads. |
| |
| - `CONFIG_TESTING_OSTEST_RR_RANGE` – During round-robin scheduling test two |
| threads are created. Each of the threads searches for prime numbers in the |
| configurable range, doing that configurable number of times. This value |
| specifies the end of search range and together with number of runs allows to |
| configure the length of this test – it should last at least a few tens of |
| seconds. Allowed values `[1; 32767]`, default `10000`. |
| |
| - `CONFIG_TESTING_OSTEST_RR_RUNS` – During round-robin scheduling test two |
| threads are created. Each of the threads searches for prime numbers in the |
| configurable range, doing that configurable number of times. |
| |
| ## `smart` SMART File System |
| |
| This is a test of the SMART file system that derives from `testing/nxffs`. |
| |
| - `CONFIG_TESTING_SMART` – Enable the SMART file system example. |
| |
| - `CONFIG_TESTING_SMART_ARCHINIT` – The default is to use the RAM MTD device at |
| `drivers/mtd/rammtd.c`. But an architecture-specific MTD driver can be used |
| instead by defining `CONFIG_TESTING_SMART_ARCHINIT`. In this case, the |
| initialization logic will call `smart_archinitialize()` to obtain the MTD |
| driver instance. |
| |
| - `CONFIG_TESTING_SMART_NEBLOCKS` – When `CONFIG_TESTING_SMART_ARCHINIT` is not |
| defined, this test will use the RAM MTD device at `drivers/mtd/rammtd.c` to |
| simulate FLASH. In this case, this value must be provided to give the number |
| of erase blocks in MTD RAM device. The size of the allocated RAM drive will |
| be: `CONFIG_RAMMTD_ERASESIZE * CONFIG_TESTING_SMART_NEBLOCKS`. |
| |
| - `CONFIG_TESTING_SMART_MAXNAME` – Determines the maximum size of names used in |
| the filesystem. |
| |
| - `CONFIG_TESTING_SMART_MAXFILE` – Determines the maximum size of a file. |
| - `CONFIG_TESTING_SMART_MAXIO` – Max I/O, default `347`. |
| - `CONFIG_TESTING_SMART_MAXOPEN` – Max open files. |
| - `CONFIG_TESTING_SMART_MOUNTPT` – SMART mountpoint. |
| - `CONFIG_TESTING_SMART_NLOOPS` – Number of test loops. default `100`. |
| - `CONFIG_TESTING_SMART_VERBOSE` – Verbose output. |
| |
| ## `smart_test` SMART File System |
| |
| Performs a file-based test on a SMART (or any) filesystem. Validates seek, |
| append and seek-with-write operations. |
| |
| * `CONFIG_TESTING_SMART_TEST=y` |
| |
| ``` |
| Author: Ken Pettit |
| Date: April 24, 2013 |
| ``` |
| |
| Performs a file-based test on a SMART (or any) filesystem. Validates seek, |
| append and seek-with-write operations. |
| |
| ``` |
| Usage: |
| |
| flash_test mtdblock_device |
| |
| Additional options: |
| |
| --force to replace existing installation |
| ``` |
| |
| ## `smp` |
| |
| This is a simple test for SMP functionality. It is basically just the pthread |
| barrier test with some custom instrumentation. |
| |
| ## `unity` |
| |
| Unity is a unit testing framework for C developed by ThrowTheSwitch.org: |
| |
| http://www.throwtheswitch.org/unity |