diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-03-03 10:27:52 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-03-04 09:08:03 +0100 |
commit | 8fe59be236e7f2047adb6e393639bbf56bbd996d (patch) | |
tree | 2bf9340a27a865a7595bd138a1d07380b7c464ee /testsuites/validation | |
parent | rtems: Fix RTEMS_TASK_STORAGE_ALIGNMENT (diff) | |
download | rtems-8fe59be236e7f2047adb6e393639bbf56bbd996d.tar.bz2 |
validation: Fix for 64-bit targets
Closes #4179.
Diffstat (limited to 'testsuites/validation')
-rw-r--r-- | testsuites/validation/tc-message-construct-errors.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/testsuites/validation/tc-message-construct-errors.c b/testsuites/validation/tc-message-construct-errors.c index e1b36091b4..0a98a52f43 100644 --- a/testsuites/validation/tc-message-construct-errors.c +++ b/testsuites/validation/tc-message-construct-errors.c @@ -358,7 +358,18 @@ static void RtemsMessageReqConstructErrors_Pre_MaxSize_Prepare( * The maximum message size of the message queue configuration shall be * valid. */ - ctx->config.maximum_message_size = MAX_MESSAGE_SIZE; + if ( ctx->config.maximum_pending_messages == UINT32_MAX ) { + /* + * At least on 64-bit systems we need a bit of help to ensure that we + * meet the Big state of the MaxPending pre-condition. The following + * message size is valid with respect to calculations involving only + * the message size. + */ + ctx->config.maximum_message_size = SIZE_MAX - sizeof( uintptr_t ) + + 1 - sizeof( CORE_message_queue_Buffer ); + } else { + ctx->config.maximum_message_size = MAX_MESSAGE_SIZE; + } break; } |