[Skiboot] [RFC PATCH 04/10] core/test: add more test stubs
Oliver O'Halloran
oohall at gmail.com
Wed Dec 21 16:35:38 AEDT 2016
Adds a new kind of stub, the no-op stub which does nothing rather than
calling abort(). Also redefines them as weak symbols so that if the
thing being tested changes to require a normally stubbed function we
can just add the actual function to the test.
Signed-off-by: Oliver O'Halloran <oohall at gmail.com>
---
core/test/Makefile.check | 6 +-----
core/test/run-api-test.c | 1 -
core/test/run-msg.c | 3 ---
core/test/stubs.c | 38 +++++++++++++++++++++++++++++++++++++-
4 files changed, 38 insertions(+), 10 deletions(-)
diff --git a/core/test/Makefile.check b/core/test/Makefile.check
index cea72a94a297..00347066ef4d 100644
--- a/core/test/Makefile.check
+++ b/core/test/Makefile.check
@@ -1,5 +1,6 @@
# -*-Makefile-*-
CORE_TEST := core/test/run-device \
+ core/test/run-console-flush \
core/test/run-flash-subpartition \
core/test/run-mem_region \
core/test/run-malloc \
@@ -22,11 +23,6 @@ CORE_TEST := core/test/run-device \
HOSTCFLAGS+=-I . -I include
-CORE_TEST_NOSTUB := core/test/run-console-log
-CORE_TEST_NOSTUB += core/test/run-console-log-buf-overrun
-CORE_TEST_NOSTUB += core/test/run-console-log-pr_fmt
-CORE_TEST_NOSTUB += core/test/run-api-test
-
LCOV_EXCLUDE += $(CORE_TEST:%=%.c) core/test/stubs.c
LCOV_EXCLUDE += $(CORE_TEST_NOSTUB:%=%.c) /usr/include/*
diff --git a/core/test/run-api-test.c b/core/test/run-api-test.c
index 583910dfd6c7..10f4cec8f11e 100644
--- a/core/test/run-api-test.c
+++ b/core/test/run-api-test.c
@@ -28,7 +28,6 @@
#include <opal-internal.h>
#define __TEST__
-unsigned long top_of_ram; /* Fake it here */
int main(void)
{
unsigned long addr = 0xd000000000000000;
diff --git a/core/test/run-msg.c b/core/test/run-msg.c
index 3a7b7dd395f2..66b8429729ea 100644
--- a/core/test/run-msg.c
+++ b/core/test/run-msg.c
@@ -23,9 +23,6 @@
static bool zalloc_should_fail = false;
static int zalloc_should_fail_after = 0;
-/* Fake top_of_ram -- needed for API's */
-unsigned long top_of_ram = 16ULL * 1024 * 1024 * 1024;
-
static void *zalloc(size_t size)
{
if (zalloc_should_fail && zalloc_should_fail_after == 0) {
diff --git a/core/test/stubs.c b/core/test/stubs.c
index 39ff18d8f103..29b046e62fac 100644
--- a/core/test/stubs.c
+++ b/core/test/stubs.c
@@ -17,6 +17,8 @@
#include <stdio.h>
#include <stdarg.h>
+#define __weak __attribute__((weak))
+
#include "../../ccan/list/list.c"
void _prlog(int log_level __attribute__((unused)), const char* fmt, ...) __attribute__((format (printf, 2, 3)));
@@ -24,9 +26,11 @@ void _prlog(int log_level __attribute__((unused)), const char* fmt, ...) __attri
#ifndef pr_fmt
#define pr_fmt(fmt) fmt
#endif
+
+#ifndef prlog
#define prlog(l, f, ...) do { _prlog(l, pr_fmt(f), ##__VA_ARGS__); } while(0)
-void _prlog(int log_level __attribute__((unused)), const char* fmt, ...)
+void __attribute__((weak)) _prlog(int log_level __attribute__((unused)), const char* fmt, ...)
{
va_list ap;
@@ -34,6 +38,7 @@ void _prlog(int log_level __attribute__((unused)), const char* fmt, ...)
vprintf(fmt, ap);
va_end(ap);
}
+#endif
/* Add any stub functions required for linking here. */
static void stub_function(void)
@@ -41,9 +46,20 @@ static void stub_function(void)
abort();
}
+
+static int noop_function(void)
+{
+ return 0;
+}
+
+/* this stub shit is terrible */
+
#define STUB(fnname) \
void fnname(void) __attribute__((weak, alias ("stub_function")))
+#define NOOP_STUB(fnname) \
+ void fnname(void) __attribute__((weak, alias ("noop_function")))
+
STUB(fdt_begin_node);
STUB(fdt_property);
STUB(fdt_end_node);
@@ -61,3 +77,23 @@ STUB(dt_next);
STUB(dt_has_node_property);
STUB(dt_get_address);
STUB(add_chip_dev_associativity);
+
+STUB(__dt_add_property_cells);
+STUB(dt_add_property_string);
+STUB(dt_del_property);
+STUB(dt_find_by_name);
+STUB(__dt_find_property);
+STUB(dt_new);
+STUB(dt_new_addr);
+STUB(opal_add_poller);
+STUB(__opal_register);
+
+NOOP_STUB(lock_recursive);
+NOOP_STUB(lock);
+NOOP_STUB(unlock);
+NOOP_STUB(opal_update_pending_evt);
+
+unsigned long __weak top_of_ram = 16ULL * 1024 * 1024 * 1024;
+
+struct dt_node *opal_node = NULL;
+struct dt_node *dt_chosen = NULL;
--
2.7.4
More information about the Skiboot
mailing list