Library meant to simplify writing of tests. Very light-weight in the approach. Test syntax will be familiar to users of CUnit, however this is far more basic.
Dependents: CircularBufferTest
Tests are expected to take the form of macro-based statements, such as:
// An empty buffer should yield getSize() of zero TST_EQ( buffer.getSize(), 0, "Empty buffer: getSize()" );
You still have to do the hard work of coming up with the tests and writing code to implement them, but this library is intended to give you a "jump start" towards getting something with consistent output and keeping track of the number of passes/fails - just import the library, include the header and you're away.
See CircularBufferTest main.cpp for an example of how this library can be used
Diff: TestSupportSimple.hpp
- Revision:
- 0:62a10b8392a4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TestSupportSimple.hpp Sun Jan 19 17:14:59 2014 +0000 @@ -0,0 +1,54 @@ +/** + @file + @brief Set up TestSupportLite for simple tests + + @author John Bailey + + @copyright Copyright 2014 John Bailey + + @section LICENSE + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +*/ + +#if !defined TESTSUPPORTSIMPLE_HPP +#define TESTSUPPORTSIMPLE_HPP + +#if defined __CC_ARM +#include "mbed.h" +extern Serial pc; +#define TS_PRINTF( ... ) pc.printf(__VA_ARGS__) +#else +#include <stdio.h> +#define TS_PRINTF( ... ) printf(__VA_ARGS__) +#endif + +#include "TestSupportLite.hpp" + +extern TestResults tst_glob; + +/** Text to be displayed for each test being run */ +#define TEST_TXT "[%03d] {%c} %s\r\n" + +/** Text to be displayed at the end of the test run */ +#define DONE_TXT "----- [%d tests run, %d passed]\r\n" + +/** Text to be displayed for failing tests */ +#define FAIL_TXT " Test at %s:%d\r\n" + +#define TEST_OUT( _p, _t ) do { tst_glob.registerResult( _p ); TS_PRINTF( TEST_TXT, tst_glob.getCount(), _p?'X':' ', _t ); } while (0) +#define DONE_OUT() do { TS_PRINTF( DONE_TXT, tst_glob.getCount(), tst_glob.getPassed() ); } while ( 0 ) +#define FAIL_OUT() do { TS_PRINTF( FAIL_TXT, __FILE__, __LINE__ ); } while ( 0 ) + +#endif \ No newline at end of file