summaryrefslogtreecommitdiffstats
path: root/src/usr/cxxtest
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2013-07-16 15:29:15 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-09-17 16:45:31 -0500
commit5652d7c0c6a8db05699f2b4334e4615e1ba22127 (patch)
treea04321010213943bc44a908a0de0e88149a7e7de /src/usr/cxxtest
parent7c3226b7ef2b3e09bd40823732f05fbf0fe6778f (diff)
downloadtalos-hostboot-5652d7c0c6a8db05699f2b4334e4615e1ba22127.tar.gz
talos-hostboot-5652d7c0c6a8db05699f2b4334e4615e1ba22127.zip
Initial Hostboot Runtime image support.
RTC: 76675 Change-Id: Ibd21cf5b555e6dcee182a2f1a292b47d4f384ba0 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/6127 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/cxxtest')
-rw-r--r--src/usr/cxxtest/makefile30
-rw-r--r--src/usr/cxxtest/runtime/makefile31
-rw-r--r--src/usr/cxxtest/runtime/rt_cxxtestexec.C76
3 files changed, 122 insertions, 15 deletions
diff --git a/src/usr/cxxtest/makefile b/src/usr/cxxtest/makefile
index 979ae0bd4..c02f22d8d 100644
--- a/src/usr/cxxtest/makefile
+++ b/src/usr/cxxtest/makefile
@@ -1,30 +1,30 @@
-# IBM_PROLOG_BEGIN_TAG
-# This is an automatically generated prolog.
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
#
-# $Source: src/usr/cxxtest/makefile $
+# $Source: src/usr/cxxtest/makefile $
#
-# IBM CONFIDENTIAL
+# IBM CONFIDENTIAL
#
-# COPYRIGHT International Business Machines Corp. 2011
+# COPYRIGHT International Business Machines Corp. 2011,2013
#
-# p1
+# p1
#
-# Object Code Only (OCO) source materials
-# Licensed Internal Code Source Materials
-# IBM HostBoot Licensed Internal Code
+# Object Code Only (OCO) source materials
+# Licensed Internal Code Source Materials
+# IBM HostBoot Licensed Internal Code
#
-# The source code for this program is not published or other-
-# wise divested of its trade secrets, irrespective of what has
-# been deposited with the U.S. Copyright Office.
+# The source code for this program is not published or otherwise
+# divested of its trade secrets, irrespective of what has been
+# deposited with the U.S. Copyright Office.
#
-# Origin: 30
+# Origin: 30
#
-# IBM_PROLOG_END
+# IBM_PROLOG_END_TAG
ROOTPATH = ../../..
MODULE = cxxtest
-SUBDIRS=test.d
+SUBDIRS=test.d runtime.d
OBJS = TestSuite.o cxxtestexec.o
diff --git a/src/usr/cxxtest/runtime/makefile b/src/usr/cxxtest/runtime/makefile
new file mode 100644
index 000000000..4bdab1441
--- /dev/null
+++ b/src/usr/cxxtest/runtime/makefile
@@ -0,0 +1,31 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/usr/cxxtest/runtime/makefile $
+#
+# IBM CONFIDENTIAL
+#
+# COPYRIGHT International Business Machines Corp. 2013
+#
+# p1
+#
+# Object Code Only (OCO) source materials
+# Licensed Internal Code Source Materials
+# IBM HostBoot Licensed Internal Code
+#
+# The source code for this program is not published or otherwise
+# divested of its trade secrets, irrespective of what has been
+# deposited with the U.S. Copyright Office.
+#
+# Origin: 30
+#
+# IBM_PROLOG_END_TAG
+HOSTBOOT_RUNTIME = 1
+ROOTPATH = ../../../..
+MODULE = cxxtest_rt
+
+OBJS = TestSuite.o rt_cxxtestexec.o
+
+VPATH += ..
+
+include ${ROOTPATH}/config.mk
diff --git a/src/usr/cxxtest/runtime/rt_cxxtestexec.C b/src/usr/cxxtest/runtime/rt_cxxtestexec.C
new file mode 100644
index 000000000..08956f00a
--- /dev/null
+++ b/src/usr/cxxtest/runtime/rt_cxxtestexec.C
@@ -0,0 +1,76 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/cxxtest/runtime/rt_cxxtestexec.C $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2013 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
+#include <cxxtest/TestSuite.H>
+#include <limits.h>
+#include <hbotcompid.H>
+#include <runtime/interface.h>
+
+#include <kernel/console.H>
+#include <vfs/vfs.H>
+
+trace_desc_t *g_trac_cxxtest = NULL;
+TRAC_INIT(&g_trac_cxxtest, CXXTEST_COMP_NAME, KILOBYTE );
+
+namespace CxxTest
+{
+ void execute(void* io_stats)
+ {
+ CxxTestStats* stats = reinterpret_cast<CxxTestStats*>(io_stats);
+
+ std::vector<const char*> module_list;
+ VFS::find_test_modules(module_list);
+
+ printk("Running Runtime CXX Tests: %ld\n", module_list.size());
+
+ g_ModulesStarted++;
+ for (std::vector<const char*>::const_iterator i = module_list.begin();
+ i != module_list.end();
+ ++i)
+ {
+ g_ModulesStarted++;
+
+ printk("\tRunning Runtime test: %s\n", *i);
+ void* (*start_entry)(void*) = reinterpret_cast<void*(*)(void*)>(
+ vfs_start_entrypoint(vfs_find_module(VFS_MODULES, *i)));
+ start_entry(NULL);
+ }
+
+ g_ModulesCompleted++;
+
+ __sync_add_and_fetch(stats->totalTests, g_TotalTests);
+ __sync_add_and_fetch(stats->traceCalls, g_TraceCalls);
+ __sync_add_and_fetch(stats->warnings, g_Warnings);
+ __sync_add_and_fetch(stats->failedTests, g_FailedTests);
+ __sync_add_and_fetch(stats->modulesStarted, g_ModulesStarted);
+ __sync_add_and_fetch(stats->modulesCompleted, g_ModulesCompleted);
+ }
+
+ struct registerCxxTest
+ {
+ registerCxxTest()
+ {
+ getRuntimeInterfaces()->cxxtestExecute = &execute;
+ }
+ };
+ registerCxxTest g_register;
+}
OpenPOWER on IntegriCloud