On 05/11/17 08:45, Chris Johns wrote:
diff --git a/cpukit/libmisc/testsupport/test.h
b/cpukit/libmisc/testsupport/test.h
index d9ac6caf91..258667a923 100644
--- a/cpukit/libmisc/testsupport/test.h
+++ b/cpukit/libmisc/testsupport/test.h
@@ -18,6 +18,7 @@
#include <rtems.h>
#include <rtems/printer.h>
#include <rtems/score/atomic.h>
+#include <rtems/score/cpuopts.h>
This is available via <rtems.h>.
#include <rtems/score/smpbarrier.h>
#ifdef __cplusplus
@@ -58,6 +59,98 @@ void rtems_test_fatal_extension(
{ NULL, NULL, NULL, NULL, NULL, NULL, NULL, rtems_test_fatal_extension }
/**
+ * @brief Build of the kernel. Print the test's build state and tools.
+ */
+#define TEST_BUILD_DEFAULT "default"
+#if RTEMS_POSIX
+ #define TEST_BUILD_DEFAULT ""
+ #define TEST_BUILD_POSIX "posix "
+#else
+ #define TEST_BUILD_POSIX
+#endif
+#if RTEMS_SMP
+ #define TEST_BUILD_DEFAULT ""
+ #define TEST_BUILD_SMP "smp "
+#else
+ #define TEST_BUILD_SMP
+#endif
+#if RTEMS_MULTIPROCESSING
+ #define TEST_BUILD_DEFAULT ""
+ #define TEST_BUILD_MP "mp "
+#else
+ #define TEST_BUILD_MP
+#endif
+#if RTEMS_PARAVIRT
+ #define TEST_BUILD_DEFAULT ""
+ #define TEST_BUILD_PARAVIRT "paravirt "
+#else
+ #define TEST_BUILD_PARAVIRT
+#endif
+#if RTEMS_NETWORKING
+ #define TEST_BUILD_DEFAULT ""
+ #define TEST_BUILD_NETWORKING "legacy-net "
+#else
+ #define TEST_BUILD_NETWORKING
+#endif
+#if RTEMS_DEBUG
+ #define TEST_BUILD_DEFAULT ""
+ #define TEST_BUILD_DEBUG "debug "
+#else
+ #define TEST_BUILD_DEBUG
+#endif
+#if RTEMS_PROFILING
+ #define TEST_BUILD_DEFAULT ""
+ #define TEST_BUILD_PROFILING "profiling "
+#else
+ #define TEST_BUILD_PROFILING
+#endif
These defines are only used in one source file. I would move this to the
source file.
+
+#define TEST_BUILD_STRING \
+ "*** TEST BUILD: " TEST_BUILD_DEFAULT \
+ TEST_BUILD_POSIX \
+ TEST_BUILD_SMP \
+ TEST_BUILD_MP \
+ TEST_BUILD_PARAVIRT \
+ TEST_BUILD_NETWORKING \
+ TEST_BUILD_DEBUG \
+ TEST_BUILD_PROFILING \
+ "\n"
+
+/**
+ * @brief Tools being used to build the kernel and tests.
+ */
+#define TEST_TOOLS_STRING "*** TEST TOOLS: " __VERSION__ "\n"
+
+/**
+ * @brief Test states.
+ */
+#if (TEST_STATE_EXPECTED_FAIL && TEST_STATE_USER_INPUT) || \
+ (TEST_STATE_EXPECTED_FAIL && TEST_STATE_INDETERMINATE) || \
+ (TEST_STATE_EXPECTED_FAIL && TEST_STATE_BENCHMARK) || \
+ (TEST_STATE_USER_INPUT && TEST_STATE_INDETERMINATE) || \
+ (TEST_STATE_USER_INPUT && TEST_STATE_BENCHMARK) || \
+ (TEST_STATE_INDETERMINATE && TEST_STATE_BENCHMARK)
+ #error Test states must be unique
+#endif
Maybe we should separate the test classification from the actual output
and use an enum:
typedef enum {
RTEMS_TEST_TYPE_USER_INPUT,
RTEMS_TEST_TYPE_BENCHMARK,
...
} rtems_test_type;
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.hu...@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel