[PATCH 5/9] tests: Use rtems_test_printer in general

Sebastian Huber sebastian.huber at embedded-brains.de
Thu Oct 26 11:59:09 UTC 2017


Update #3170.
Update #3199.
---
 testsuites/libtests/block02/init.c          |   1 +
 testsuites/libtests/block03/init.c          |   1 +
 testsuites/libtests/block04/init.c          |   1 +
 testsuites/libtests/block05/init.c          |   1 +
 testsuites/libtests/termios06/init.c        |   1 +
 testsuites/sptests/spfatal03/testcase.h     |   2 +
 testsuites/sptests/spprintk/init.c          |   1 +
 testsuites/support/include/buffer_test_io.h | 225 ++++++----------------------
 testsuites/support/include/tmacros.h        |   4 +-
 testsuites/support/src/locked_print.c       |   2 +
 10 files changed, 59 insertions(+), 180 deletions(-)

diff --git a/testsuites/libtests/block02/init.c b/testsuites/libtests/block02/init.c
index f7dc3efd0d..3523c5d364 100644
--- a/testsuites/libtests/block02/init.c
+++ b/testsuites/libtests/block02/init.c
@@ -30,6 +30,7 @@
 #include "tmacros.h"
 
 #include <rtems.h>
+#include <rtems/bspIo.h>
 #include <rtems/ramdisk.h>
 #include <rtems/bdbuf.h>
 #include <rtems/diskdevs.h>
diff --git a/testsuites/libtests/block03/init.c b/testsuites/libtests/block03/init.c
index f2f6bd9ee4..ea82421e7f 100644
--- a/testsuites/libtests/block03/init.c
+++ b/testsuites/libtests/block03/init.c
@@ -30,6 +30,7 @@
 #include "tmacros.h"
 
 #include <rtems.h>
+#include <rtems/bspIo.h>
 #include <rtems/ramdisk.h>
 #include <rtems/bdbuf.h>
 #include <rtems/diskdevs.h>
diff --git a/testsuites/libtests/block04/init.c b/testsuites/libtests/block04/init.c
index 3d674c1107..d9748df609 100644
--- a/testsuites/libtests/block04/init.c
+++ b/testsuites/libtests/block04/init.c
@@ -30,6 +30,7 @@
 #include "tmacros.h"
 
 #include <rtems.h>
+#include <rtems/bspIo.h>
 #include <rtems/ramdisk.h>
 #include <rtems/bdbuf.h>
 #include <rtems/diskdevs.h>
diff --git a/testsuites/libtests/block05/init.c b/testsuites/libtests/block05/init.c
index 7a40b50b3c..80e3641820 100644
--- a/testsuites/libtests/block05/init.c
+++ b/testsuites/libtests/block05/init.c
@@ -32,6 +32,7 @@
 #include <errno.h>
 
 #include <rtems.h>
+#include <rtems/bspIo.h>
 #include <rtems/bdbuf.h>
 #include <rtems/diskdevs.h>
 
diff --git a/testsuites/libtests/termios06/init.c b/testsuites/libtests/termios06/init.c
index 5c39dabacf..c1e04eb6d8 100644
--- a/testsuites/libtests/termios06/init.c
+++ b/testsuites/libtests/termios06/init.c
@@ -22,6 +22,7 @@
 #include <fcntl.h>
 #include <unistd.h>
 #include <sys/ioctl.h>
+#include <rtems/bspIo.h>
 #include <rtems/dumpbuf.h>
 #include <rtems/termiostypes.h>
 
diff --git a/testsuites/sptests/spfatal03/testcase.h b/testsuites/sptests/spfatal03/testcase.h
index 90ed0535b3..b6935657ea 100644
--- a/testsuites/sptests/spfatal03/testcase.h
+++ b/testsuites/sptests/spfatal03/testcase.h
@@ -9,6 +9,8 @@
  *  http://www.rtems.org/license/LICENSE.
  */
 
+#include <rtems/bspIo.h>
+
 #define CONFIGURE_MAXIMUM_SEMAPHORES 10
 
 #define FATAL_ERROR_TEST_NAME            "3"
diff --git a/testsuites/sptests/spprintk/init.c b/testsuites/sptests/spprintk/init.c
index 3d9b00149f..52f0ccdada 100644
--- a/testsuites/sptests/spprintk/init.c
+++ b/testsuites/sptests/spprintk/init.c
@@ -25,6 +25,7 @@
 #define TEST_INIT
 
 #define TESTS_USE_PRINTK
+#include <rtems/bspIo.h>
 #include <tmacros.h>
 
 const char rtems_test_name[] = "SPPRINTK";
diff --git a/testsuites/support/include/buffer_test_io.h b/testsuites/support/include/buffer_test_io.h
index dff312d132..1ff15f6ca8 100644
--- a/testsuites/support/include/buffer_test_io.h
+++ b/testsuites/support/include/buffer_test_io.h
@@ -5,7 +5,6 @@
 #ifndef __BUFFER_TEST_IO_h
 #define __BUFFER_TEST_IO_h
 
-#include <rtems/bspIo.h>
 #include <rtems/test.h>
 
 #ifdef __cplusplus
@@ -34,186 +33,56 @@ extern "C" {
   #define TEST_STATE_STRING "*** TEST STATE: BENCHMARK\n"
 #endif
 
-/*
- *  USE PRINTK TO MINIMIZE SIZE
- */
-#if defined(TESTS_USE_PRINTK)
-
-#include <rtems/print.h>
-
-  #undef printf
-  #define printf(...) \
-    do { \
-       printk( __VA_ARGS__); \
-    } while (0)
-
-  #undef puts
-  #define puts(_s) \
-    do { \
-       printk( "%s\n", _s); \
-    } while (0)
-
-  #undef putchar
-  #define putchar(_c) \
-    do { \
-       printk( "%c", _c ); \
-    } while (0)
-
-  /* Do not call exit() since it closes stdin, etc and pulls in stdio code */
-  #define rtems_test_exit(_s) \
-    do { \
-      rtems_shutdown_executive(0); \
-    } while (0)
-
-  #define FLUSH_OUTPUT() \
-    do { \
-    } while (0)
-
-  #if defined(TEST_STATE_STRING)
-    #define TEST_BEGIN() \
-    do { \
-      printk("\n"); \
-      printk(TEST_BEGIN_STRING); \
-      printk(TEST_STATE_STRING); \
-    } while (0)
-  #else
-    #define TEST_BEGIN() \
-    do { \
-      printk("\n"); \
-      printk(TEST_BEGIN_STRING); \
-    } while (0)
-  #endif
-
-  #define TEST_END() \
-    do { \
-       printk( "\n" ); \
-       printk(TEST_END_STRING); \
-       printk( "\n" ); \
-    } while (0)
-
-/*
- *  BUFFER TEST OUTPUT
- */
+#undef printf
+#define printf(...) \
+  do { \
+     rtems_printf( &rtems_test_printer, __VA_ARGS__ ); \
+  } while (0)
+
+#undef puts
+#define puts(_s) \
+  do { \
+     rtems_printf( &rtems_test_printer, "%s\n", _s ); \
+  } while (0)
+
+#undef putchar
+#define putchar(_c) \
+  do { \
+     rtems_printf( &rtems_test_printer, "%c", _c ); \
+  } while (0)
+
+/* Do not call exit() since it closes stdin, etc and pulls in stdio code */
+#define rtems_test_exit(_s) \
+  do { \
+    rtems_shutdown_executive(0); \
+  } while (0)
+
+#define FLUSH_OUTPUT() \
+  do { \
+  } while (0)
+
+#if defined(TEST_STATE_STRING)
+  #define TEST_BEGIN() \
+  do { \
+    rtems_printf( &rtems_test_printer, "\n"); \
+    rtems_printf( &rtems_test_printer, TEST_BEGIN_STRING ); \
+    rtems_printf( &rtems_test_printer, TEST_STATE_STRING ); \
+  } while (0)
 #else
-
-  #include <stdio.h>
-  #include <stdlib.h>
-
-  #define TEST_PRINT__FORMAT(_fmtpos, _appos) \
-              __attribute__((__format__(__printf__, _fmtpos, _appos)))
-
-  #define _TEST_OUTPUT_BUFFER_SIZE 2048
-
-  extern char _test_output_buffer[_TEST_OUTPUT_BUFFER_SIZE];
-
-  void _test_output_printf(const char *, ...) TEST_PRINT__FORMAT(1, 2);
-  void _test_output_append(const char *);
-  void _test_output_flush(void);
-
-  #define rtems_test_exit(_s) \
-    do { \
-      fflush(stdout); \
-      fflush(stderr); \
-      _test_output_flush(); \
-      exit(_s); \
-    } while (0)
-
-  #undef printf
-  #define printf(...) _test_output_printf( __VA_ARGS__ )
-
-  #undef puts
-  #define puts(_string) \
-    do { \
-       _test_output_append( _string ); \
-       _test_output_append( "\n" ); \
-    } while (0)
-
-  #undef putchar
-  #define putchar(_c) \
-    do { \
-       char _buffer[2]; \
-       _buffer[0] = _c; \
-       _buffer[1] = '\0'; \
-       _test_output_append( _buffer ); \
-    } while (0)
-
-  /* we write to stderr when there is a pause() */
-  #define FLUSH_OUTPUT() _test_output_flush()
-
-  #if defined(TEST_STATE_STRING)
-    #define TEST_BEGIN() \
-    do { \
-       _test_output_append( "\n" ); \
-       _test_output_printf(TEST_BEGIN_STRING); \
-       _test_output_append(TEST_STATE_STRING); \
-       _test_output_append( "\n" ); \
-    } while (0)
-  #else
-    #define TEST_BEGIN() \
-      do { \
-         _test_output_append( "\n" ); \
-         _test_output_printf(TEST_BEGIN_STRING); \
-         _test_output_append( "\n" ); \
-      } while (0)
-  #endif
-
-  #define TEST_END() \
-    do { \
-       _test_output_append( "\n" ); \
-       _test_output_printf(TEST_END_STRING); \
-       _test_output_append( "\n" ); \
-    } while (0)
-
-  /*
-   * Inline the tests this way because adding the code to the support directory
-   * requires all the makefile files to changed.
-   */
-  #if defined(TEST_INIT)
-
-    char _test_output_buffer[_TEST_OUTPUT_BUFFER_SIZE];
-    int _test_output_buffer_index = 0;
-
-    void _test_output_printf(const char* format, ...)
-    {
-      va_list args;
-      char*   in;
-      size_t  size;
-      bool    lf;
-      va_start(args, format);
-      in = _test_output_buffer + _test_output_buffer_index;
-      size = vsniprintf(in,
-                        _TEST_OUTPUT_BUFFER_SIZE - _test_output_buffer_index,
-                        format, args);
-      lf = memchr(in, '\n', size);
-      _test_output_buffer_index += size;
-      if ( lf || _test_output_buffer_index >= (_TEST_OUTPUT_BUFFER_SIZE - 80) )
-        _test_output_flush();
-      va_end(args);
-    }
-
-    void _test_output_append(const char *_buffer)
-    {
-      char*  in;
-      size_t size;
-      bool   lf;
-      in = _test_output_buffer + _test_output_buffer_index;
-      size = strlcpy(in, _buffer, _TEST_OUTPUT_BUFFER_SIZE - _test_output_buffer_index);
-      lf = memchr(in, '\n', size);
-      if ( lf || _test_output_buffer_index >= (_TEST_OUTPUT_BUFFER_SIZE - 80) )
-        _test_output_flush();
-    }
-
-    void _test_output_flush(void)
-    {
-      printk( _test_output_buffer );
-      _test_output_buffer_index = 0;
-      _test_output_buffer[0] = '\0';
-    }
-
-  #endif
-
+  #define TEST_BEGIN() \
+  do { \
+    rtems_printf( &rtems_test_printer, "\n" ); \
+    rtems_printf( &rtems_test_printer, TEST_BEGIN_STRING ); \
+  } while (0)
 #endif
 
+#define TEST_END() \
+  do { \
+     rtems_printf( &rtems_test_printer, "\n" ); \
+     rtems_printf( &rtems_test_printer, TEST_END_STRING ); \
+     rtems_printf( &rtems_test_printer, "\n" ); \
+  } while (0)
+
 #ifdef __cplusplus
 };
 #endif
diff --git a/testsuites/support/include/tmacros.h b/testsuites/support/include/tmacros.h
index e0418663b5..86dceb9e00 100644
--- a/testsuites/support/include/tmacros.h
+++ b/testsuites/support/include/tmacros.h
@@ -60,7 +60,7 @@ extern "C" {
            && (((!_Thread_Dispatch_is_enabled()) == false && (_expect) != 0) \
              || ((!_Thread_Dispatch_is_enabled()) && (_expect) == 0)) \
     ) { \
-      printk( \
+      printf( \
         "\n_Thread_Dispatch_disable_level is (%i)" \
            " not %d detected at %s:%d\n", \
          !_Thread_Dispatch_is_enabled(), (_expect), __FILE__, __LINE__ ); \
@@ -77,7 +77,7 @@ extern "C" {
 #define check_if_allocator_mutex_is_not_owned() \
   do { \
     if ( _RTEMS_Allocator_is_owner() ) { \
-      printk( \
+      printf( \
         "\nRTEMS Allocator Mutex is owned by executing thread " \
           "and should not be.\n" \
         "Detected at %s:%d\n", \
diff --git a/testsuites/support/src/locked_print.c b/testsuites/support/src/locked_print.c
index 29e3bdcf6a..3bbaab0c4f 100644
--- a/testsuites/support/src/locked_print.c
+++ b/testsuites/support/src/locked_print.c
@@ -14,6 +14,8 @@
 #include "test_support.h"
 #include "tmacros.h"
 
+#include <rtems/bspIo.h>
+
 static rtems_id locked_print_semaphore;      /* synchronisation semaphore */
 
 static int locked_printf_plugin(void *context, const char *fmt, va_list ap)
-- 
2.12.3




More information about the devel mailing list