diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-03-10 14:39:41 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-03-17 09:17:36 +0100 |
commit | 840ae715a9c1e45b31d7a493e9b5c4113e17bf62 (patch) | |
tree | 9c101a3db9e8b236df0b060d21d93758843182ef /cpukit | |
parent | score: Add include for uintptr_t definition. (diff) | |
download | rtems-840ae715a9c1e45b31d7a493e9b5c4113e17bf62.tar.bz2 |
sapi: Add <rtems/test.h>
Provide support functions to print the begin/end of test message.
Provide a test fatal extension to print out profiling reports in the
future.
Diffstat (limited to 'cpukit')
-rw-r--r-- | cpukit/sapi/Makefile.am | 3 | ||||
-rw-r--r-- | cpukit/sapi/include/rtems/test.h | 125 | ||||
-rw-r--r-- | cpukit/sapi/preinstall.am | 4 | ||||
-rw-r--r-- | cpukit/sapi/src/testbeginend.c | 43 | ||||
-rw-r--r-- | cpukit/sapi/src/testextension.c | 30 |
5 files changed, 205 insertions, 0 deletions
diff --git a/cpukit/sapi/Makefile.am b/cpukit/sapi/Makefile.am index 19f7d87f61..37a2fa4228 100644 --- a/cpukit/sapi/Makefile.am +++ b/cpukit/sapi/Makefile.am @@ -18,6 +18,7 @@ include_rtems_HEADERS += include/rtems/profiling.h include_rtems_HEADERS += include/rtems/rbheap.h include_rtems_HEADERS += include/rtems/rbtree.h include_rtems_HEADERS += include/rtems/sptables.h +include_rtems_HEADERS += include/rtems/test.h include_rtems_HEADERS += include/rtems/timespec.h EXTRA_DIST = include/rtems/README @@ -39,6 +40,8 @@ libsapi_a_SOURCES += src/delayticks.c libsapi_a_SOURCES += src/delaynano.c libsapi_a_SOURCES += src/profilingiterate.c libsapi_a_SOURCES += src/profilingreportxml.c +libsapi_a_SOURCES += src/testbeginend.c +libsapi_a_SOURCES += src/testextension.c libsapi_a_CPPFLAGS = $(AM_CPPFLAGS) include $(srcdir)/preinstall.am diff --git a/cpukit/sapi/include/rtems/test.h b/cpukit/sapi/include/rtems/test.h new file mode 100644 index 0000000000..91a5a22906 --- /dev/null +++ b/cpukit/sapi/include/rtems/test.h @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2014 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Dornierstr. 4 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + */ + +#ifndef _RTEMS_TEST_H +#define _RTEMS_TEST_H + +#include <rtems.h> +#include <rtems/bspIo.h> + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup RTEMSTest Test Support + * + * @brief Test support functions. + * + * @{ + */ + +/** + * @brief Each test must define a test name string. + */ +extern const char rtems_test_name[]; + +/** + * @brief Fatal extension for tests. + */ +void rtems_test_fatal_extension( + rtems_fatal_source source, + bool is_internal, + rtems_fatal_code code +); + +/** + * @brief Initial extension for tests. + */ +#define RTEMS_TEST_INITIAL_EXTENSION \ + { NULL, NULL, NULL, NULL, NULL, NULL, NULL, rtems_test_fatal_extension } + +/** + * @brief Prints a begin of test message. + * + * @param[in] printf_func The formatted output function. + * @param[in, out] printf_arg The formatted output function argument. + * + * @returns As specified by printf(). + */ +int rtems_test_begin_with_plugin( + rtems_printk_plugin_t printf_func, + void *printf_arg +); + +/** + * @brief Prints a begin of test message using printf(). + * + * @returns As specified by printf(). + */ +static inline int rtems_test_begin(void) +{ + return rtems_test_begin_with_plugin(rtems_printf_plugin, NULL); +} + +/** + * @brief Prints a begin of test message using printk(). + * + * @returns As specified by printf(). + */ +static inline int rtems_test_begink(void) +{ + return rtems_test_begin_with_plugin(printk_plugin, NULL); +} + +/** + * @brief Prints an end of test message. + * + * @param[in] printf_func The formatted output function. + * @param[in, out] printf_arg The formatted output function argument. + * + * @returns As specified by printf(). + */ +int rtems_test_end_with_plugin( + rtems_printk_plugin_t printf_func, + void *printf_arg +); + +/** + * @brief Prints an end of test message using printf(). + * + * @returns As specified by printf(). + */ +static inline int rtems_test_end(void) +{ + return rtems_test_end_with_plugin(rtems_printf_plugin, NULL); +} + +/** + * @brief Prints an end of test message using printk(). + * + * @returns As specified by printf(). + */ +static inline int rtems_test_endk(void) +{ + return rtems_test_end_with_plugin(printk_plugin, NULL); +} + +/** @} */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* _RTEMS_TEST_H */ diff --git a/cpukit/sapi/preinstall.am b/cpukit/sapi/preinstall.am index d05ab256a1..7e18d3ab54 100644 --- a/cpukit/sapi/preinstall.am +++ b/cpukit/sapi/preinstall.am @@ -88,6 +88,10 @@ $(PROJECT_INCLUDE)/rtems/sptables.h: include/rtems/sptables.h $(PROJECT_INCLUDE) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/sptables.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/sptables.h +$(PROJECT_INCLUDE)/rtems/test.h: include/rtems/test.h $(PROJECT_INCLUDE)/rtems/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/test.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/test.h + $(PROJECT_INCLUDE)/rtems/timespec.h: include/rtems/timespec.h $(PROJECT_INCLUDE)/rtems/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/timespec.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/timespec.h diff --git a/cpukit/sapi/src/testbeginend.c b/cpukit/sapi/src/testbeginend.c new file mode 100644 index 0000000000..dac0763440 --- /dev/null +++ b/cpukit/sapi/src/testbeginend.c @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2014 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Dornierstr. 4 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + */ + +#ifdef HAVE_CONFIG_H + #include "config.h" +#endif + +#include <rtems/test.h> + +int rtems_test_begin_with_plugin( + rtems_printk_plugin_t printf_func, + void *printf_arg +) +{ + return (*printf_func)( + printf_arg, + "\n\n*** BEGIN OF TEST %s ***\n", + rtems_test_name + ); +} + +int rtems_test_end_with_plugin( + rtems_printk_plugin_t printf_func, + void *printf_arg +) +{ + return (*printf_func)( + printf_arg, + "*** END OF TEST %s ***\n", + rtems_test_name + ); +} diff --git a/cpukit/sapi/src/testextension.c b/cpukit/sapi/src/testextension.c new file mode 100644 index 0000000000..a896c783a7 --- /dev/null +++ b/cpukit/sapi/src/testextension.c @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2014 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Dornierstr. 4 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + */ + +#ifdef HAVE_CONFIG_H + #include "config.h" +#endif + +#include <rtems/test.h> + +void rtems_test_fatal_extension( + rtems_fatal_source source, + bool is_internal, + rtems_fatal_code code +) +{ + (void) source; + (void) is_internal; + (void) code; +} |