summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Geissler <andrewg@us.ibm.com>2011-05-10 17:20:10 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2011-05-16 16:51:41 -0500
commite604f02230c3decedbdd56a3cfef66b0709b74dc (patch)
tree85ebf5ba3dd090bd80d8651fdf4b4855a2022a30
parentf25d156f4a222923d70563ba960858f4e42a80c8 (diff)
downloadtalos-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-xsrc/include/usr/cxxtest/TestSuite.H54
-rw-r--r--src/include/usr/example/example.H18
-rw-r--r--src/makefile2
-rwxr-xr-xsrc/usr/cxxtest/TestSuite.C42
-rw-r--r--src/usr/cxxtest/makefile6
-rw-r--r--src/usr/example/example.C10
-rw-r--r--src/usr/example/makefile2
-rw-r--r--src/usr/example/test/exampletest.C31
-rw-r--r--src/usr/example/test/exampletest.H28
-rw-r--r--src/usr/example/test/makefile6
-rw-r--r--src/usr/makefile2
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
OpenPOWER on IntegriCloud