diff options
Diffstat (limited to 'testsuites/validation/tc-part-performance.c')
-rw-r--r-- | testsuites/validation/tc-part-performance.c | 171 |
1 files changed, 94 insertions, 77 deletions
diff --git a/testsuites/validation/tc-part-performance.c b/testsuites/validation/tc-part-performance.c index 5c3148edcc..858dbc0b4b 100644 --- a/testsuites/validation/tc-part-performance.c +++ b/testsuites/validation/tc-part-performance.c @@ -3,11 +3,11 @@ /** * @file * - * @ingroup RTEMSTestCaseRtemsPartValPerformance + * @ingroup RtemsPartValPerf */ /* - * Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) + * Copyright (C) 2020 embedded brains GmbH & Co. KG * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -53,24 +53,22 @@ #endif #include <rtems.h> -#include <rtems/chain.h> #include <rtems/test.h> /** - * @defgroup RTEMSTestCaseRtemsPartValPerformance \ - * spec:/rtems/part/val/performance + * @defgroup RtemsPartValPerf spec:/rtems/part/val/perf * - * @ingroup RTEMSTestSuiteTestsuitesPerformance0 + * @ingroup TestsuitesPerformanceNoClock0 * - * @brief This test case provides a context to run Partition Manager + * @brief This test case provides a context to run @ref RTEMSAPIClassicPart * performance tests. * * @{ */ /** - * @brief Test context for spec:/rtems/part/val/performance test case. + * @brief Test context for spec:/rtems/part/val/perf test case. */ typedef struct { /** @@ -79,8 +77,7 @@ typedef struct { rtems_id part_one; /** - * @brief This member provides a partition with exactly - * ${.:/params/buffer-count} free buffers. + * @brief This member provides a partition with exactly 100 free buffers. */ rtems_id part_many; @@ -108,20 +105,29 @@ typedef struct { * @brief This member provides the measure runtime request. */ T_measure_runtime_request request; -} RtemsPartValPerformance_Context; -static RtemsPartValPerformance_Context - RtemsPartValPerformance_Instance; + /** + * @brief This member provides an optional measurement begin time point. + */ + T_ticks begin; -static void RtemsPartValPerformance_Setup_Context( - RtemsPartValPerformance_Context *ctx -) + /** + * @brief This member provides an optional measurement end time point. + */ + T_ticks end; +} RtemsPartValPerf_Context; + +static RtemsPartValPerf_Context + RtemsPartValPerf_Instance; + +static void RtemsPartValPerf_Setup_Context( RtemsPartValPerf_Context *ctx ) { T_measure_runtime_config config; memset( &config, 0, sizeof( config ) ); - config.sample_count = 1000; + config.sample_count = 100; ctx->request.arg = ctx; + ctx->request.flags = T_MEASURE_RUNTIME_REPORT_SAMPLES; ctx->context = T_measure_runtime_create( &config ); T_assert_not_null( ctx->context ); } @@ -129,16 +135,14 @@ static void RtemsPartValPerformance_Setup_Context( /** * @brief Creates the test partition. */ -static void RtemsPartValPerformance_Setup( - RtemsPartValPerformance_Context *ctx -) +static void RtemsPartValPerf_Setup( RtemsPartValPerf_Context *ctx ) { rtems_status_code sc; size_t size; void *area; uintptr_t length; - size = sizeof( rtems_chain_node ); + size = 2 * sizeof( uintptr_t ); area = T_malloc( size ); sc = rtems_partition_create( @@ -164,21 +168,19 @@ static void RtemsPartValPerformance_Setup( T_assert_rsc_success( sc ); } -static void RtemsPartValPerformance_Setup_Wrap( void *arg ) +static void RtemsPartValPerf_Setup_Wrap( void *arg ) { - RtemsPartValPerformance_Context *ctx; + RtemsPartValPerf_Context *ctx; ctx = arg; - RtemsPartValPerformance_Setup_Context( ctx ); - RtemsPartValPerformance_Setup( ctx ); + RtemsPartValPerf_Setup_Context( ctx ); + RtemsPartValPerf_Setup( ctx ); } /** * @brief Deletes the test partition. */ -static void RtemsPartValPerformance_Teardown( - RtemsPartValPerformance_Context *ctx -) +static void RtemsPartValPerf_Teardown( RtemsPartValPerf_Context *ctx ) { rtems_status_code sc; @@ -193,35 +195,39 @@ static void RtemsPartValPerformance_Teardown( } } -static void RtemsPartValPerformance_Teardown_Wrap( void *arg ) +static void RtemsPartValPerf_Teardown_Wrap( void *arg ) { - RtemsPartValPerformance_Context *ctx; + RtemsPartValPerf_Context *ctx; ctx = arg; - RtemsPartValPerformance_Teardown( ctx ); + RtemsPartValPerf_Teardown( ctx ); } -static T_fixture RtemsPartValPerformance_Fixture = { - .setup = RtemsPartValPerformance_Setup_Wrap, +static T_fixture RtemsPartValPerf_Fixture = { + .setup = RtemsPartValPerf_Setup_Wrap, .stop = NULL, - .teardown = RtemsPartValPerformance_Teardown_Wrap, + .teardown = RtemsPartValPerf_Teardown_Wrap, .scope = NULL, - .initial_context = &RtemsPartValPerformance_Instance + .initial_context = &RtemsPartValPerf_Instance }; /** + * @defgroup RtemsPartReqPerfGetBuffer spec:/rtems/part/req/perf-get-buffer + * + * @{ + */ + +/** * @brief Get a buffer. */ -static void RtemsPartReqPerfGetBuffer_Body( - RtemsPartValPerformance_Context *ctx -) +static void RtemsPartReqPerfGetBuffer_Body( RtemsPartValPerf_Context *ctx ) { ctx->status = rtems_partition_get_buffer( ctx->part_many, &ctx->buffer ); } static void RtemsPartReqPerfGetBuffer_Body_Wrap( void *arg ) { - RtemsPartValPerformance_Context *ctx; + RtemsPartValPerf_Context *ctx; ctx = arg; RtemsPartReqPerfGetBuffer_Body( ctx ); @@ -231,11 +237,11 @@ static void RtemsPartReqPerfGetBuffer_Body_Wrap( void *arg ) * @brief Return the buffer. */ static bool RtemsPartReqPerfGetBuffer_Teardown( - RtemsPartValPerformance_Context *ctx, - T_ticks *delta, - uint32_t tic, - uint32_t toc, - unsigned int retry + RtemsPartValPerf_Context *ctx, + T_ticks *delta, + uint32_t tic, + uint32_t toc, + unsigned int retry ) { rtems_status_code sc; @@ -256,17 +262,26 @@ static bool RtemsPartReqPerfGetBuffer_Teardown_Wrap( unsigned int retry ) { - RtemsPartValPerformance_Context *ctx; + RtemsPartValPerf_Context *ctx; ctx = arg; return RtemsPartReqPerfGetBuffer_Teardown( ctx, delta, tic, toc, retry ); } +/** @} */ + +/** + * @defgroup RtemsPartReqPerfGetNoBuffer \ + * spec:/rtems/part/req/perf-get-no-buffer + * + * @{ + */ + /** * @brief Get the buffer. */ static void RtemsPartReqPerfGetNoBuffer_Prepare( - RtemsPartValPerformance_Context *ctx + RtemsPartValPerf_Context *ctx ) { rtems_status_code sc; @@ -278,16 +293,14 @@ static void RtemsPartReqPerfGetNoBuffer_Prepare( /** * @brief Try to get a buffer. */ -static void RtemsPartReqPerfGetNoBuffer_Body( - RtemsPartValPerformance_Context *ctx -) +static void RtemsPartReqPerfGetNoBuffer_Body( RtemsPartValPerf_Context *ctx ) { ctx->status = rtems_partition_get_buffer( ctx->part_one, &ctx->buffer ); } static void RtemsPartReqPerfGetNoBuffer_Body_Wrap( void *arg ) { - RtemsPartValPerformance_Context *ctx; + RtemsPartValPerf_Context *ctx; ctx = arg; RtemsPartReqPerfGetNoBuffer_Body( ctx ); @@ -297,11 +310,11 @@ static void RtemsPartReqPerfGetNoBuffer_Body_Wrap( void *arg ) * @brief Check the status code. */ static bool RtemsPartReqPerfGetNoBuffer_Teardown( - RtemsPartValPerformance_Context *ctx, - T_ticks *delta, - uint32_t tic, - uint32_t toc, - unsigned int retry + RtemsPartValPerf_Context *ctx, + T_ticks *delta, + uint32_t tic, + uint32_t toc, + unsigned int retry ) { T_quiet_rsc( ctx->status, RTEMS_UNSATISFIED ); @@ -317,7 +330,7 @@ static bool RtemsPartReqPerfGetNoBuffer_Teardown_Wrap( unsigned int retry ) { - RtemsPartValPerformance_Context *ctx; + RtemsPartValPerf_Context *ctx; ctx = arg; return RtemsPartReqPerfGetNoBuffer_Teardown( ctx, delta, tic, toc, retry ); @@ -327,7 +340,7 @@ static bool RtemsPartReqPerfGetNoBuffer_Teardown_Wrap( * @brief Return the buffer. */ static void RtemsPartReqPerfGetNoBuffer_Cleanup( - RtemsPartValPerformance_Context *ctx + RtemsPartValPerf_Context *ctx ) { rtems_status_code sc; @@ -336,12 +349,19 @@ static void RtemsPartReqPerfGetNoBuffer_Cleanup( T_rsc_success( sc ); } +/** @} */ + +/** + * @defgroup RtemsPartReqPerfReturnBuffer \ + * spec:/rtems/part/req/perf-return-buffer + * + * @{ + */ + /** * @brief Get the buffer. */ -static void RtemsPartReqPerfReturnBuffer_Setup( - RtemsPartValPerformance_Context *ctx -) +static void RtemsPartReqPerfReturnBuffer_Setup( RtemsPartValPerf_Context *ctx ) { rtems_status_code sc; @@ -351,7 +371,7 @@ static void RtemsPartReqPerfReturnBuffer_Setup( static void RtemsPartReqPerfReturnBuffer_Setup_Wrap( void *arg ) { - RtemsPartValPerformance_Context *ctx; + RtemsPartValPerf_Context *ctx; ctx = arg; RtemsPartReqPerfReturnBuffer_Setup( ctx ); @@ -360,16 +380,14 @@ static void RtemsPartReqPerfReturnBuffer_Setup_Wrap( void *arg ) /** * @brief Return the buffer. */ -static void RtemsPartReqPerfReturnBuffer_Body( - RtemsPartValPerformance_Context *ctx -) +static void RtemsPartReqPerfReturnBuffer_Body( RtemsPartValPerf_Context *ctx ) { ctx->status = rtems_partition_return_buffer( ctx->part_many, ctx->buffer ); } static void RtemsPartReqPerfReturnBuffer_Body_Wrap( void *arg ) { - RtemsPartValPerformance_Context *ctx; + RtemsPartValPerf_Context *ctx; ctx = arg; RtemsPartReqPerfReturnBuffer_Body( ctx ); @@ -379,11 +397,11 @@ static void RtemsPartReqPerfReturnBuffer_Body_Wrap( void *arg ) * @brief Check the status code. */ static bool RtemsPartReqPerfReturnBuffer_Teardown( - RtemsPartValPerformance_Context *ctx, - T_ticks *delta, - uint32_t tic, - uint32_t toc, - unsigned int retry + RtemsPartValPerf_Context *ctx, + T_ticks *delta, + uint32_t tic, + uint32_t toc, + unsigned int retry ) { T_quiet_rsc( ctx->status, RTEMS_SUCCESSFUL ); @@ -399,21 +417,20 @@ static bool RtemsPartReqPerfReturnBuffer_Teardown_Wrap( unsigned int retry ) { - RtemsPartValPerformance_Context *ctx; + RtemsPartValPerf_Context *ctx; ctx = arg; return RtemsPartReqPerfReturnBuffer_Teardown( ctx, delta, tic, toc, retry ); } +/** @} */ + /** - * @fn void T_case_body_RtemsPartValPerformance( void ) + * @fn void T_case_body_RtemsPartValPerf( void ) */ -T_TEST_CASE_FIXTURE( - RtemsPartValPerformance, - &RtemsPartValPerformance_Fixture -) +T_TEST_CASE_FIXTURE( RtemsPartValPerf, &RtemsPartValPerf_Fixture ) { - RtemsPartValPerformance_Context *ctx; + RtemsPartValPerf_Context *ctx; ctx = T_fixture_context(); |