diff options
Diffstat (limited to 'src/usr/trace/test/tracetest.H')
-rw-r--r-- | src/usr/trace/test/tracetest.H | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/src/usr/trace/test/tracetest.H b/src/usr/trace/test/tracetest.H new file mode 100644 index 000000000..0767352c6 --- /dev/null +++ b/src/usr/trace/test/tracetest.H @@ -0,0 +1,129 @@ +#ifndef __TEST_TRACETEST_H +#define __TEST_TRACETEST_H + +/** + * @file tracetest.H + * + * @brief All unit tests for the trace module in host boot. +*/ + +#include <cxxtest/TestSuite.H> +//#include <trace/interface.H> +#include <tracinterface.H> + +class TraceTest : public CxxTest::TestSuite +{ +public: + + /** + * @test Test Component Trace Interfaces + */ + void testTracComp(void) + { + trace_desc_t *g_trac_test = NULL; + TRAC_INIT_BUFFER(&g_trac_test, "EXAMPLE", 4096); + + if(g_trac_test == NULL) + { + TS_FAIL("g_trac_test was returned as NULL!"); + } + else + { + // Component trace tests - There is no easy way to validate these + // are working but we can at least ensure we don't cause host boot + // to crash when running them. + + for(uint32_t i=0;i<100;i++) + { + TRACFCOMP(g_trac_test, "Thread ID: %d", task_gettid()); + TRACFCOMP(g_trac_test, "Validate all number types (c,u,X,d): %c %u 0x%X %d", + 'a',i,i+1,i+2); + + TRACFCOMP(g_trac_test, "Validate pointer type (p): %p", + g_trac_test); + + TRACFCOMP(g_trac_test, "64 Bit Value Test - 0x123456789ABCDEF0: 0x%X", + 0x123456789ABCDEF0); + + // Do a debug trace + TRACDCOMP(g_trac_test,"This is a debug trace"); + + // Need to run a formatting test, but I know it will fail. + } + + // Be sure a NULL trace descriptor does not cause a failure + TRACFCOMP(NULL,"This trace should never show up"); + + } + } + + /** + * @test Test Binary Trace Interface + */ + void testTracBinary(void) + { + trace_desc_t *g_trac_test = NULL; + TRAC_INIT_BUFFER(&g_trac_test, "EXAMPLE", 4096); + + if(g_trac_test == NULL) + { + TS_FAIL("g_trac_test was returned as NULL!"); + } + else + { + // Binary trace tests - There is no easy way to validate these + // are working but we can at least ensure we don't cause host boot + // to crash when running them. + TRACFBIN(g_trac_test,"Binary dump of trace descriptor", + g_trac_test,sizeof(trace_desc_t)); + + TRACDBIN(g_trac_test,"Unaligned Debug binary trace of the trace descriptor", + g_trac_test,9); + + // Be sure a NULL trace descriptor does not cause a failure + TRACFBIN(NULL,"This trace should never show up", + g_trac_test,sizeof(trace_desc_t)); + + // Be sure it handles a size of 0 + TRACFBIN(NULL,"This trace should never show up - 0 size", + g_trac_test,0); + } + } + + /** + * @test Test a mix of traces + */ + void testTracMix(void) + { + trace_desc_t *g_trac_test = NULL; + TRAC_INIT_BUFFER(&g_trac_test, "EXAMPLE", 4096); + + if(g_trac_test == NULL) + { + TS_FAIL("g_trac_test was returned as NULL!"); + } + else + { + uint32_t l_size = 0; + + for(uint32_t i=0;i<100;i++) + { + + TRACFCOMP(g_trac_test, INFO_MRK"Validate all number types (c,u,X,d): %c %u 0x%X %d", + 'a',i,i+1,i+2); + + l_size = i % sizeof(trace_desc_t); + + TRACFBIN(g_trac_test,"Unaligned Binary dump of trace descriptor", + g_trac_test,l_size); + + TRACFCOMP(g_trac_test, "64 Bit Value Test - 0x123456789ABCDEF0: 0x%X", + 0x123456789ABCDEF0); + + } + } + } +}; + +#endif + |