summaryrefslogtreecommitdiffstats
path: root/src/usr/cxxtest/TestSuite.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/cxxtest/TestSuite.C')
-rwxr-xr-xsrc/usr/cxxtest/TestSuite.C147
1 files changed, 137 insertions, 10 deletions
diff --git a/src/usr/cxxtest/TestSuite.C b/src/usr/cxxtest/TestSuite.C
index c42e23a72..17460ae3b 100755
--- a/src/usr/cxxtest/TestSuite.C
+++ b/src/usr/cxxtest/TestSuite.C
@@ -3,12 +3,38 @@
#ifndef __cxxtest__TestSuite_cpp__
#define __cxxtest__TestSuite_cpp__
-#include <cxxtest/TestSuite.H>
#include <stdarg.h>
#include <arch/ppc.H>
+#include <kernel/console.H>
+
+#include <cxxtest/TestSuite.H>
namespace CxxTest
{
+ /******************************************************************************/
+ // Globals/Constants
+ /******************************************************************************/
+
+ /**
+ * @brief global vars to keep track of unit tests.
+ *
+ * totaltests - initialized to 0, updated by reporttotaltests() below.
+ * each test suite will call reporttotaltests after all tests have
+ * run with the total number of tests for that suite.
+ * Once all the testsuites have run, the global totaltests will hold
+ * the total of number of unit test for that run.
+ *
+ * Each unit test macro (TS_TRACE, TS_WARN, and TS_FAIL) will update
+ * the proper variable. At the end the unit tester will print out
+ * the totals.
+ * // Global cxxtest values - Keep global so it can be found in syms file
+ */
+ uint64_t g_TotalTests = 0;
+ uint64_t g_TraceCalls = 0;
+ uint64_t g_Warnings = 0;
+ uint64_t g_FailedTests = 0;
+
+
//
// TestSuite members
//
@@ -16,25 +42,126 @@ namespace CxxTest
void TestSuite::setUp() {}
void TestSuite::tearDown() {}
- //
- // Some non-template functions
- //
+ /**
+ *
+ * @brief Implement trace action in unit tests
+ *
+ * @param [in] pointer to filename (not used right now )
+ * @param [in] line number
+ * @param [in] trace message
+ *
+ * @return void
+ *
+ */
void doTrace( const char *file, unsigned line, const char *message )
{
- //tracker().trace( file, line, message );
- //printk("%s %u %s\n",file,line,message);
+ // tracker().trace( file, line, message );
+ printk("TRACE: %s %u %s\n", file, line, message);
+ __sync_add_and_fetch( &g_TraceCalls, 1 );
}
+ /**
+ *
+ * @brief Implement warn action in unit tests
+ *
+ * @param [in] pointer to filename (not used right now )
+ * @param [in] line number
+ * @param [in] warning message
+ *
+ * @return void
+ *
+ */
void doWarn( const char *file, unsigned line, const char *message )
{
- //tracker().warning( file, line, message );
- //printk("%s %u %s\n",file,line,message);
+ // tracker().warning( file, line, message );
+ printk("WARN: %s %u %s\n", file, line, message);
+ __sync_add_and_fetch( &g_Warnings, 1 );
}
+ /**
+ * @brief Implement Fail action in unit tests
+ *
+ * @param [in] pointer to filename (not used right now )
+ * @param [in] line number
+ * @param [in] failure message
+ *
+ * @return void
+ */
+
void doFailTest( const char *file, unsigned line, const char *message )
{
- //tracker().failedTest( file, line, message );
- //TS_ABORT();
+ // tracker().failedTest( file, line, message );
+ printk("FAIL: %s %u %s\n", file, line, message);
+ __sync_add_and_fetch( &g_FailedTests, 1 );
+ }
+
+ /**
+ * @brief Report total number of unit tests in a test suite
+ *
+ * A unit test suite will call this to report how many tests
+ * it has. The call itself is autogenerated
+ *
+ * @param [in] pointer to filename (not used right now )
+ * @param [in] line number
+ * @param [in] trace message
+ *
+ * @return void
+ */
+ void reportTotalTests( const char *suitename, uint64_t numtests )
+ {
+
+ // $$TODO do nothing with the suite name for now, later it may be useful
+ __sync_add_and_fetch( &g_TotalTests, numtests );
+
+ return;
+ }
+
+ /**
+ * @brief accessor to read global totaltests var
+ * @TODO make these readonly accessors
+ *
+ * @return number of total tests
+ */
+ uint64_t getTotalTests(void)
+ {
+
+ return g_TotalTests;
+ }
+
+ /**
+ * @brief accessor to read global failedtests var
+ * @TODO make these readonly accessors
+ *
+ * @return total number off failures executed
+ */
+ uint64_t getFailedTests(void)
+ {
+
+ return g_FailedTests;
+ }
+
+ /**
+ * @brief accessor to read global warnings var
+ * @TODO make these readonly accessors
+ *
+ * @return total number of warnings executed
+ */
+ uint64_t getWarnings(void)
+ {
+
+ return g_Warnings;
+ }
+
+ /**
+ * @brief accessor to read global tracecalls var
+ * @TODO make these readonly accessors
+ *
+ * @return total number of trace calls executed
+ */
+ uint64_t getTraceCalls(void)
+ {
+
+ return g_TraceCalls;
}
};
OpenPOWER on IntegriCloud