summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-06-15 11:18:10 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-06-15 11:21:04 +0200
commit661e0e6377b16cb52c46c87877ed182bcf39ef01 (patch)
tree395618899bbff59c0b26a22556ecd5182eccd2b0
parentposix: Fix poradic server initial CPU budget (diff)
downloadrtems-661e0e6377b16cb52c46c87877ed182bcf39ef01.tar.bz2
psxtests/psx12: Use and print proper rounded ms
Update #2738.
-rw-r--r--testsuites/psxtests/psx12/init.c35
-rw-r--r--testsuites/psxtests/psx12/psx12.scn12
2 files changed, 26 insertions, 21 deletions
diff --git a/testsuites/psxtests/psx12/init.c b/testsuites/psxtests/psx12/init.c
index 559cad1d7e..d7218933ee 100644
--- a/testsuites/psxtests/psx12/init.c
+++ b/testsuites/psxtests/psx12/init.c
@@ -22,9 +22,11 @@
const char rtems_test_name[] = "PSX 12";
-#define SS_REPL_PERIOD_US 200000
+#define SS_REPL_PERIOD_NS 200000000
-#define SS_INIT_BUDGET_US 100000
+#define SS_INIT_BUDGET_NS 100000000
+
+#define SS_REPL_PERIOD_MS ( SS_REPL_PERIOD_NS / 1000000 )
#define SS_PRIO_LOW 1
@@ -35,8 +37,8 @@ const char rtems_test_name[] = "PSX 12";
typedef struct {
uint64_t start;
struct {
- uint64_t high;
- uint64_t low;
+ uint32_t high;
+ uint32_t low;
} samples[ SS_SAMPLE_PERIODS ];
} test_context;
@@ -74,9 +76,12 @@ static uint64_t now( void )
return timeval_to_us( &now );
}
-static uint64_t delta( test_context *ctx )
+static uint32_t delta_in_ms( test_context *ctx )
{
- return now() - ctx->start;
+ uint32_t d;
+
+ d = (uint32_t) ( now() - ctx->start );
+ return ( d + 499 ) / 1000;
}
static void *sporadic_server( void *argument )
@@ -88,9 +93,9 @@ static void *sporadic_server( void *argument )
for ( i = 0 ; i < SS_SAMPLE_PERIODS ; ++i ) {
wait_for_prio( SS_PRIO_LOW );
- ctx->samples[ i ].high = delta( ctx );
+ ctx->samples[ i ].high = delta_in_ms( ctx );
wait_for_prio( SS_PRIO_HIGH );
- ctx->samples[ i ].low = delta( ctx );
+ ctx->samples[ i ].low = delta_in_ms( ctx );
}
puts( "Sporadic Server: exitting" );
@@ -164,9 +169,9 @@ static void *POSIX_Init( void *argument )
/* invalid sched_ss_low_priority error */
schedparam.sched_ss_repl_period.tv_sec = 0;
- schedparam.sched_ss_repl_period.tv_nsec = SS_REPL_PERIOD_US * 1000;
+ schedparam.sched_ss_repl_period.tv_nsec = SS_REPL_PERIOD_NS;
schedparam.sched_ss_init_budget.tv_sec = 0;
- schedparam.sched_ss_init_budget.tv_nsec = SS_INIT_BUDGET_US * 1000;
+ schedparam.sched_ss_init_budget.tv_nsec = SS_INIT_BUDGET_NS;
schedparam.sched_priority = SS_PRIO_HIGH;
schedparam.sched_ss_low_priority = -1;
@@ -181,9 +186,9 @@ static void *POSIX_Init( void *argument )
/* create a thread as a sporadic server */
schedparam.sched_ss_repl_period.tv_sec = 0;
- schedparam.sched_ss_repl_period.tv_nsec = SS_REPL_PERIOD_US * 1000;
+ schedparam.sched_ss_repl_period.tv_nsec = SS_REPL_PERIOD_NS;
schedparam.sched_ss_init_budget.tv_sec = 0;
- schedparam.sched_ss_init_budget.tv_nsec = SS_INIT_BUDGET_US * 1000;
+ schedparam.sched_ss_init_budget.tv_nsec = SS_INIT_BUDGET_NS;
schedparam.sched_priority = SS_PRIO_HIGH;
schedparam.sched_ss_low_priority = SS_PRIO_LOW;
@@ -205,9 +210,9 @@ static void *POSIX_Init( void *argument )
rtems_test_assert( !status );
for ( i = 0 ; i < SS_SAMPLE_PERIODS ; ++i ) {
- printf( "[%zu] H %6" PRIu64 "us\n", i, ctx->samples[ i ].high );
- printf( "[%zu] L %6" PRIu64 "us\n", i, ctx->samples[ i ].low );
- rtems_test_assert( ctx->samples[ i ].low / SS_REPL_PERIOD_US == i + 1 );
+ printf( "[%zu] H %3" PRIu32 "ms\n", i, ctx->samples[ i ].high );
+ printf( "[%zu] L %3" PRIu32 "ms\n", i, ctx->samples[ i ].low );
+ rtems_test_assert( ctx->samples[ i ].low / SS_REPL_PERIOD_MS == i + 1 );
}
TEST_END();
diff --git a/testsuites/psxtests/psx12/psx12.scn b/testsuites/psxtests/psx12/psx12.scn
index 8cdc94b103..6640e220dd 100644
--- a/testsuites/psxtests/psx12/psx12.scn
+++ b/testsuites/psxtests/psx12/psx12.scn
@@ -8,10 +8,10 @@ Init: pthread_create - EINVAL (replenish < budget)
Init: pthread_create - EINVAL (invalid sched_ss_low_priority)
Init: pthread_create - SUCCESSFUL
Sporadic Server: exitting
-[0] H 99902us
-[0] L 200008us
-[1] H 289908us
-[1] L 400009us
-[2] H 489903us
-[2] L 600009us
+[0] H 100ms
+[0] L 200ms
+[1] H 290ms
+[1] L 400ms
+[2] H 490ms
+[2] L 600ms
*** END OF TEST PSX 12 ***