diff options
author | Andrew Geissler <andrewg@us.ibm.com> | 2011-05-10 17:20:10 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2011-05-16 16:51:41 -0500 |
commit | e604f02230c3decedbdd56a3cfef66b0709b74dc (patch) | |
tree | 85ebf5ba3dd090bd80d8651fdf4b4855a2022a30 | |
parent | f25d156f4a222923d70563ba960858f4e42a80c8 (diff) | |
download | talos-hostboot-e604f02230c3decedbdd56a3cfef66b0709b74dc.tar.gz talos-hostboot-e604f02230c3decedbdd56a3cfef66b0709b74dc.zip |
Base cxxtest class and some examples.
Change-Id: I8ff2fdffe8be34f5ece9a5e4b2f5d07a4bc73d73
Reviewed-on: http://gfwr801.rchland.ibm.com:8080/gerrit/71
Tested-by: Jenkins Server
Reviewed-by: Mark W. Wenning <wenning@us.ibm.com>
-rwxr-xr-x | src/include/usr/cxxtest/TestSuite.H | 54 | ||||
-rw-r--r-- | src/include/usr/example/example.H | 18 | ||||
-rw-r--r-- | src/makefile | 2 | ||||
-rwxr-xr-x | src/usr/cxxtest/TestSuite.C | 42 | ||||
-rw-r--r-- | src/usr/cxxtest/makefile | 6 | ||||
-rw-r--r-- | src/usr/example/example.C | 10 | ||||
-rw-r--r-- | src/usr/example/makefile | 2 | ||||
-rw-r--r-- | src/usr/example/test/exampletest.C | 31 | ||||
-rw-r--r-- | src/usr/example/test/exampletest.H | 28 | ||||
-rw-r--r-- | src/usr/example/test/makefile | 6 | ||||
-rw-r--r-- | src/usr/makefile | 2 |
11 files changed, 199 insertions, 2 deletions
diff --git a/src/include/usr/cxxtest/TestSuite.H b/src/include/usr/cxxtest/TestSuite.H new file mode 100755 index 000000000..3cba6eeac --- /dev/null +++ b/src/include/usr/cxxtest/TestSuite.H @@ -0,0 +1,54 @@ +// Imported from FSP tree - /src/test/cxxtest/cxxtest/ + +#ifndef __cxxtest__TestSuite_h__ +#define __cxxtest__TestSuite_h__ + +// +// class TestSuite is the base class for all test suites. +// To define a test suite, derive from this class and add +// member functions called void test*(); +// + +namespace CxxTest +{ + class TestSuite + { + public: + virtual ~TestSuite(); + virtual void setUp(); + virtual void tearDown(); + }; + + class AbortTest {}; + + void doTrace( const char *file, unsigned line, const char *message ); + void doWarn( const char *file, unsigned line, const char *message ); + void doFailTest( const char *file, unsigned line, const char *message ); + void doFailAssert( const char *file, unsigned line, const char *expression, const char *message ); + + + +# define _TS_TRY +# define ___TSM_CATCH(f,l,m) +# define __TSM_CATCH(f,l,m) +# define __TS_CATCH(f,l) +# define _TS_CATCH +# define _TS_CATCH_TYPE(t, b) +# define _TS_LAST_CATCH(b) +# define _TS_CATCH_ABORT(b) + + // TS_TRACE +# define _TS_TRACE(f,l,e) CxxTest::doTrace( (f), (l), e ) +# define TS_TRACE(e) _TS_TRACE( __FILE__, __LINE__, e ) + + // TS_WARN +# define _TS_WARN(f,l,e) CxxTest::doWarn( (f), (l), e ) +# define TS_WARN(e) _TS_WARN( __FILE__, __LINE__, e ) + + // TS_FAIL +# define _TS_FAIL(f,l,e) CxxTest::doFailTest( (f), (l), e ) +# define TS_FAIL(e) _TS_FAIL( __FILE__, __LINE__, e ) + +} + +#endif // __cxxtest__TestSuite_h__ diff --git a/src/include/usr/example/example.H b/src/include/usr/example/example.H new file mode 100644 index 000000000..1444893b2 --- /dev/null +++ b/src/include/usr/example/example.H @@ -0,0 +1,18 @@ +// This file is where you export all external module interfaces (i.e. +// interfaces required by other modules) + +#ifndef __EXAMPLE_EXAMPLE_H +#define __EXAMPLE_EXAMPLE_H + + + /** + * @brief Example Function + * + * Some more details on the example function. + * + * @return 0 on success, otherwise a failure code. + * + */ +uint64_t example1_function(); + +#endif diff --git a/src/makefile b/src/makefile index b34ca0c7c..77d91fa1c 100644 --- a/src/makefile +++ b/src/makefile @@ -16,7 +16,7 @@ DIRECT_BOOT_OBJECTS = start.o kernel.o taskmgr.o cpumgr.o syscall.o \ RUNTIME_OBJECTS = BASE_MODULES = trace -DIRECT_BOOT_MODULES = example +DIRECT_BOOT_MODULES = example cxxtest testexample RUNTIME_MODULES = RELOCATABLE_IMAGE_LDFLAGS = -pie --export-dynamic diff --git a/src/usr/cxxtest/TestSuite.C b/src/usr/cxxtest/TestSuite.C new file mode 100755 index 000000000..c42e23a72 --- /dev/null +++ b/src/usr/cxxtest/TestSuite.C @@ -0,0 +1,42 @@ +// Imported from FSP tree - /src/test/cxxtest/cxxtest/ + +#ifndef __cxxtest__TestSuite_cpp__ +#define __cxxtest__TestSuite_cpp__ + +#include <cxxtest/TestSuite.H> +#include <stdarg.h> +#include <arch/ppc.H> + +namespace CxxTest +{ + // + // TestSuite members + // + TestSuite::~TestSuite() {} + void TestSuite::setUp() {} + void TestSuite::tearDown() {} + + // + // Some non-template functions + // + void doTrace( const char *file, unsigned line, const char *message ) + { + //tracker().trace( file, line, message ); + //printk("%s %u %s\n",file,line,message); + } + + void doWarn( const char *file, unsigned line, const char *message ) + { + //tracker().warning( file, line, message ); + //printk("%s %u %s\n",file,line,message); + } + + void doFailTest( const char *file, unsigned line, const char *message ) + { + //tracker().failedTest( file, line, message ); + //TS_ABORT(); + } + +}; + +#endif // __cxxtest__TestSuite_cpp__ diff --git a/src/usr/cxxtest/makefile b/src/usr/cxxtest/makefile new file mode 100644 index 000000000..1f14e4a6f --- /dev/null +++ b/src/usr/cxxtest/makefile @@ -0,0 +1,6 @@ +ROOTPATH = ../../.. +MODULE = cxxtest + +OBJS = TestSuite.o + +include ${ROOTPATH}/config.mk diff --git a/src/usr/example/example.C b/src/usr/example/example.C index 193bbb9d3..69291325b 100644 --- a/src/usr/example/example.C +++ b/src/usr/example/example.C @@ -11,6 +11,7 @@ #include <sys/vfs.h> #include <sys/task.h> #include <trace/interface.H> +#include <example/example.H> //static mutex_t value = mutex_create(); trace_desc_t *g_trac_test = NULL; @@ -42,3 +43,12 @@ void _start(void*) task_end(); } + +uint64_t example1_function() +{ + uint64_t l_rc = 0; + + TRACFCOMP(g_trac_test, "Someone Called example1_function!"); + + return l_rc; +} diff --git a/src/usr/example/makefile b/src/usr/example/makefile index 10a249ff9..f3a58399f 100644 --- a/src/usr/example/makefile +++ b/src/usr/example/makefile @@ -3,4 +3,6 @@ MODULE = example OBJS = example.o +SUBDIRS = test.d + include ${ROOTPATH}/config.mk diff --git a/src/usr/example/test/exampletest.C b/src/usr/example/test/exampletest.C new file mode 100644 index 000000000..a1cd84d51 --- /dev/null +++ b/src/usr/example/test/exampletest.C @@ -0,0 +1,31 @@ +// Note that this file will eventually be generated by the cxxtest perl +// script. This is here just as reference right now. + +#include <kernel/console.H> +#include <sys/mutex.h> +#include <sys/vfs.h> +#include <sys/task.h> +#include <trace/interface.H> +#include <example/example.H> +#include "exampletest.H" + +//static mutex_t value = mutex_create(); + + +trace_desc_t *g_trac_test = NULL; +TRAC_INIT(&g_trac_test, "EXAMPLE", 4096); + +extern "C" +void _start(void*) +{ + printk("Executing example test module.\n"); + + ExampleTest *l_ex = new ExampleTest(); + + l_ex->testExample1(); + + delete l_ex; + + task_end(); +} + diff --git a/src/usr/example/test/exampletest.H b/src/usr/example/test/exampletest.H new file mode 100644 index 000000000..aba750c08 --- /dev/null +++ b/src/usr/example/test/exampletest.H @@ -0,0 +1,28 @@ +#include <cxxtest/TestSuite.H> +#include <example/example.H> + +class ExampleTest: public CxxTest::TestSuite +{ +public: + void testExample1(void) + { + uint64_t l_rc = 0; + l_rc = example1_function(); + if(l_rc) + { + TS_FAIL("Call to example1_function1 failed!"); + } + } + void testExample2(void) + { + // Call functions and validate results + // TS_FAIL("Failed test call to example2 function"); + } + void testExample3(void) + { + // Call functions and validate results + // TS_FAIL("Failed test call to example3 function"); + } + +}; + diff --git a/src/usr/example/test/makefile b/src/usr/example/test/makefile new file mode 100644 index 000000000..690c64045 --- /dev/null +++ b/src/usr/example/test/makefile @@ -0,0 +1,6 @@ +ROOTPATH = ../../../.. +MODULE = testexample + +OBJS = exampletest.o + +include ${ROOTPATH}/config.mk diff --git a/src/usr/makefile b/src/usr/makefile index 321934359..7f48ff5c6 100644 --- a/src/usr/makefile +++ b/src/usr/makefile @@ -1,6 +1,6 @@ ROOTPATH = ../.. OBJS = module_init.o -SUBDIRS = example.d trace.d +SUBDIRS = example.d trace.d cxxtest.d include ${ROOTPATH}/config.mk |