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

Revision:
0:62a10b8392a4
diff -r 000000000000 -r 62a10b8392a4 TestSupportLite.hpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TestSupportLite.hpp	Sun Jan 19 17:14:59 2014 +0000
@@ -0,0 +1,85 @@
+/**
+   @file
+   @brief Support routines for writing very simple test harnesses
+
+   @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 TESTSUPPORTLITE_HPP
+#define      TESTSUPPORTLITE_HPP
+
+#include <cstring> // for size_t
+
+/** Boiler plate test support for the TST_EQ, TST_TRUE, etc macros 
+    \param _p Indicate whether or not the test passed
+    \param _t Description of the test
+*/
+#define TST_BOILER( _p, _t) do { TEST_OUT( _p, _t ); if( !_p ) { FAIL_OUT(); } } while ( 0 )
+
+/** Testing macro - expects _x and _q to be equal (using the equality operator)
+    \param _x Value to be compared
+    \param _y Value to be compared
+    \param _t Description of test
+*/
+#define TST_EQ( _x, _y, _t ) do { bool passed = ((_x)==(_y)); TST_BOILER( passed, _t ); } while( 0 )
+
+/** Testing macro - expects _x to be true
+    \param _x Value to be evaluated
+    \param _t Description of test
+*/
+#define TST_TRUE( _x, _t ) do { bool passed = (_x); TST_BOILER( passed, _t ); } while( 0 )
+
+/** Testing macro - expects _x to be false
+    \param _x Value to be evaluated
+    \param _t Description of test
+*/
+#define TST_FALSE( _x, _t ) TST_TRUE( !( _x ), _t )
+
+/** Tasks to be carried out when the tests are over */
+#define TST_DONE() do { DONE_OUT(); } while( 0 )
+
+/** Currently a very simple class just to encapsulate a few test statistics
+
+    Implemented as a class rather than a set of global variables to simplify
+    multiple instatitation
+*/
+class TestResults
+{
+    protected:
+        /** Number of tests that have passed */
+        std::size_t m_passed;
+        /** Total number of tests run so far */
+        std::size_t m_total;
+    public:
+        /* Default initialiser */
+        TestResults( void );
+        
+        /* Register that a test has been run
+           \parap p_passed Whether or not the test passed successfully */
+        void registerResult( const bool p_passed );
+        
+        /* Query the total number of tests run so far */
+        std::size_t getCount( void ) const;
+        
+        /* Query the number of tests passed so far */
+        std::size_t getPassed( void ) const;
+};
+
+#endif // !defined TESTSUPPORTLITE_HPP
\ No newline at end of file