2010-06-21 Joel Sherrill <joel.sherrill@oarcorp.com>

* 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.
This commit is contained in:
Joel Sherrill
2010-06-21 16:54:17 +00:00
parent f63801a252
commit 82fbd358ba
4 changed files with 92 additions and 0 deletions

View File

@@ -1,3 +1,10 @@
2010-06-21 Joel Sherrill <joel.sherrill@oarcorp.com>
* 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.
2010-06-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Remove itron.

View File

@@ -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

View File

@@ -20,3 +20,10 @@ rtems_status_code benchmark_timer_empty_function( void )
{
return RTEMS_SUCCESSFUL;
}
void benchmark_timer_empty_operation(
int iteration,
void *argument
)
{
}

View File

@@ -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 <bsp.h>
#include <rtems/timerdrv.h>
#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<iterations ; i++ ) {
benchmark_timer_empty_operation( i, argument );
}
loop_overhead = benchmark_timer_read();
benchmark_timer_initialize();
for (i=0 ; i<iterations ; i++ ) {
(*operation)( i, argument );
}
end_time = benchmark_timer_read();
put_time(
description,
end_time,
iterations,
loop_overhead,
overhead
);
}