summaryrefslogtreecommitdiffstats
path: root/src/usr/cxxtest/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/cxxtest/runtime')
-rw-r--r--src/usr/cxxtest/runtime/makefile31
-rw-r--r--src/usr/cxxtest/runtime/rt_cxxtestexec.C76
2 files changed, 107 insertions, 0 deletions
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