From 7e1029158ed6f11e36341a57fed07fa3014068da Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 26 Oct 2017 13:59:09 +0200 Subject: tests: Use rtems_test_printer in general Update #3170. Update #3199. --- testsuites/support/include/buffer_test_io.h | 225 ++++++---------------------- testsuites/support/include/tmacros.h | 4 +- 2 files changed, 49 insertions(+), 180 deletions(-) (limited to 'testsuites/support/include') 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 #include #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 - - #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 - #include - - #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", \ -- cgit v1.2.3