// Imported from FSP tree - /src/test/cxxtest/cxxtest/ #ifndef __cxxtest__TestSuite_cpp__ #define __cxxtest__TestSuite_cpp__ #include #include #include #include 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 // TestSuite::~TestSuite() {} void TestSuite::setUp() {} void TestSuite::tearDown() {} /** * * @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("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("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 ); 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; } }; #endif // __cxxtest__TestSuite_cpp__