From 82fbd358baf0ace0ecfc76cbbdb49505470b8402 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 21 Jun 2010 16:54:17 +0000 Subject: 2010-06-21 Joel Sherrill * support/include/test_support.h, support/src/tmtests_empty_function.c: Add helper so it is easier to write a basic repeated operation tmtest. * support/src/tmtests_support.c: New file. --- testsuites/support/include/test_support.h | 25 ++++++++++++ testsuites/support/src/tmtests_empty_function.c | 7 ++++ testsuites/support/src/tmtests_support.c | 53 +++++++++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 testsuites/support/src/tmtests_support.c (limited to 'testsuites/support') diff --git a/testsuites/support/include/test_support.h b/testsuites/support/include/test_support.h index b7f4aa281a..cbb2c4de55 100644 --- a/testsuites/support/include/test_support.h +++ b/testsuites/support/include/test_support.h @@ -46,6 +46,31 @@ void rtems_test_spin_for_ticks(int ticks); */ void rtems_test_spin_until_next_tick( void ); +/*********************************************************************/ +/*********************************************************************/ +/************** TMTEST SUPPORT **************/ +/*********************************************************************/ +/*********************************************************************/ + +/* + * Type of method used for timing operations + */ +typedef void (*rtems_time_test_method_t)( + int iteration, + void *argument +); + +/* + * Obtain baseline timing information for benchmark tests. + */ +void rtems_time_test_measure_operation( + const char *description, + rtems_time_test_method_t operation, + void *argument, + int iterations, + int overhead +); + #ifdef __cplusplus }; #endif diff --git a/testsuites/support/src/tmtests_empty_function.c b/testsuites/support/src/tmtests_empty_function.c index c8ed245bb1..17ac5bf39c 100644 --- a/testsuites/support/src/tmtests_empty_function.c +++ b/testsuites/support/src/tmtests_empty_function.c @@ -20,3 +20,10 @@ rtems_status_code benchmark_timer_empty_function( void ) { return RTEMS_SUCCESSFUL; } + +void benchmark_timer_empty_operation( + int iteration, + void *argument +) +{ +} diff --git a/testsuites/support/src/tmtests_support.c b/testsuites/support/src/tmtests_support.c new file mode 100644 index 0000000000..350b35c85c --- /dev/null +++ b/testsuites/support/src/tmtests_support.c @@ -0,0 +1,53 @@ +/* + * COPYRIGHT (c) 1989-2010. + * On-Line Applications Research Corporation (OAR). + * + * 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. + * + * $Id$ + */ + +#include +#include +#include "test_support.h" +#include "timesys.h" + +extern void benchmark_timer_empty_operation( + int iteration, + void *argument +); + +void rtems_time_test_measure_operation( + const char *description, + rtems_time_test_method_t operation, + void *argument, + int iterations, + int overhead +) +{ + int i; + int loop_overhead; + int end_time; + + benchmark_timer_initialize(); + for (i=0 ; i